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>