[BACK]Return to xmltest.sh CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / mit / expat / dist / tests

File: [cvs.NetBSD.org] / src / external / mit / expat / dist / tests / xmltest.sh (download)

Revision 1.1.1.2.12.1.2.1, Wed Jun 21 17:15:28 2017 UTC (6 years, 9 months ago) by snj
Branch: netbsd-7-1
CVS Tags: netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE
Changes since 1.1.1.2.12.1: +4 -3 lines

Pull up following revision(s) (requested by spz in ticket #1437):
	doc/3RDPARTY: 1.1454
	external/mit/expat/dist/AUTHORS: up to 1.1.1.1
	external/mit/expat/dist/CMake.README: up to 1.1.1.4
	external/mit/expat/dist/CMakeLists.txt: up to 1.1.1.4
	external/mit/expat/dist/COPYING: up to 1.1.1.3
	external/mit/expat/dist/Changes: up to 1.1.1.5
	external/mit/expat/dist/MANIFEST: up to 1.1.1.5
	external/mit/expat/dist/Makefile.in: up to 1.1.1.5
	external/mit/expat/dist/README: up to 1.1.1.5
	external/mit/expat/dist/amiga/Makefile: delete
	external/mit/expat/dist/amiga/README.txt: delete
	external/mit/expat/dist/amiga/expat.xml: delete
	external/mit/expat/dist/amiga/expat_68k.c: delete
	external/mit/expat/dist/amiga/expat_68k.h: delete
	external/mit/expat/dist/amiga/expat_68k_handler_stubs.c: delete
	external/mit/expat/dist/amiga/expat_base.h: delete
	external/mit/expat/dist/amiga/expat_lib.c: delete
	external/mit/expat/dist/amiga/expat_vectors.c: delete
	external/mit/expat/dist/amiga/include/inline4/expat.h: delete
	external/mit/expat/dist/amiga/include/interfaces/expat.h: delete
	external/mit/expat/dist/amiga/include/libraries/expat.h: delete
	external/mit/expat/dist/amiga/include/proto/expat.h: delete
	external/mit/expat/dist/amiga/launch.c: delete
	external/mit/expat/dist/bcb5/README.txt: delete
	external/mit/expat/dist/bcb5/all_projects.bpg: delete
	external/mit/expat/dist/bcb5/elements.bpf: delete
	external/mit/expat/dist/bcb5/elements.bpr: delete
	external/mit/expat/dist/bcb5/elements.mak: delete
	external/mit/expat/dist/bcb5/expat.bpf: delete
	external/mit/expat/dist/bcb5/expat.bpr: delete
	external/mit/expat/dist/bcb5/expat.mak: delete
	external/mit/expat/dist/bcb5/expat_static.bpf: delete
	external/mit/expat/dist/bcb5/expat_static.bpr: delete
	external/mit/expat/dist/bcb5/expat_static.mak: delete
	external/mit/expat/dist/bcb5/expatw.bpf: delete
	external/mit/expat/dist/bcb5/expatw.bpr: delete
	external/mit/expat/dist/bcb5/expatw.mak: delete
	external/mit/expat/dist/bcb5/expatw_static.bpf: delete
	external/mit/expat/dist/bcb5/expatw_static.bpr: delete
	external/mit/expat/dist/bcb5/expatw_static.mak: delete
	external/mit/expat/dist/bcb5/libexpat_mtd.def: delete
	external/mit/expat/dist/bcb5/libexpatw_mtd.def: delete
	external/mit/expat/dist/bcb5/makefile.mak: delete
	external/mit/expat/dist/bcb5/outline.bpf: delete
	external/mit/expat/dist/bcb5/outline.bpr: delete
	external/mit/expat/dist/bcb5/outline.mak: delete
	external/mit/expat/dist/bcb5/setup.bat: delete
	external/mit/expat/dist/bcb5/xmlwf.bpf: delete
	external/mit/expat/dist/bcb5/xmlwf.bpr: delete
	external/mit/expat/dist/bcb5/xmlwf.mak: delete
	external/mit/expat/dist/configure: up to 1.1.1.5
	external/mit/expat/dist/configure.ac: up to 1.1.1.3
	external/mit/expat/dist/configure.in: delete
	external/mit/expat/dist/doc/reference.html: up to 1.1.1.4
	external/mit/expat/dist/examples/elements.c: up to 1.1.1.4
	external/mit/expat/dist/examples/elements.dsp: delete
	external/mit/expat/dist/examples/outline.c: up to 1.1.1.3
	external/mit/expat/dist/examples/outline.dsp: delete
	external/mit/expat/dist/expat.dsw: delete
	external/mit/expat/dist/expat_config.h.in: up to 1.1.1.5
	external/mit/expat/dist/lib/Makefile.MPW: delete
	external/mit/expat/dist/lib/amigaconfig.h: delete
	external/mit/expat/dist/lib/expat.dsp: delete
	external/mit/expat/dist/lib/expat.h: up to 1.1.1.5
	external/mit/expat/dist/lib/expat_external.h: up to 1.1.1.3
	external/mit/expat/dist/lib/expat_static.dsp: delete
	external/mit/expat/dist/lib/expatw.dsp: delete
	external/mit/expat/dist/lib/expatw_static.dsp: delete
	external/mit/expat/dist/lib/macconfig.h: delete
	external/mit/expat/dist/lib/siphash.h: up to 1.1.1.1
	external/mit/expat/dist/lib/winconfig.h: up to 1.1.1.2
	external/mit/expat/dist/lib/xmlparse.c: up to 1.7
	external/mit/expat/dist/lib/xmlrole.c: up to 1.1.1.4
	external/mit/expat/dist/lib/xmltok.c: up to 1.4
	external/mit/expat/dist/m4/libtool.m4: up to 1.1.1.4
	external/mit/expat/dist/run.sh.in: up to 1.1.1.1
	external/mit/expat/dist/tests/benchmark/benchmark.c: up to 1.1.1.2
	external/mit/expat/dist/tests/benchmark/benchmark.dsp: delete
	external/mit/expat/dist/tests/benchmark/benchmark.dsw: delete
	external/mit/expat/dist/tests/memcheck.c: up to 1.1.1.1
	external/mit/expat/dist/tests/memcheck.h: up to 1.1.1.1
	external/mit/expat/dist/tests/minicheck.c: up to 1.1.1.3
	external/mit/expat/dist/tests/minicheck.h: up to 1.1.1.4
	external/mit/expat/dist/tests/runtests.c: up to 1.1.1.4
	external/mit/expat/dist/tests/xmltest.sh: up to 1.3
	external/mit/expat/dist/vms/README.vms: delete
	external/mit/expat/dist/vms/descrip.mms: delete
	external/mit/expat/dist/vms/expat_config.h: delete
	external/mit/expat/dist/win32/MANIFEST.txt: up to 1.1.1.2
	external/mit/expat/dist/win32/README.txt: up to 1.1.1.4
	external/mit/expat/dist/win32/expat.iss: up to 1.1.1.5
	external/mit/expat/dist/xmlwf/codepage.c: up to 1.1.1.3
	external/mit/expat/dist/xmlwf/filemap.h: up to 1.1.1.2
	external/mit/expat/dist/xmlwf/readfilemap.c: up to 1.1.1.4
	external/mit/expat/dist/xmlwf/unixfilemap.c: up to 1.1.1.3
	external/mit/expat/dist/xmlwf/win32filemap.c: up to 1.1.1.2
	external/mit/expat/dist/xmlwf/xmlfile.c: up to 1.1.1.3
	external/mit/expat/dist/xmlwf/xmlwf.c: up to 1.1.1.5
	external/mit/expat/dist/xmlwf/xmlwf.dsp: delete
Update expat to 2.2.1.

#! /usr/bin/env bash

#   EXPAT TEST SCRIPT FOR W3C XML TEST SUITE

# This script can be used to exercise Expat against the
# w3c.org xml test suite, available from
# http://www.w3.org/XML/Test/xmlts20020606.zip.

# To run this script, first set XMLWF below so that xmlwf can be
# found, then set the output directory with OUTPUT.

# The script lists all test cases where Expat shows a discrepancy
# from the expected result. Test cases where only the canonical
# output differs are prefixed with "Output differs:", and a diff file
# is generated in the appropriate subdirectory under $OUTPUT.

# If there are output files provided, the script will use
# output from xmlwf and compare the desired output against it.
# However, one has to take into account that the canonical output
# produced by xmlwf conforms to an older definition of canonical XML
# and does not generate notation declarations.

shopt -s nullglob

MYDIR="`dirname \"$0\"`"
cd "$MYDIR"
MYDIR="`pwd`"
#XMLWF="${1:-`dirname \"$MYDIR\"`/xmlwf/xmlwf}"
XMLWF=/usr/bin/xmlwf
TS="$MYDIR"
# OUTPUT must terminate with the directory separator.
OUTPUT="$TS/out/"
# OUTPUT=/home/tmp/xml-testsuite-out/


# RunXmlwfNotWF file reldir
# reldir includes trailing slash
RunXmlwfNotWF() {
  file="$1"
  reldir="$2"
  $XMLWF -p "$file" > outfile || return $?
  read outdata < outfile
  if test "$outdata" = "" ; then
      echo "Expected not well-formed: $reldir$file"
      return 1
  else
      return 0
  fi 
}

# RunXmlwfWF file reldir
# reldir includes trailing slash
RunXmlwfWF() {
  file="$1"
  reldir="$2"
  $XMLWF -p -d "$OUTPUT$reldir" "$file" > outfile || return $?
  read outdata < outfile 
  if test "$outdata" = "" ; then 
      if [ -f "out/$file" ] ; then 
          diff -u "$OUTPUT$reldir$file" "out/$file" > outfile 
          if [ -s outfile ] ; then 
              cp outfile "$OUTPUT$reldir$file.diff"
              echo "Output differs: $reldir$file"
              return 1
          fi 
      fi 
      return 0
  else 
      echo "In $reldir: $outdata"
      return 1
  fi 
}

SUCCESS=0
ERROR=0

UpdateStatus() {
  if [ "$1" -eq 0 ] ; then
    SUCCESS=`expr $SUCCESS + 1`
  else
    ERROR=`expr $ERROR + 1`
  fi
}

##########################
# well-formed test cases #
##########################

cd "$TS/xmlconf"
for xmldir in ibm/valid/P* \
              ibm/invalid/P* \
              xmltest/valid/ext-sa \
              xmltest/valid/not-sa \
              xmltest/invalid \
              xmltest/invalid/not-sa \
              xmltest/valid/sa \
              sun/valid \
              sun/invalid ; do
  cd "$TS/xmlconf/$xmldir"
  mkdir -p "$OUTPUT$xmldir"
  for xmlfile in $(ls -1 *.xml | sort -d) ; do
      [[ -f "$xmlfile" ]] || continue
      RunXmlwfWF "$xmlfile" "$xmldir/"
      UpdateStatus $?
  done
  rm -f outfile
done

cd "$TS/xmlconf/oasis"
mkdir -p "$OUTPUT"oasis
for xmlfile in *pass*.xml ; do
    RunXmlwfWF "$xmlfile" "oasis/"
    UpdateStatus $?
done
rm outfile

##############################
# not well-formed test cases #
##############################

cd "$TS/xmlconf"
for xmldir in ibm/not-wf/P* \
              ibm/not-wf/p28a \
              ibm/not-wf/misc \
              xmltest/not-wf/ext-sa \
              xmltest/not-wf/not-sa \
              xmltest/not-wf/sa \
              sun/not-wf ; do
  cd "$TS/xmlconf/$xmldir"
  for xmlfile in *.xml ; do
      RunXmlwfNotWF "$xmlfile" "$xmldir/"
      UpdateStatus $?
  done
  rm outfile
done

cd "$TS/xmlconf/oasis"
for xmlfile in *fail*.xml ; do
    RunXmlwfNotWF "$xmlfile" "oasis/"
    UpdateStatus $?
done
rm outfile

echo "Passed: $SUCCESS"
echo "Failed: $ERROR"