diff options
Diffstat (limited to 'tests/general/args.icn')
-rw-r--r-- | tests/general/args.icn | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/general/args.icn b/tests/general/args.icn new file mode 100644 index 0000000..b836573 --- /dev/null +++ b/tests/general/args.icn @@ -0,0 +1,96 @@ +#SRC: JCON +# +# test various numbers of args + +procedure main() + local plist, alist, e + + plist := [3, -2, "image", proc("~===", 2), + p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12] + + every write((!plist)()) + every write((!plist)(1)) + every write((!plist)(1, 2)) + every write((!plist)(1, 2, 3)) + every write((!plist)(1, 2, 3, 4)) + every write((!plist)(1, 2, 3, 4, 5)) + every write((!plist)(1, 2, 3, 4, 5, 6)) + every write((!plist)(1, 2, 3, 4, 5, 6, 7)) + every write((!plist)(1, 2, 3, 4, 5, 6, 7, 8)) + every write((!plist)(1, 2, 3, 4, 5, 6, 7, 8, 9)) + every write((!plist)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) + every write((!plist)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) + every write((!plist)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) + + alist := [] + while *alist < 14 do { + every write((!plist) ! alist) + put(alist, *alist + 1) + } +end + + + +# p0 through p12 do their own output and then fail + +procedure p0() + note("p0") +end + +procedure p1(a) + note("p1", a) +end + +procedure p2(a, b) + note("p2", a, b) +end + +procedure p3(a, b, c) + note("p3", a, b, c) +end + +procedure p4(a, b, c, d) + note("p4", a, b, c, d) +end + +procedure p5(a, b, c, d, e) + note("p5", a, b, c, d, e) +end + +procedure p6(a, b, c, d, e, f) + note("p6", a, b, c, d, e, f) +end + +procedure p7(a, b, c, d, e, f, g) + note("p7", a, b, c, d, e, f, g) +end + +procedure p8(a, b, c, d, e, f, g, h) + note("p8", a, b, c, d, e, f, g, h) +end + +procedure p9(a, b, c, d, e, f, g, h, i) + note("p9", a, b, c, d, e, f, g, h, i) +end + +procedure p10(a, b, c, d, e, f, g, h, i, j) + note("p10", a, b, c, d, e, f, g, h, i, j) +end + +procedure p11(a, b, c, d, e, f, g, h, i, j, k) + note("p11", a, b, c, d, e, f, g, h, i, j, k) +end + +procedure p12(a, b, c, d, e, f, g, h, i, j, k, l) + note("p12", a, b, c, d, e, f, g, h, i, j, k, l) +end + + + +procedure note(a[]) + local e + + every e := !a do writes(\e | "~", " ") + write() + return +end |