From: Paul Smith Date: Sat, 14 Sep 2019 19:41:58 +0000 (-0400) Subject: * src/job.c (child_execute_job): Use errno from find_in_given_path(). X-Git-Tag: 4.2.91~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02a4c2913a47c988e958b965e53197feff281f38;p=thirdparty%2Fmake.git * src/job.c (child_execute_job): Use errno from find_in_given_path(). * tests/test_driver.pl: Determine non-executable error message. * tests/scripts/features/errors: Use the local non-executable error. --- diff --git a/src/job.c b/src/job.c index 67194d1f..c7e7f795 100644 --- a/src/job.c +++ b/src/job.c @@ -2376,7 +2376,7 @@ child_execute_job (struct childbase *child, int good_stdin, char **argv) if (!cmd) { - r = ENOENT; + r = errno; goto cleanup; } diff --git a/tests/scripts/features/errors b/tests/scripts/features/errors index eac64ed9..ec49547b 100644 --- a/tests/scripts/features/errors +++ b/tests/scripts/features/errors @@ -60,15 +60,17 @@ run_make_test(undef, 'two', # Try failing due to non-executable file -my $noexe = './barfooblatboz'; -touch($noexe); - -run_make_test(qq! -one: ; -$noexe xx yy -two: ; $noexe aa bb -!, - 'one', "$noexe xx yy\n#MAKE#: $noexe: Permission denied\n#MAKE#: [#MAKEFILE#;2: one] Error 127 (ignored)\n"); - -unlink($noexe); +if ($ERR_nonexe_file) { + my $noexe = './barfooblatboz'; + touch($noexe); + + run_make_test(qq! + one: ; -$noexe xx yy + two: ; $noexe aa bb + !, + 'one', "$noexe xx yy\n#MAKE#: $noexe: $ERR_nonexe_file\n#MAKE#: [#MAKEFILE#;2: one] Error 127 (ignored)\n"); + + unlink($noexe); +} 1; diff --git a/tests/test_driver.pl b/tests/test_driver.pl index 4af84daf..30e19435 100644 --- a/tests/test_driver.pl +++ b/tests/test_driver.pl @@ -68,6 +68,7 @@ if ($has_POSIX) { $ERR_no_such_file = undef; $ERR_read_only_file = undef; $ERR_unreadable_file = undef; +$ERR_noexe_file = undef; if (open(my $F, '<', 'file.none')) { print "Opened non-existent file! Skipping related tests.\n"; @@ -86,6 +87,13 @@ if (open(my $F, '>', 'file.out')) { $ERR_read_only_file = "$!"; } +$_ = `./file.out`; +if ($? == 0) { + print "Executed non-executable file! Skipping related tests.\n"; +} else { + $ERR_nonexe_file = "$!"; +} + chmod(0000, 'file.out'); if (open(my $F, '<', 'file.out')) { print "Opened unreadable file! Skipping related tests.\n";