X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftstmarc.sh;h=ff0b6868675a364151e85db01f49715b59c2d048;hp=97b1ab4c2cf361a5068121affd65e9886a7cd9b1;hb=f3cc474450a7c6be9c583b5b60e7fac51d1f4fc5;hpb=8233c05994729938fdfe9ac5865094a44be9fdfb diff --git a/test/tstmarc.sh b/test/tstmarc.sh index 97b1ab4..ff0b686 100755 --- a/test/tstmarc.sh +++ b/test/tstmarc.sh @@ -1,31 +1,42 @@ #!/bin/sh -# $Id: tstmarc.sh,v 1.2 2004-11-16 17:12:28 adam Exp $ +# Tests reading of ISO2709 and checks that we get identical MARCXML +# +# Reads marc?.marc files , Generates marc*.xml files +# If Libxml2 is present, the marc*.xml files are parsed again.. srcdir=${srcdir:-.} ecode=0 -for f in ${srcdir}/marc?; do - NEW=`basename ${f}`.new.xml - OLD=${f}.xml + +../util/yaz-marcdump -i marcxml >/dev/null 2>&1 +if test $? = "3"; then + noxml=1 +fi + +for f in ${srcdir}/marc[0-9].marc; do + fb=`basename ${f} .marc` + CHR=${srcdir}/${fb}.chr + NEW=${fb}.new.xml + OLD=${srcdir}/${fb}.xml DIFF=`basename ${f}`.diff - ../util/yaz-marcdump -f iso-8859-1 -t utf-8 -X $f > $NEW + ../util/yaz-marcdump -f `cat $CHR` -t utf-8 -o marcxml $f > $NEW if test $? != "0"; then - echo "Failed decode of $f" + echo "$f: yaz-marcdump returned error" ecode=1 elif test -f $OLD; then if diff $OLD $NEW >$DIFF; then rm $DIFF rm $NEW else - echo "Differ in $f" + echo "$f: $NEW and $OLD differ" ecode=1 fi else - echo "Making test $f for the first time" + echo "$f: Making test result $OLD for the first time" if test -x /usr/bin/xmllint; then if xmllint --noout $NEW >out 2>stderr; then - echo "XML for $f is OK" + echo "$f: $NEW is well-formed" mv $NEW $OLD else - echo "XML for $f is invalid" + echo "$f: $NEW not well-formed" ecode=1 fi else @@ -33,6 +44,35 @@ for f in ${srcdir}/marc?; do ecode=1 fi fi + + if test -z "$noxml"; then + f=$OLD + OLD=${f}.marc + NEW=`basename ${f}`.new.marc + DIFF=`basename ${f}`.diff + ../util/yaz-marcdump -f utf-8 -t utf-8 -i marcxml -o marc $f > $NEW + if test $? != "0"; then + echo "Failed decode of $f" + ecode=1 + elif test -f $OLD; then + if diff $OLD $NEW >$DIFF; then + rm $DIFF + rm $NEW + else + echo "$f: $NEW and $OLD Differ" + ecode=1 + fi + else + echo "$f: Making test result $OLD for the first time" + mv $NEW $OLD + fi + fi + done exit $ecode +# Local Variables: +# mode:shell-script +# sh-indentation: 2 +# sh-basic-offset: 4 +# End: