From: Paul Smith Date: Sun, 4 Feb 2024 14:47:36 +0000 (-0500) Subject: * tests/test_driver.pl: Add cd to the .run output file X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=63b602e74f8e2235191d7dee4dd05f82b1869fdb;p=thirdparty%2Fmake.git * tests/test_driver.pl: Add cd to the .run output file --- diff --git a/tests/test_driver.pl b/tests/test_driver.pl index e9f34334..9df598c3 100644 --- a/tests/test_driver.pl +++ b/tests/test_driver.pl @@ -184,21 +184,25 @@ sub resetENV # so it can either be a ref of a list or a string. sub cmd2str { + my @c; my $cmd = $_[0]; if (!ref($cmd)) { - return $cmd; + push @c, $cmd; + } else { + foreach (@$cmd) { + if (/[][#;"*?&|<>(){}\$`^~!]/) { + s/\'/\'\\'\'/g; + push @c, "'$_'"; + } else { + push @c, $_; + } + } } - my @c; - foreach (@$cmd) { - if (/[][#;"*?&|<>(){}\$`^~!]/) { - s/\'/\'\\'\'/g; - push @c, "'$_'"; - } else { - push @c, $_; - } + if ($testpath eq $cwd) { + return join(' ', @c); } - return join(' ', @c); + return "(cd $testpath && " . join(' ', @c) . ')'; } sub toplevel @@ -255,7 +259,7 @@ sub toplevel # Locate the top source directory. $toppath = File::Spec->rel2abs(File::Spec->updir(), $srcpath); - $cwd = cwd(); + local $cwd = cwd(); $workpath = "$workdir"; @@ -649,7 +653,7 @@ sub run_all_tests $perl_testname = File::Spec->catfile($scriptpath, $testname); -f $perl_testname or die "Invalid test: $testname\n\n"; - $testpath = File::Spec->catdir($workpath, $testname); + local $testpath = File::Spec->catdir($workpath, $testname); remove_directory_tree($testpath); mkdir($testpath, 0777) or &error("Couldn't mkdir $testpath: $!\n", 1);