summaryrefslogtreecommitdiffstats
path: root/src/kmk/tests/scripts/functions/andor
blob: 62e0c2e02273f9cfa75b9a44919411842ab938f2 (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
#                                                                    -*-perl-*-
$description = "Test the and & or functions.\n";

$details = "Try various uses of and & or to ensure they all give the correct
results.\n";

# TEST #0
# For $(and ...), it will either be empty or the last value
run_make_test('
NEQ = $(subst $1,,$2)
f =
t = true

all:
	@echo 1 $(and    ,$t)
	@echo 2 $(and $t)
	@echo 3 $(and $t,)
	@echo 4 $(and z,true,$f,false)
	@echo 5 $(and $t,$f,$(info bad short-circuit))
	@echo 6 $(and $(call NEQ,a,b),true)
	@echo 7 $(and $(call NEQ,a,a),true)
	@echo 8 $(and z,true,fal,se) hi
	@echo 9 $(and ,true,fal,se)there
	@echo 10 $(and   $(e) ,$t)',
              '',
              "1\n2 true\n3\n4\n5\n6 true\n7\n8 se hi\n9 there\n10\n");

# TEST #1
# For $(or ...), it will either be empty or the first true value
run_make_test('
NEQ = $(subst $1,,$2)
f =
t = true

all:
	@echo 1 $(or    ,    )
	@echo 2 $(or $t)
	@echo 3 $(or ,$t)
	@echo 4 $(or z,true,$f,false)
	@echo 5 $(or $t,$(info bad short-circuit))
	@echo 6 $(or $(info short-circuit),$t)
	@echo 7 $(or $(call NEQ,a,b),true)
	@echo 8 $(or $(call NEQ,a,a),true)
	@echo 9 $(or z,true,fal,se) hi
	@echo 10 $(or ,true,fal,se)there
	@echo 11 $(or   $(e) ,$f)',
              '',
              "short-circuit\n1\n2 true\n3 true\n4 z\n5 true\n6 true\n7 b\n8 true\n9 z hi\n10 truethere\n11\n");

1;