From: Eric Pouech Subject: [PATCH] programs/cmd/tests: test paths which length exceeds MAX_PATH Message-Id: <164266718247.255821.8987059058888621067.stgit@euterpe> Date: Thu, 20 Jan 2022 09:26:23 +0100 Signed-off-by: Eric Pouech --- programs/cmd/tests/test_builtins.cmd | 20 ++++++++++++++++++++ programs/cmd/tests/test_builtins.cmd.exp | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index 47b028207ac..a4cb8ec100c 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -3333,6 +3333,26 @@ if errorlevel 1 echo Normal+tab+garbage drive change failed popd +echo ------------ Testing length wrt. MAX_PATH ------------ +rem native cmd limits all path lengths to MAX_PATH=260 +rem so cannot create more than 23 10-letter subdirs: +rem 260-2(C:)-1(\0)=23*11(\abcdefghij)+5 +pushd +set depth=30 +for /L %d in (0,1,30) do ( + mkdir abcdefghij + if errorlevel 0 ( + cd abcdefghij + set depth=%d + ) +) +popd +if depth gtr 23 (echo Failure) else echo Success +rem even relative paths are transformed to absolute, and tested against MAX_PATH +echo abc > 0123456789 +if exist 0123456789 (echo Failure) else echo Success +popd +rmdir /s /q abcdefghij echo ------------ Testing combined CALLs/GOTOs ------------ echo @echo off>foo.cmd echo goto :eof>>foot.cmd diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 4c7bc3e0c02..b6fc2fda894 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -1687,6 +1687,10 @@ Normal+space+garbage Quoted should fail Normal+tab Normal+tab+garbage +------------ Testing length wrt. MAX_PATH ------------ +@pwd@ +@todo_wine@Success +@todo_wine@Success ------------ Testing combined CALLs/GOTOs ------------ world cheball