mirror of
https://github.com/mirror/make.git
synced 2026-09-01 04:08:10 +08:00
[SV 42249] Propagate correct rule status results.
* remake.c (update_file, update_file_1, check_dep): Return an enum update_status value instead of an int, and keep the highest value we find as we walk the graph so that the ultimate status is correct. * tests/scripts/options/dash-q: Add a test for updating prerequisites.
This commit is contained in:
@@ -5,21 +5,21 @@ $details = "Try various uses of -q and ensure they all give the correct results.
|
||||
|
||||
# TEST 0
|
||||
|
||||
run_make_test('
|
||||
run_make_test(qq!
|
||||
one:
|
||||
two: ;
|
||||
three: ; :
|
||||
four: ; $(.XY)
|
||||
five: ; \
|
||||
$(.XY)
|
||||
six: ; \
|
||||
$(.XY)
|
||||
$(.XY)
|
||||
seven: ; \
|
||||
$(.XY)
|
||||
: foo
|
||||
$(.XY)
|
||||
',
|
||||
four: ; \$(.XY)
|
||||
five: ; \\
|
||||
\$(.XY)
|
||||
six: ; \\
|
||||
\$(.XY)
|
||||
\t\$(.XY)
|
||||
seven: ; \\
|
||||
\$(.XY)
|
||||
\t: foo
|
||||
\t\$(.XY)
|
||||
!,
|
||||
'-q one', '');
|
||||
|
||||
# TEST 1
|
||||
@@ -54,4 +54,24 @@ one:: ; @echo two
|
||||
',
|
||||
'-q', '', 256);
|
||||
|
||||
# TEST 7 : Savannah bug # 42249
|
||||
# Make sure we exit with 1 even for prerequisite updates
|
||||
run_make_test('
|
||||
build-stamp: ; echo $@
|
||||
build-arch: build-stamp
|
||||
build-x: build-arch
|
||||
build-y: build-x
|
||||
',
|
||||
'-q build-y', '', 256);
|
||||
|
||||
# TEST 8
|
||||
# Make sure we exit with 2 on error even with -q
|
||||
run_make_test('
|
||||
build-stamp: ; echo $@
|
||||
build-arch: build-stamp-2
|
||||
build-x: build-arch
|
||||
build-y: build-x
|
||||
',
|
||||
'-q build-y', "#MAKE#: *** No rule to make target 'build-stamp-2', needed by 'build-arch'. Stop.\n", 512);
|
||||
|
||||
1;
|
||||
|
||||
Reference in New Issue
Block a user