diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-04-22 07:29:59 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-04-22 07:29:59 -0700 |
commit | c82cebd005c48aa8ebd28b40a99a021a723e0a3d (patch) | |
tree | 969f265d7cf44d83771b3bf5eb9e6747e2b0763a | |
parent | fed6418ce4d2d07372a7aaa6e600bd6dbb7ca185 (diff) | |
download | cppawk-c82cebd005c48aa8ebd28b40a99a021a723e0a3d.tar.gz cppawk-c82cebd005c48aa8ebd28b40a99a021a723e0a3d.tar.bz2 cppawk-c82cebd005c48aa8ebd28b40a99a021a723e0a3d.zip |
Testcases for <varg.h>.
-rwxr-xr-x | runtests | 5 | ||||
-rw-r--r-- | testcases-varg | 280 |
2 files changed, 285 insertions, 0 deletions
@@ -22,6 +22,11 @@ if [ -z "$suite" -o "$suite" = "iter" ] ; then cppawk="./cppawk --awk=mawk" ./testsuite.awk testcases-iter fi +if [ -z "$suite" -o "$suite" = "varg" ] ; then + cppawk=./cppawk ./testsuite.awk testcases-varg + cppawk="./cppawk --awk=mawk" ./testsuite.awk testcases-varg +fi + if [ -z "$suite" -o "$suite" = "cons" ] ; then cppawk=./cppawk ./testsuite.awk testcases-cons cppawk="./cppawk --awk=mawk" ./testsuite.awk -v skip=37,38 testcases-cons diff --git a/testcases-varg b/testcases-varg new file mode 100644 index 0000000..011abd5 --- /dev/null +++ b/testcases-varg @@ -0,0 +1,280 @@ +1: +$cppawk ' +#include <varg.h> + +function f(restargs) +{ + return argcount("f", restargs) +} + +BEGIN { + print f() + print f(1) + print f(1, 2) + print f(1, 2, 3) + print f(1, 2, 3, 4) + print f(1, 2, 3, 4, 5) + print f(1, 2, 3, 4, 5, 6) + print f(1, 2, 3, 4, 5, 6, 7) + print f(1, 2, 3, 4, 5, 6, 7, 8) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) +}' +: +0 +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 +-- +2: +$cppawk ' +#include <varg.h> + +function f(restargs) +{ + return argcount("f", restargs) +} + +BEGIN { + print f(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) +} +: +ERR +-- +3: +$cppawk ' +#include <varg.h> +#include <cons.h> + +function f(restargs) +{ + return sexp(arglist("f", restargs)) +} + +BEGIN { + print f() + print f(1) + print f(1, 2) + print f(1, 2, 3) + print f(1, 2, 3, 4) + print f(1, 2, 3, 4, 5) + print f(1, 2, 3, 4, 5, 6) + print f(1, 2, 3, 4, 5, 6, 7) + print f(1, 2, 3, 4, 5, 6, 7, 8) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23) + print f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) + print f(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) +}' +: +nil +(1) +(1 2) +(1 2 3) +(1 2 3 4) +(1 2 3 4 5) +(1 2 3 4 5 6) +(1 2 3 4 5 6 7) +(1 2 3 4 5 6 7 8) +(1 2 3 4 5 6 7 8 9) +(1 2 3 4 5 6 7 8 9 10) +(1 2 3 4 5 6 7 8 9 10 11) +(1 2 3 4 5 6 7 8 9 10 11 12) +(1 2 3 4 5 6 7 8 9 10 11 12 13) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) +(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24) +(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) +(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) +(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) +(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) +(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) +(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) +(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) +(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) +-- +4: +$cppawk ' +#include <varg.h> + +function f(restargs, i, n) +{ + delete a + n = argcount("f", restargs) + argarray("f", a, restargs) + for (i = 1; i <= n; i++) + printf "%s,", a[i] + print +} + +BEGIN { + f() + f(1) + f(1, 2) + f(1, 2, 3) + f(1, 2, 3, 4) + f(1, 2, 3, 4, 5) + f(1, 2, 3, 4, 5, 6) + f(1, 2, 3, 4, 5, 6, 7) + f(1, 2, 3, 4, 5, 6, 7, 8) + f(1, 2, 3, 4, 5, 6, 7, 8, 9) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23) + f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) + f(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) + f(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) + f(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) + f(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) + f(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) + f(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) + f(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) + f(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) +}' +: + +1, +1,2, +1,2,3, +1,2,3,4, +1,2,3,4,5, +1,2,3,4,5,6, +1,2,3,4,5,6,7, +1,2,3,4,5,6,7,8, +1,2,3,4,5,6,7,8,9, +1,2,3,4,5,6,7,8,9,10, +1,2,3,4,5,6,7,8,9,10,11, +1,2,3,4,5,6,7,8,9,10,11,12, +1,2,3,4,5,6,7,8,9,10,11,12,13, +1,2,3,4,5,6,7,8,9,10,11,12,13,14, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, +1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24, +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, +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, +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, +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, +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, +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, +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, +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, +-- +5: +$cppawk ' +#include <varg.h> +#include <cons.h> + +function f(restargs) +{ + return list(arg(1), arg(2), arg(3), arg(4), + arg(5), arg(6), arg(7), arg(8), + arg(9), arg(10), arg(11), arg(12), + arg(13), arg(14), arg(15), arg(16), + arg(17), arg(18), arg(19), arg(20), + arg(21), arg(22), arg(23), arg(24), + arg(25), arg(26), arg(27), arg(28), + arg(29), arg(30), arg(31), arg(32)) +} + +BEGIN { + print sexp(f(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)) +}' +: +(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) |