| # -*-perl-*- | |
| $description = "Test the intcmp function.\n"; | |
| $details = "Try various uses of intcmp and ensure they all give the correct | |
| results.\n"; | |
| run_make_test('# Negative | |
| n = -10 | |
| # Zero | |
| z = 0 | |
| # Positive | |
| p = 888 | |
| q = 889 | |
| huge = 8857889956778499040639527525992734031025567913257255490371761260681427 | |
| .RECIPEPREFIX = > | |
| all: | |
| > @echo 0_1 $(intcmp $n,$n) | |
| > @echo 0_2 $(intcmp $z,$z) | |
| > @echo 0_3 $(intcmp -$z,$z) | |
| > @echo 0_4 $(intcmp $p,$p) | |
| > @echo 0_5 $(intcmp $n,$z) | |
| > @echo 0_6 $(intcmp $z,$n) | |
| > @echo 1_1 $(intcmp $n,$n,$(shell echo lt)) | |
| > @echo 1_2 $(intcmp $n,$z,$(shell echo lt)) | |
| > @echo 1_3 $(intcmp $z,$n,$(shell echo lt)) | |
| > @echo 2_1 $(intcmp $n,$p,lt,ge) | |
| > @echo 2_2 $(intcmp $z,$z,lt,ge) | |
| > @echo 2_3 $(intcmp $p,$n,lt,ge) | |
| > @echo 3_0 $(intcmp $p,$n,lt,eq,) | |
| > @echo 3_1 $(intcmp $z,$p,lt,eq,gt) | |
| > @echo 3_2 $(intcmp $p,$z,lt,eq,gt) | |
| > @echo 3_3 $(intcmp $p,$p,lt,eq,gt) | |
| > @echo 3_4 $(intcmp $p,$q,lt,eq,gt) | |
| > @echo 3_5 $(intcmp $q,$p,lt,eq,gt) | |
| > @echo 3_6 $(intcmp -$p,-$q,lt,eq,gt) | |
| > @echo 3_7 $(intcmp -$q,-$p,lt,eq,gt) | |
| > @echo 4_1 $(intcmp -$(huge),$(huge),lt,eq,gt) | |
| > @echo 4_2 $(intcmp $(huge),-$(huge),lt,eq,gt) | |
| > @echo 4_3 $(intcmp -$(huge),-$(huge),lt,eq,gt) | |
| > @echo 4_4 $(intcmp +$(huge),$(huge),lt,eq,gt) | |
| ', '', '0_1 -10 | |
| 0_2 0 | |
| 0_3 0 | |
| 0_4 888 | |
| 0_5 | |
| 0_6 | |
| 1_1 | |
| 1_2 lt | |
| 1_3 | |
| 2_1 lt | |
| 2_2 ge | |
| 2_3 ge | |
| 3_0 | |
| 3_1 lt | |
| 3_2 gt | |
| 3_3 eq | |
| 3_4 lt | |
| 3_5 gt | |
| 3_6 gt | |
| 3_7 lt | |
| 4_1 lt | |
| 4_2 gt | |
| 4_3 eq | |
| 4_4 eq | |
| '); | |
| # Test error conditions | |
| run_make_test(' | |
| intcmp-e1: ; @echo $(intcmp 12a,1,foo) | |
| intcmp-e2: ; @echo $(intcmp 0,,foo) | |
| intcmp-e3: ; @echo $(intcmp -1,) | |
| intcmp-e4: ; @echo $(intcmp ,55)', | |
| 'intcmp-e1', | |
| "#MAKEFILE#:2: *** non-numeric first argument to 'intcmp' function: '12a'. Stop.", | |
| 512); | |
| run_make_test(undef, | |
| 'intcmp-e2', | |
| "#MAKEFILE#:3: *** non-numeric second argument to 'intcmp' function: empty value. Stop.", | |
| 512); | |
| run_make_test(undef, | |
| 'intcmp-e3', | |
| "#MAKEFILE#:4: *** non-numeric second argument to 'intcmp' function: empty value. Stop.", | |
| 512); | |
| run_make_test(undef, | |
| 'intcmp-e4', | |
| "#MAKEFILE#:5: *** non-numeric first argument to 'intcmp' function: empty value. Stop.", | |
| 512); | |
| # This tells the test driver that the perl test script executed properly. | |
| 1; |