esac
}
-if [ ! -f $TESTFILE ]; then
- echo "$TESTFILE cannot be found" >&2
- exit 1
-fi
-
-mkdir -p $TMPDIR
-${srcdir}/split-testfile.py $TESTFILE $TMPDIR | \
-while read input output; do
- run_test load_dump $input $output
- run_test loadf_dumpf $input $output
- run_test loads_dumps $input $output
+for testfile in $TESTFILES; do
+ mkdir -p $TMPDIR
+ ${srcdir}/split-testfile.py $testfile $TMPDIR | while read input output; do
+ run_test load_dump $input $output
+ run_test loadf_dumpf $input $output
+ run_test loads_dumps $input $output
+ done || exit 1
+ rm -rf $TMPDIR
done
print 'usage: %s input-file output-directory' % sys.argv[0]
return 2
- infile = sys.argv[1]
- outdir = sys.argv[2]
+ infile = os.path.normpath(sys.argv[1])
+ outdir = os.path.normpath(sys.argv[2])
if not os.path.exists(outdir):
print >>sys.stderr, 'output directory %r does not exist!' % outdir
current.write(line)
close_files(input, output)
- print >>sys.stderr, "%d test cases" % (i + 1)
+ print >>sys.stderr, "%s: %d test cases" % (infile, i + 1)
if __name__ == '__main__':
sys.exit(main() or 0)
#!/bin/sh
-TESTFILE="${srcdir}/testdata/invalid"
+TESTFILES="${srcdir}/testdata/invalid ${srcdir}/testdata/invalid-unicode"
TMPDIR="tmp"
run_test() {
#!/bin/sh
-TESTFILE="${srcdir}/testdata/valid"
+TESTFILES="${srcdir}/testdata/valid"
TMPDIR="tmp"
run_test() {
1
unexpected newline near '"a'
========
+{"a":"a" 123}
+====
+1
+'}' expected near '123'
+========
{[
====
1
1
invalid token near '-0'
========
+[troo
+====
+1
+invalid token near 'troo'
+========
+["\a <-- invalid escape"]
+====
+1
+invalid escape near '"\'
+========
[" <-- tab character"]
====
1
====
1
invalid Unicode '\uDFAA'
+========
+å
+====
+1
+'[' or '{' expected near 'å'
--- /dev/null
+å
+====
+-1
+unable to decode byte 0xe5 at position 0
+========
+["å <-- invalid UTF-8"]
+====
+-1
+unable to decode byte 0xe5 at position 2
+========
+[å]
+====
+-1
+unable to decode byte 0xe5 at position 1
+========
+[aå]
+====
+-1
+unable to decode byte 0xe5 at position 2
+========
+["\uå"]
+====
+-1
+unable to decode byte 0xe5 at position 4
+========
+["\å"]
+====
+-1
+unable to decode byte 0xe5 at position 3
+========
+[0å]
+====
+-1
+unable to decode byte 0xe5 at position 2
+========
+[123å]
+====
+-1
+unable to decode byte 0xe5 at position 4
+========
+[1eå]
+====
+-1
+unable to decode byte 0xe5 at position 3
+========
+[1e1å]
+====
+-1
+unable to decode byte 0xe5 at position 4
+========
+["\81"]
+====
+-1
+unable to decode byte 0x81 at position 2
+========
+["Á"]
+====
+-1
+unable to decode byte 0xc1 at position 2
+========
+["ý"]
+====
+-1
+unable to decode byte 0xfd at position 2
+========
+[""]
+====
+-1
+unable to decode byte 0xf4 at position 2
+========
+["à\80¢ <-- overlong encoding"]
+====
+-1
+unable to decode byte 0xe0 at position 2
+========
+["ð\80\80¢ <-- overlong encoding"]
+====
+-1
+unable to decode byte 0xf0 at position 2
+========
+["àÿ <-- truncated UTF-8"]
+====
+-1
+unable to decode byte 0xe0 at position 2
+========
+[" <-- encoded surrogate half"]
+====
+-1
+unable to decode byte 0xed at position 2
========
["abcdefghijklmnopqrstuvwxyz1234567890 "]
========
-["€þıœəßð some utf-8 ĸʒ×ŋµåäö"]
+["€þıœəßð some utf-8 ĸʒ×ŋµåäö𝄞"]
========
["\"\\\/\b\f\n\r\t"]
========