#!/bin/sh

PATH=`pwd`/../../../sax/test:`pwd`/../:$PATH
export PATH


test_internal() {
   cmd=$1
   dir=$2
   xml=$3
   out=$4
   
   (
   cd $dir
   eval $cmd $xml > tmp 2>&1
   if cmp -s $out tmp; then
      true;
   else
      echo "----- $dir $xml ------"
      diff $out tmp
   fi
   rm tmp
   )
}

testsax_silent() {
  test_internal "testsax -silent -nocolor" "$@"
}
testsax_verbose() {
  test_internal "testsax -nocolor" "$@"
}
testxml_silent() {
  test_internal "testxml -collapse -silent" "$@"
}
testxml_verbose() {
  test_internal "testxml -collapse" "$@"
}
testxml_verbose_eol() {
  test_internal "testxml -collapse -eol \"\n\"" "$@"
}
testxml_uri() {
  test_internal "testxml -collapse -uri" "$@"
}

testsax_verbose . not_found.xml not_found.xml.out
testsax_silent  external/ SetworksParams.XML test.out
testsax_verbose . 9912-005.xml 9912-005.out
testsax_verbose . model_in_entity.xml model_in_entity.out
testsax_verbose . unusual_header.xml unusual_header.out
testsax_silent . D602-005.xml D602-005.out
testsax_silent . D602-005-2.xml D602-005-2.out
testxml_verbose namespaces2/ 5_3.xml 5_3.out
testxml_verbose namespaces2/ 5_3_2.xml 5_3_2.out
testxml_uri     namespaces/  standard.xml standard.out
testsax_verbose namespaces/  bug2.xml bug2.out
testxml_uri     namespaces/  bug3.xml bug3.out
testxml_verbose . spaces.xml spaces.out
testsax_verbose entities/    4_5.xml  4_5.out
testsax_verbose entities/    bug1.xml bug1.out
testsax_verbose entities/    self_contained.xml self_contained.out
testsax_verbose whitespace/  ignorable.xml ignorable.out
testsax_verbose whitespace/  ignorable2.xml ignorable2.out
testxml_verbose encoding/    latin1.xml latin1.out
testxml_verbose . D714-002.xml D714-002.out

(cd CC01-006; gnatmake -q -Pdefault)
(cd EA15-007; sh ./test.cmd)
test_internal "./my_test" CC01-006 test.xml test.out
(cd EA03-006; gnatmake -q -Preproducer; ./reproducer)
testxml_verbose_eol EB02-005 namespace.xml namespace.out
testxml_verbose_eol EB02-005 namespace2.xml namespace2.out
testxml_silent . F502-022.xml empty.out
