Blame tests/scripts/variables/DEFAULT_GOAL

Packit 26a39e
#                                                                    -*-perl-*-
Packit 26a39e
$description = "Test the .DEFAULT_GOAL special variable.";
Packit 26a39e
Packit 26a39e
$details = "";
Packit 26a39e
Packit 26a39e
Packit 26a39e
# Test #1: basic logic.
Packit 26a39e
#
Packit 26a39e
run_make_test('
Packit 26a39e
# Basics.
Packit 26a39e
#
Packit 26a39e
foo: ; @:
Packit 26a39e
Packit 26a39e
ifneq ($(.DEFAULT_GOAL),foo)
Packit 26a39e
$(error )
Packit 26a39e
endif
Packit 26a39e
Packit 26a39e
# Reset to empty.
Packit 26a39e
#
Packit 26a39e
.DEFAULT_GOAL :=
Packit 26a39e
Packit 26a39e
bar: ; @:
Packit 26a39e
Packit 26a39e
ifneq ($(.DEFAULT_GOAL),bar)
Packit 26a39e
$(error )
Packit 26a39e
endif
Packit 26a39e
Packit 26a39e
# Change to a different goal.
Packit 26a39e
#
Packit 26a39e
Packit 26a39e
.DEFAULT_GOAL := baz
Packit 26a39e
Packit 26a39e
baz: ; @echo $@
Packit 26a39e
',
Packit 26a39e
'',
Packit 26a39e
'baz');
Packit 26a39e
Packit 26a39e
Packit 26a39e
# Test #2: unknown goal.
Packit 26a39e
#
Packit 26a39e
run_make_test('
Packit 26a39e
.DEFAULT_GOAL = foo
Packit 26a39e
',
Packit 26a39e
'',
Packit 26a39e
"#MAKE#: *** No rule to make target 'foo'.  Stop.",
Packit 26a39e
512);
Packit 26a39e
Packit 26a39e
Packit 26a39e
# Test #3: more than one goal.
Packit 26a39e
#
Packit 26a39e
run_make_test('
Packit 26a39e
.DEFAULT_GOAL := foo bar
Packit 26a39e
',
Packit 26a39e
'',
Packit 26a39e
'#MAKE#: *** .DEFAULT_GOAL contains more than one target.  Stop.',
Packit 26a39e
512);
Packit 26a39e
Packit 26a39e
Packit 26a39e
# Test #4: Savannah bug #12226.
Packit 26a39e
#
Packit 26a39e
run_make_test('
Packit 26a39e
define rule
Packit 26a39e
foo: ; @echo $$@
Packit 26a39e
endef
Packit 26a39e
Packit 26a39e
define make-rule
Packit 26a39e
$(eval $(rule))
Packit 26a39e
endef
Packit 26a39e
Packit 26a39e
$(call make-rule)
Packit 26a39e
Packit 26a39e
',
Packit 26a39e
'',
Packit 26a39e
'foo');
Packit 26a39e
Packit 26a39e
# TEST #5: .DEFAULT_GOAL containing just whitespace (Savannah bug #25697)
Packit 26a39e
Packit 26a39e
run_make_test('
Packit 26a39e
N =
Packit 26a39e
.DEFAULT_GOAL = $N  $N  # Just whitespace
Packit 26a39e
Packit 26a39e
foo: ; @echo "boo"
Packit 26a39e
',
Packit 26a39e
              '', "#MAKE#: *** No targets.  Stop.\n", 512);
Packit 26a39e
Packit 26a39e
# This tells the test driver that the perl test script executed properly.
Packit 26a39e
1;