# -*- Mode: Makefile -*- # # Makefile.am - automake file for Rasqal SPARQL tests # # Copyright (C) 2005-2008, David Beckett http://www.dajobe.org/ # Copyright (C) 2005-2005, University of Bristol, UK http://www.bristol.ac.uk/ # # This package is Free Software and part of Redland http://librdf.org/ # # It is licensed under the following three licenses as alternatives: # 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version # 2. GNU General Public License (GPL) V2 or any newer version # 3. Apache License, V2.0 or any newer version # # You may not use this file except in compliance with at least one of # the above three licenses. # # See LICENSE.html or LICENSE.txt at the top of this package for the # complete terms and further detail along with the license texts for # the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively. # SPARQL_MANIFEST_FILES= manifest.ttl SPARQL_TEST_FILES= \ syn-01.rq syn-02.rq syn-03.rq syn-04.rq syn-05.rq syn-06.rq syn-07.rq \ syn-08.rq SPARQL_TEST_BAD_FILES= \ syn-bad-01.rq syn-bad-02.rq syn-bad-03.rq syn-bad-04.rq syn-bad-05.rq \ syn-bad-06.rq syn-bad-07.rq syn-bad-08.rq syn-bad-09.rq syn-bad-10.rq \ bnode-dot.rq bnodes-missing-pvalues-01.rq \ bnodes-missing-pvalues-02.rq empty-optional-01.rq \ empty-optional-02.rq filter-missing-parens.rq lone-list.rq \ lone-node.rq EXPECTED_SPARQL_PARSER_FAILURES= EXPECTED_SPARQL_PARSER_FAILURES_COUNT=0 EXPECTED_SPARQL_CORRECT_FAILURES= \ $(EXPECTED_SPARQL_PARSER_FAILURES) EXTRA_DIST= \ $(SPARQL_MANIFEST_FILES) \ $(SPARQL_TEST_FILES) \ $(SPARQL_TEST_BAD_FILES) build-roqet: @(cd $(top_builddir)/utils ; $(MAKE) roqet) build-sparql-lexer-test: @(cd $(top_builddir)/src ; $(MAKE) sparql_lexer_test) build-sparql-parser-test: @(cd $(top_builddir)/src ; $(MAKE) sparql_parser_test) check-local: check-sparql-lexer check-sparql-parser \ check-sparql-correct check-sparql-lexer: build-sparql-lexer-test @set +e; result=0; \ $(ECHO) "Testing legal SPARQL lexing"; \ for test in $(SPARQL_TEST_FILES); do \ $(ECHO) $(ECHO_N) "Checking $$test $(ECHO_C)"; \ $(top_builddir)/src/sparql_lexer_test $(srcdir)/$$test >/dev/null; \ status=$$?; \ if test $$status != 0 -a $$status != 2 ; then \ $(ECHO) FAILED returned status $$status; result=1; \ else \ $(ECHO) ok; \ fi; \ done; \ set -e; exit $$result check-sparql-parser: build-sparql-parser-test @set +e; result=0; \ $(ECHO) "Testing legal SPARQL parsing"; \ for test in $(SPARQL_TEST_FILES); do \ $(ECHO) $(ECHO_N) "Checking $$test $(ECHO_C)"; \ $(top_builddir)/src/sparql_parser_test $(srcdir)/$$test >/dev/null; \ status=$$?; \ if test $$status != 0 -a $$status != 2 ; then \ $(ECHO) FAILED returned status $$status; result=1; \ fails="$$fails $$test"; \ else \ $(ECHO) ok; \ fi; \ done; \ if test $$result != 0 ; then \ echo "Expecting test failures: $(EXPECTED_SPARQL_PARSER_FAILURES)"; \ result=`echo $$fails | wc -w`; \ if test $$result = $(EXPECTED_SPARQL_PARSER_FAILURES_COUNT) ; then \ echo "OK: Ignoring $$result expected test failures"; result=0; \ else \ echo "FAILED: $$result failures $$fails does not match expected $(EXPECTED_SPARQL_PARSER_FAILURES_COUNT)"; result=1; \ fi; \ fi; \ set -e; exit $$result check-sparql-correct: build-roqet $(srcdir)/../../check-sparql @set +e; \ expect=`echo $(EXPECTED_SPARQL_CORRECT_FAILURES) | wc -w`; \ $(ECHO) "Testing SPARQL correct"; \ PATH=$(top_builddir)/utils:$(top_builddir)@RAPPER_PATH@:$$PATH \ $(PERL) $(srcdir)/../../check-sparql -s $(srcdir); \ result=$$?; \ if test $$result != 0 ; then \ echo "Expecting test failures: $(EXPECTED_SPARQL_CORRECT_FAILURES)"; \ if test $$result = $$expect ; then \ echo "OK: Ignoring $$result expected test failures"; result=0; \ else \ echo "FAILED: $$result failures does not match expected $$expect"; result=1; \ fails="$$fails $$test"; \ fi; \ fi; \ if test $$result != 0 ; then \ echo "FAILED tests:$$fails"; \ fi; \ set -e; exit $$result