#                                                                    -*-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;
