]> mj.ucw.cz Git - xsv.git/commitdiff
Added a test suite
authorMartin Mares <mj@ucw.cz>
Tue, 24 Jul 2012 14:54:39 +0000 (16:54 +0200)
committerMartin Mares <mj@ucw.cz>
Tue, 24 Jul 2012 14:54:39 +0000 (16:54 +0200)
Makefile
run-tests [new file with mode: 0755]
tests/0001-no-args [new file with mode: 0644]
tests/0010-select-fields [new file with mode: 0644]
tests/1000-tsv-warnings [new file with mode: 0644]
tests/1100-csv-read [new file with mode: 0644]
tests/1110-csv-write [new file with mode: 0644]
tests/1200-ws-read [new file with mode: 0644]
tests/1210-ws-read-sloppy [new file with mode: 0644]
tests/1300-regex-read [new file with mode: 0644]
tests/1310-regex-read-sloppy [new file with mode: 0644]

index 3912bde34317c889180b9cd39c4bf62d9133840a..e92d2253303e907742a914a59e7459f8270a1125 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,10 @@ LDLIBS=$(PCRE_LIBS)
 
 all: xsv
 
+tests: xsv
+       ./run-tests
+
 clean:
        rm -f `find . -name "*~" -or -name "*.[oa]" -or -name "\#*\#" -or -name TAGS -or -name core -or -name .depend -or -name .#*`
        rm -f xsv
+       rm -rf tmp
diff --git a/run-tests b/run-tests
new file mode 100755 (executable)
index 0000000..78e4a62
--- /dev/null
+++ b/run-tests
@@ -0,0 +1,28 @@
+#!/bin/sh
+set -e
+
+for a in tests/????-* ; do
+       echo -n "$a: "
+       rm -rf tmp
+       mkdir tmp
+       ARGS=`head -1 <$a`
+       sed '1d; /^---/,$d' <$a >tmp/in
+       sed '1,/^---/d; /^---/,$d' <$a >tmp/expected-out
+       sed '1,/^---/d; 1,/^---/d' <$a >tmp/expected-err
+       if eval ./xsv $ARGS <tmp/in >tmp/out 2>tmp/err ; then
+               if ! cmp -s tmp/out tmp/expected-out ; then
+                       echo FAILED
+                       diff -u tmp/expected-out tmp/out
+                       exit 1
+               elif ! cmp -s tmp/err tmp/expected-err ; then
+                       echo FAILED
+                       diff -u tmp/expected-err tmp/err
+                       exit 1
+               else
+                       echo OK
+               fi
+       else
+               echo FAILED
+               exit 1
+       fi
+done
diff --git a/tests/0001-no-args b/tests/0001-no-args
new file mode 100644 (file)
index 0000000..72b95ec
--- /dev/null
@@ -0,0 +1,6 @@
+
+12     34      56
+333    22              1
+---
+12     34      56
+333    22              1
diff --git a/tests/0010-select-fields b/tests/0010-select-fields
new file mode 100644 (file)
index 0000000..6cc5ab0
--- /dev/null
@@ -0,0 +1,14 @@
+-d: 3 1 6-
+root:x:0:0:The Almighty Root:/root:/bin/bash
+radvd:x:110:65534::/var/run/radvd:/bin/false
+statd:x:106:65534::/var/lib/nfs:/bin/false
+usbmux:x:119:46:usbmux daemon,,,:/home/usbmux:/bin/false
+uml-net:x:113:105::/home/uml-net:/bin/false
+ntp:x:118:119::/home/ntp:/bin/false
+---
+0:root:/root:/bin/bash
+110:radvd:/var/run/radvd:/bin/false
+106:statd:/var/lib/nfs:/bin/false
+119:usbmux:/home/usbmux:/bin/false
+113:uml-net:/home/uml-net:/bin/false
+118:ntp:/home/ntp:/bin/false
diff --git a/tests/1000-tsv-warnings b/tests/1000-tsv-warnings
new file mode 100644 (file)
index 0000000..068ccb2
--- /dev/null
@@ -0,0 +1,10 @@
+--tsv --tsv -d:
+xxx
+abc    de:f    g::hi
+---
+xxx
+abc:de:f:g::hi
+---
+Warning at line 2: Field separator found inside field and quoting is turned off.
+Warning at line 2: Field separator found inside field and quoting is turned off.
+Warning at line 2: Field separator found inside field and quoting is turned off.
diff --git a/tests/1100-csv-read b/tests/1100-csv-read
new file mode 100644 (file)
index 0000000..1134153
--- /dev/null
@@ -0,0 +1,12 @@
+--csv --tsv
+1,2002,3
+,1,
+1,"""2,0,0,2""",3
+1,",
+---
+1      2002    3
+       1       
+1      "2,0,0,2"       3
+1      ,
+---
+Warning at line 4: Missing closing quote.
diff --git a/tests/1110-csv-write b/tests/1110-csv-write
new file mode 100644 (file)
index 0000000..66cb1b8
--- /dev/null
@@ -0,0 +1,10 @@
+--tsv --csv
+1      2002    3
+       1       
+1      "2,0,0,2"       3
+1      ,       3
+---
+1,2002,3
+,1,
+1,"""2,0,0,2""",3
+1,",",3
diff --git a/tests/1200-ws-read b/tests/1200-ws-read
new file mode 100644 (file)
index 0000000..eb22c6a
--- /dev/null
@@ -0,0 +1,6 @@
+--ws --tsv -d:
+   byl  jednou    jeden kral
+a  ten         \fkral  mel rad syr   
+---
+:byl:jednou:jeden:kral
+a:ten:kral:mel:rad:syr:
diff --git a/tests/1210-ws-read-sloppy b/tests/1210-ws-read-sloppy
new file mode 100644 (file)
index 0000000..2ff108f
--- /dev/null
@@ -0,0 +1,6 @@
+--ws --sloppy --tsv -d:
+   byl  jednou    jeden kral
+a  ten         \fkral  mel rad syr   
+---
+byl:jednou:jeden:kral
+a:ten:kral:mel:rad:syr
diff --git a/tests/1300-regex-read b/tests/1300-regex-read
new file mode 100644 (file)
index 0000000..11df406
--- /dev/null
@@ -0,0 +1,6 @@
+--regex='\d+' --tsv -d:
+badc0dem000n
+123poetry456
+---
+badc:dem:n
+:poetry:
diff --git a/tests/1310-regex-read-sloppy b/tests/1310-regex-read-sloppy
new file mode 100644 (file)
index 0000000..5182c91
--- /dev/null
@@ -0,0 +1,8 @@
+--regex='\d+' --sloppy --tsv -d:
+badc0dem000n
+123poetry456
+123456
+---
+badc:dem:n
+poetry
+