## Copyright (C) 1995-2007, Index Data ApS
## All rights reserved.
-## $Id: Makefile.am,v 1.41 2007-10-24 22:10:24 adam Exp $
+## $Id: Makefile.am,v 1.42 2008-01-06 21:48:23 adam Exp $
check_PROGRAMS = tsticonv tstnmem tstmatchstr tstwrbuf tstodr tstccl tstlog \
tstsoap1 tstsoap2 tstodrstack tstlogthread tstxmlquery tstpquery \
tst_comstack tst_filepath tst_record_conv tst_retrieval tst_tpath \
tst_timing tst_query_charset tst_oid tst_icu_I18N tst_match_glob
-check_SCRIPTS = tstcql.sh tstmarc.sh tstmarccol.sh
+check_SCRIPTS = tstcql.sh tstmarc.sh tstmarccol.sh tstcql2pqf.sh
TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
EXTRA_DIST = tstodr.asn tstodrcodec.c tstodrcodec.h cqlsample \
- cql2pqf-order.txt \
+ cql2pqf-order.txt cql2pqfsample \
$(check_SCRIPTS) \
marc1.marc marc1.xml marc1.chr marc1.xml.marc \
marc2.marc marc2.xml marc2.chr marc2.xml.marc \
dist-hook:
mkdir -p $(distdir)/cql
- cp $(srcdir)/cql/*.err $(distdir)/cql
- cp $(srcdir)/cql/*.out $(distdir)/cql
+ cp $(srcdir)/cql/*.err $(srcdir)/cql/*.out $(distdir)/cql
+ mkdir -p $(distdir)/cql2pqf
+ cp $(srcdir)/cql2pqf/*.err $(srcdir)/cql2pqf/*.out $(distdir)/cql2pqf
# Rule for generating codecs for our small ASN.1 spec
tstodrcodec.c tstodrcodec.h: tstodr.asn $(YAZCOMP)
--- /dev/null
+@attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "a"
--- /dev/null
+@attr 6=1 @attr 2=3 @attr 4=1 @and @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "a" @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "b"
--- /dev/null
+@attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "a b"
--- /dev/null
+@attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=4 "fish"
--- /dev/null
+@attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=4 "fish"
--- /dev/null
+@or @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "cat" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "dog"
--- /dev/null
+@and @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "cat" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "fish"
--- /dev/null
+@not @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "cat" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "frog"
--- /dev/null
+@not @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "cat" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "frog"
--- /dev/null
+@not @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "cat" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "fish food"
--- /dev/null
+@and @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "xml" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "prox///"
--- /dev/null
+@and @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "fred" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "any"
--- /dev/null
+@or @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "fred" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "all"
--- /dev/null
+@not @and @or @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "a" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "b" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "c" @attr 6=1 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 @attr 5=100 @attr 1=1016 "d"
--- /dev/null
+# $Id: cql2pqfsample,v 1.1 2008-01-06 21:48:23 adam Exp $
+# CQL queries for testing.
+# from http://www.loc.gov/z3950/agency/zing/cql/sample-queries.html
+# Simple Term
+
+a
+a b
+"a b"
+
+# Index Relation Term
+
+title = fish
+dc.title = fish
+
+# Simple Boolean
+
+cat or dog
+cat and fish
+cat not frog
+(cat not frog)
+"cat" not "fish food"
+xml and "prox///"
+fred and any
+((fred or all))
+a or b and c not d
+
--- /dev/null
+#!/bin/sh
+# $Id: tstcql2pqf.sh,v 1.1 2008-01-06 21:48:23 adam Exp $
+srcdir=${srcdir:-.}
+oIFS="$IFS"
+IFS='
+'
+secno=0
+testno=0
+comment=0
+ecode=0
+test -f ${srcdir}/cql2pqfsample || exit 1
+test -d cql2pqf || mkdir cql2pqf
+for f in `cat ${srcdir}/cql2pqfsample`; do
+ if echo $f | grep '^#' >/dev/null; then
+ comment=1
+ else
+ if test "$comment" = "1"; then
+ secno=`expr $secno + 1`
+ testno=0
+ fi
+ comment=0
+ testno=`expr $testno + 1`
+ OUT1=${srcdir}/cql2pqf/$secno.$testno.out
+ ERR1=${srcdir}/cql2pqf/$secno.$testno.err
+ OUT2=cql2pqf/$secno.$testno.out.tmp
+ ERR2=cql2pqf/$secno.$testno.err.tmp
+ DIFF=cql2pqf/$secno.$testno.diff
+ ../util/cql2pqf ${srcdir}/../etc/pqf.properties "$f" >$OUT2 2>$ERR2
+ if test -f $OUT1 -a -f $ERR1; then
+ if diff $OUT1 $OUT2 >$DIFF; then
+ rm $DIFF
+ rm $OUT2
+ else
+ echo "diff out $secno $testno $f"
+ cat $DIFF
+ ecode=1
+ fi
+ if diff $ERR1 $ERR2 >$DIFF; then
+ rm $DIFF
+ rm $ERR2
+ else
+ echo "diff err $secno $testno $f"
+ cat $DIFF
+ ecode=1
+ fi
+ else
+ echo "making test $secno $testno $f"
+ mv $OUT2 $OUT1
+ mv $ERR2 $ERR1
+ ecode=1
+ fi
+ fi
+done
+IFS="$oIFS"
+exit $ecode