summaryrefslogtreecommitdiffstats
path: root/src/kmk/tests/scripts/functions/warning
blob: 16eb83bb457fc3e1af1b50e1ef625611d4c1f233 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#                                                                    -*-Perl-*-

$description = "\
The following test creates a makefile to test the warning function.";

$details = "";

open(MAKEFILE,"> $makefile");

print MAKEFILE <<'EOF';
ifdef WARNING1
$(warning warning is $(WARNING1))
endif

ifdef WARNING2
$(warning warning is $(WARNING2))
endif

ifdef WARNING3
all: some; @echo hi $(warning warning is $(WARNING3))
endif

ifdef WARNING4
all: some; @echo hi
	@echo there $(warning warning is $(WARNING4))
endif

some: ; @echo Some stuff

EOF

close(MAKEFILE);

# Test #1

&run_make_with_options($makefile, "WARNING1=yes", &get_logfile, 0);
$answer = "$makefile:2: warning is yes\nSome stuff\n";
&compare_output($answer,&get_logfile(1));

# Test #2

&run_make_with_options($makefile, "WARNING2=no", &get_logfile, 0);
$answer = "$makefile:6: warning is no\nSome stuff\n";
&compare_output($answer,&get_logfile(1));

# Test #3

&run_make_with_options($makefile, "WARNING3=maybe", &get_logfile, 0);
$answer = "Some stuff\n$makefile:10: warning is maybe\nhi\n";
&compare_output($answer,&get_logfile(1));

# Test #4

&run_make_with_options($makefile, "WARNING4=definitely", &get_logfile, 0);
$answer = "Some stuff\n$makefile:15: warning is definitely\nhi\nthere\n";
&compare_output($answer,&get_logfile(1));

# Test linenumber offset

run_make_test(q!
all: one two
	$(warning in $@ line 3)
	@true
	$(warning in $@ line 5)

one two:
	$(warning in $@ line 8)
	@true
	$(warning in $@ line 10)
!,
              '', "#MAKEFILE#:8: in one line 8
#MAKEFILE#:10: in one line 10
#MAKEFILE#:8: in two line 8
#MAKEFILE#:10: in two line 10
#MAKEFILE#:3: in all line 3
#MAKEFILE#:5: in all line 5\n");

# This tells the test driver that the perl test script executed properly.
1;

### Local Variables:
### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
### End: