| # -*-perl-*- | |
| $description = "Test the -q option.\n"; | |
| $details = "Try various uses of -q and ensure they all give the correct results.\n"; | |
| # TEST 0 | |
| run_make_test(qq! | |
| one: | |
| two: ; | |
| three: ; : | |
| four: ; \$(.XY) | |
| five: ; \\ | |
| \$(.XY) | |
| six: ; \\ | |
| \$(.XY) | |
| \t\$(.XY) | |
| seven: ; \\ | |
| \$(.XY) | |
| \t: foo | |
| \t\$(.XY) | |
| !, | |
| '-q one', ''); | |
| # TEST 1 | |
| run_make_test(undef, '-q two', ''); | |
| # TEST 2 | |
| run_make_test(undef, '-q three', '', 256); | |
| # TEST 3 | |
| run_make_test(undef, '-q four', ''); | |
| # TEST 4 | |
| run_make_test(undef, '-q five', ''); | |
| # TEST 5 | |
| run_make_test(undef, '-q six', ''); | |
| # TEST 6 | |
| run_make_test(undef, '-q seven', '', 256); | |
| # TEST 7 : Savannah bug # 7144 | |
| run_make_test(' | |
| one:: ; @echo one | |
| 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); | |
| # TEST 9 : Savannah bug # 47151 | |
| # Make sure we exit with 1 when invoking a recursive make | |
| run_make_test(' | |
| foo: bar ; echo foo | |
| bar: ; @$(MAKE) -f #MAKEFILE# baz | |
| baz: ; echo baz | |
| ', | |
| '-q foo', '', 256); | |
| 1; |