Blame tests/scripts/variables/special

Packit 26a39e
#                                                                    -*-perl-*-
Packit 26a39e
Packit 26a39e
$description = "Test special GNU make variables.";
Packit 26a39e
Packit 26a39e
$details = "";
Packit 26a39e
Packit 26a39e
&run_make_test('
Packit 26a39e
Packit 26a39e
X1 := $(sort $(filter FOO BAR,$(.VARIABLES)))
Packit 26a39e
Packit 26a39e
FOO := foo
Packit 26a39e
Packit 26a39e
X2 := $(sort $(filter FOO BAR,$(.VARIABLES)))
Packit 26a39e
Packit 26a39e
BAR := bar
Packit 26a39e
Packit 26a39e
all: ; @echo X1 = $(X1); echo X2 = $(X2); echo LAST = $(sort $(filter FOO BAR,$(.VARIABLES)))
Packit 26a39e
',
Packit 26a39e
               '', "X1 =\nX2 = FOO\nLAST = BAR FOO\n");
Packit 26a39e
Packit 26a39e
# SV 45728: Test that undefining a variable is reflected properly
Packit 26a39e
Packit 26a39e
&run_make_test('
Packit 26a39e
FOO := foo
Packit 26a39e
BAR := bar
Packit 26a39e
$(info one: $(sort $(filter FOO BAR BAZ,$(.VARIABLES))))
Packit 26a39e
undefine BAR
Packit 26a39e
BAZ := baz
Packit 26a39e
$(info two: $(sort $(filter FOO BAR BAZ,$(.VARIABLES))))
Packit 26a39e
all:;@:
Packit 26a39e
',
Packit 26a39e
               '', "one: BAR FOO\ntwo: BAZ FOO\n");
Packit 26a39e
Packit 26a39e
# $makefile2 = &get_tmpfile;
Packit 26a39e
# open(MAKEFILE, "> $makefile2");
Packit 26a39e
Packit 26a39e
# print MAKEFILE <<'EOF';
Packit 26a39e
Packit 26a39e
# X1 := $(sort $(.TARGETS))
Packit 26a39e
Packit 26a39e
# all: foo
Packit 26a39e
#	@echo X1 = $(X1)
Packit 26a39e
#	@echo X2 = $(X2)
Packit 26a39e
#	@echo LAST = $(sort $(.TARGETS))
Packit 26a39e
Packit 26a39e
# X2 := $(sort $(.TARGETS))
Packit 26a39e
Packit 26a39e
# foo:
Packit 26a39e
Packit 26a39e
# EOF
Packit 26a39e
Packit 26a39e
# close(MAKEFILE);
Packit 26a39e
Packit 26a39e
# # TEST #2
Packit 26a39e
# # -------
Packit 26a39e
Packit 26a39e
# &run_make_with_options($makefile2, "", &get_logfile);
Packit 26a39e
# $answer = "X1 =\nX2 = all\nLAST = all foo\n";
Packit 26a39e
# &compare_output($answer, &get_logfile(1));
Packit 26a39e
Packit 26a39e
# Test the .RECIPEPREFIX variable
Packit 26a39e
&run_make_test('
Packit 26a39e
define foo
Packit 26a39e
: foo-one\
Packit 26a39e
foo-two
Packit 26a39e
: foo-three
Packit 26a39e
	: foo-four
Packit 26a39e
endef
Packit 26a39e
Packit 26a39e
orig: ; : orig-one
Packit 26a39e
	: orig-two \
Packit 26a39e
orig-three \
Packit 26a39e
	orig-four \
Packit 26a39e
		orig-five \\\\
Packit 26a39e
	: orig-six
Packit 26a39e
	$(foo)
Packit 26a39e
Packit 26a39e
.RECIPEPREFIX = >
Packit 26a39e
test: ; : test-one
Packit 26a39e
>: test-two \
Packit 26a39e
test-three \
Packit 26a39e
>test-four \
Packit 26a39e
>	test-five \\\\
Packit 26a39e
>: test-six
Packit 26a39e
>$(foo)
Packit 26a39e
Packit 26a39e
.RECIPEPREFIX =
Packit 26a39e
reset: ; : reset-one
Packit 26a39e
	: reset-two \
Packit 26a39e
reset-three \
Packit 26a39e
	reset-four \
Packit 26a39e
		reset-five \\\\
Packit 26a39e
	: reset-six
Packit 26a39e
	$(foo)
Packit 26a39e
',
Packit 26a39e
               'orig test reset',
Packit 26a39e
               ': orig-one
Packit 26a39e
: orig-two \
Packit 26a39e
orig-three \
Packit 26a39e
orig-four \
Packit 26a39e
	orig-five \\\\
Packit 26a39e
: orig-six
Packit 26a39e
: foo-one foo-two
Packit 26a39e
: foo-three
Packit 26a39e
: foo-four
Packit 26a39e
: test-one
Packit 26a39e
: test-two \
Packit 26a39e
test-three \
Packit 26a39e
test-four \
Packit 26a39e
	test-five \\\\
Packit 26a39e
: test-six
Packit 26a39e
: foo-one foo-two
Packit 26a39e
: foo-three
Packit 26a39e
: foo-four
Packit 26a39e
: reset-one
Packit 26a39e
: reset-two \
Packit 26a39e
reset-three \
Packit 26a39e
reset-four \
Packit 26a39e
	reset-five \\\\
Packit 26a39e
: reset-six
Packit 26a39e
: foo-one foo-two
Packit 26a39e
: foo-three
Packit 26a39e
: foo-four');
Packit 26a39e
Packit 26a39e
# Test that the "did you mean TAB" message is printed properly
Packit 26a39e
Packit 26a39e
run_make_test(q!
Packit 26a39e
$x.
Packit 26a39e
!,
Packit 26a39e
              '', '#MAKEFILE#:2: *** missing separator.  Stop.', 512);
Packit 26a39e
Packit 26a39e
run_make_test(q!
Packit 26a39e
foo:
Packit 26a39e
        bar
Packit 26a39e
!,
Packit 26a39e
              '', '#MAKEFILE#:3: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.', 512);
Packit 26a39e
Packit 26a39e
run_make_test(q!
Packit 26a39e
.RECIPEPREFIX = :
Packit 26a39e
foo:
Packit 26a39e
        bar
Packit 26a39e
!,
Packit 26a39e
              '', '#MAKEFILE#:4: *** missing separator.  Stop.', 512);
Packit 26a39e
Packit 26a39e
1;
Packit 26a39e
Packit 26a39e
### Local Variables:
Packit 26a39e
### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
Packit 26a39e
### End: