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