From: Martin Mares Date: Tue, 24 Jul 2012 14:54:39 +0000 (+0200) Subject: Added a test suite X-Git-Tag: v1.0~22 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=e17de8c888a689b72e86a7c761032a30513ec86b;p=xsv.git Added a test suite --- diff --git a/Makefile b/Makefile index 3912bde..e92d225 100644 --- 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 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/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 index 0000000..72b95ec --- /dev/null +++ b/tests/0001-no-args @@ -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 index 0000000..6cc5ab0 --- /dev/null +++ b/tests/0010-select-fields @@ -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 index 0000000..068ccb2 --- /dev/null +++ b/tests/1000-tsv-warnings @@ -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 index 0000000..1134153 --- /dev/null +++ b/tests/1100-csv-read @@ -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 index 0000000..66cb1b8 --- /dev/null +++ b/tests/1110-csv-write @@ -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 index 0000000..eb22c6a --- /dev/null +++ b/tests/1200-ws-read @@ -0,0 +1,6 @@ +--ws --tsv -d: + byl jednou jeden kral +a ten kral 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 index 0000000..2ff108f --- /dev/null +++ b/tests/1210-ws-read-sloppy @@ -0,0 +1,6 @@ +--ws --sloppy --tsv -d: + byl jednou jeden kral +a ten kral 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 index 0000000..11df406 --- /dev/null +++ b/tests/1300-regex-read @@ -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 index 0000000..5182c91 --- /dev/null +++ b/tests/1310-regex-read-sloppy @@ -0,0 +1,8 @@ +--regex='\d+' --sloppy --tsv -d: +badc0dem000n +123poetry456 +123456 +--- +badc:dem:n +poetry +