diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/015/awk-basic.tl | 41 | ||||
-rw-r--r-- | tests/common.tl | 6 |
2 files changed, 47 insertions, 0 deletions
diff --git a/tests/015/awk-basic.tl b/tests/015/awk-basic.tl new file mode 100644 index 00000000..a411d495 --- /dev/null +++ b/tests/015/awk-basic.tl @@ -0,0 +1,41 @@ +(load "../common") + +(defvarl *d0* + '("one two three" + " four five six " + " seven eight \t nine ten\t ")) + +(motest + (awk (:inputs *d0*) + (t (prn nf))) + "3\n3\n4\n" + (awk (:inputs *d0*) + (:set ofs ",") + (t (set f f) + (prn))) + "one,two,three\nfour,five,six\nseven,eight,nine,ten\n" + (awk (:inputs *d0*) + (:set ofs "," fs #/[\t ]+/) + (t (set f f) + (prn))) + "one,two,three\n,four,five,six,\n,seven,eight,nine,ten,\n" + (awk (:inputs *d0*) + (:set ofs "," fs #/[\t ]+/ kfs t) + (t (set f f) + (prn))) + "one, ,two, ,three\n, ,four, ,five, ,six, ,\n, ,seven, ,eight, \t ,nine, ,ten,\t ,\n" + (awk (:inputs *d0*) + (:set ofs "," fs #/[\t ]+/ kfs t fw '(3 2 2)) + (t (set f f) + (prn))) + "one, t,wo, three\n fo,ur, f,ive six \n ,se,ve,n eight \t nine ten\t \n" + (awk (:inputs *d0*) + (:set ofs "," fs #/[\t ]+/ ft #/./) + (t (set f f) + (prn))) + :error + (awk (:inputs *d0*) + (:set ofs "," ft #/[a-z]+/) + (t (set f f) + (prn))) + "one,two,three\nfour,five,six\nseven,eight,nine,ten\n") diff --git a/tests/common.tl b/tests/common.tl index 57f411fa..8e73faee 100644 --- a/tests/common.tl +++ b/tests/common.tl @@ -95,3 +95,9 @@ (progn ,*body) (close-stream ,stream-var) (remove-path ,name-var)))) + +(defmacro otest (expr expected-output) + ^(vtest (with-out-string-stream (*stdout*) ,expr) ',expected-output)) + +(defmacro motest (. pairs) + ^(progn ,*(mapcar (op cons 'otest) (tuples 2 pairs)))) |