aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-04-22 07:29:59 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-04-22 07:29:59 -0700
commitc82cebd005c48aa8ebd28b40a99a021a723e0a3d (patch)
tree969f265d7cf44d83771b3bf5eb9e6747e2b0763a
parentfed6418ce4d2d07372a7aaa6e600bd6dbb7ca185 (diff)
downloadcppawk-c82cebd005c48aa8ebd28b40a99a021a723e0a3d.tar.gz
cppawk-c82cebd005c48aa8ebd28b40a99a021a723e0a3d.tar.bz2
cppawk-c82cebd005c48aa8ebd28b40a99a021a723e0a3d.zip
Testcases for <varg.h>.
-rwxr-xr-xruntests5
-rw-r--r--testcases-varg280
2 files changed, 285 insertions, 0 deletions
diff --git a/runtests b/runtests
index e6edd75..457df59 100755
--- a/runtests
+++ b/runtests
@@ -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)