Annotation of embedaddon/expat/tests/xmltest.sh, revision 1.1.1.1
1.1 misho 1: #! /bin/sh
2:
3: # EXPAT TEST SCRIPT FOR W3C XML TEST SUITE
4:
5: # This script can be used to exercise Expat against the
6: # w3c.org xml test suite, available from
7: # http://www.w3.org/XML/Test/xmlts20020606.zip.
8:
9: # To run this script, first set XMLWF so that xmlwf can be
10: # found, then set the output directory with OUTPUT.
11:
12: # The script lists all test cases where Expat shows a discrepancy
13: # from the expected result. Test cases where only the canonical
14: # output differs are prefixed with "Output differs:", and a diff file
15: # is generated in the appropriate subdirectory under $OUTPUT.
16:
17: # If there are output files provided, the script will use
18: # output from xmlwf and compare the desired output against it.
19: # However, one has to take into account that the canonical output
20: # produced by xmlwf conforms to an older definition of canonical XML
21: # and does not generate notation declarations.
22:
23: MYDIR="`dirname \"$0\"`"
24: cd "$MYDIR"
25: MYDIR="`pwd`"
26: XMLWF="`dirname \"$MYDIR\"`/xmlwf/xmlwf"
27: # XMLWF=/usr/local/bin/xmlwf
28: TS="$MYDIR/XML-Test-Suite"
29: # OUTPUT must terminate with the directory separator.
30: OUTPUT="$TS/out/"
31: # OUTPUT=/home/tmp/xml-testsuite-out/
32:
33:
34: # RunXmlwfNotWF file reldir
35: # reldir includes trailing slash
36: RunXmlwfNotWF() {
37: file="$1"
38: reldir="$2"
39: $XMLWF -p "$file" > outfile || return $?
40: read outdata < outfile
41: if test "$outdata" = "" ; then
42: echo "Expected well-formed: $reldir$file"
43: return 1
44: else
45: return 0
46: fi
47: }
48:
49: # RunXmlwfWF file reldir
50: # reldir includes trailing slash
51: RunXmlwfWF() {
52: file="$1"
53: reldir="$2"
54: $XMLWF -p -d "$OUTPUT$reldir" "$file" > outfile || return $?
55: read outdata < outfile
56: if test "$outdata" = "" ; then
57: if [ -f "out/$file" ] ; then
58: diff "$OUTPUT$reldir$file" "out/$file" > outfile
59: if [ -s outfile ] ; then
60: cp outfile "$OUTPUT$reldir$file.diff"
61: echo "Output differs: $reldir$file"
62: return 1
63: fi
64: fi
65: return 0
66: else
67: echo "In $reldir: $outdata"
68: return 1
69: fi
70: }
71:
72: SUCCESS=0
73: ERROR=0
74:
75: UpdateStatus() {
76: if [ "$1" -eq 0 ] ; then
77: SUCCESS=`expr $SUCCESS + 1`
78: else
79: ERROR=`expr $ERROR + 1`
80: fi
81: }
82:
83: ##########################
84: # well-formed test cases #
85: ##########################
86:
87: cd "$TS/xmlconf"
88: for xmldir in ibm/valid/P* \
89: ibm/invalid/P* \
90: xmltest/valid/ext-sa \
91: xmltest/valid/not-sa \
92: xmltest/invalid \
93: xmltest/invalid/not-sa \
94: xmltest/valid/sa \
95: sun/valid \
96: sun/invalid ; do
97: cd "$TS/xmlconf/$xmldir"
98: mkdir -p "$OUTPUT$xmldir"
99: for xmlfile in *.xml ; do
100: RunXmlwfWF "$xmlfile" "$xmldir/"
101: UpdateStatus $?
102: done
103: rm outfile
104: done
105:
106: cd "$TS/xmlconf/oasis"
107: mkdir -p "$OUTPUT"oasis
108: for xmlfile in *pass*.xml ; do
109: RunXmlwfWF "$xmlfile" "oasis/"
110: UpdateStatus $?
111: done
112: rm outfile
113:
114: ##############################
115: # not well-formed test cases #
116: ##############################
117:
118: cd "$TS/xmlconf"
119: for xmldir in ibm/not-wf/P* \
120: ibm/not-wf/misc \
121: xmltest/not-wf/ext-sa \
122: xmltest/not-wf/not-sa \
123: xmltest/not-wf/sa \
124: sun/not-wf ; do
125: cd "$TS/xmlconf/$xmldir"
126: for xmlfile in *.xml ; do
127: RunXmlwfNotWF "$xmlfile" "$xmldir/"
128: UpdateStatus $?
129: done
130: rm outfile
131: done
132:
133: cd "$TS/xmlconf/oasis"
134: for xmlfile in *fail*.xml ; do
135: RunXmlwfNotWF "$xmlfile" "oasis/"
136: UpdateStatus $?
137: done
138: rm outfile
139:
140: echo "Passed: $SUCCESS"
141: echo "Failed: $ERROR"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>