summaryrefslogtreecommitdiffstats
path: root/tests/json/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'tests/json/Makefile.am')
-rw-r--r--tests/json/Makefile.am130
1 files changed, 130 insertions, 0 deletions
diff --git a/tests/json/Makefile.am b/tests/json/Makefile.am
new file mode 100644
index 0000000..ec59cb8
--- /dev/null
+++ b/tests/json/Makefile.am
@@ -0,0 +1,130 @@
+# -*- Mode: Makefile -*-
+#
+# Makefile.am - automake file for Raptor JSON tests
+#
+# Copyright (C) 2010, David Beckett http://purl.org/net/dajobe/
+#
+# 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.
+#
+#
+
+TEST_FILES=\
+example1.json example2.json example3.json example4.json
+
+TEST_OUT_FILES=\
+example1.nt example2.nt example3.nt example4.nt
+
+JSON_BAD_TEST_FILES=bad-00.json bad-01.json bad-02.json bad-03.json \
+bad-04.json bad-05.json bad-06.json bad-07.json bad-08.json bad-09.json \
+bad-10.json bad-11.json bad-12.json bad-13.json
+
+# Used to make N-triples output consistent
+BASE_URI=http://example.librdf.org/
+
+EXTRA_DIST = \
+ CMakeLists.txt \
+ $(TEST_FILES) \
+ $(TEST_OUT_FILES) \
+ $(JSON_BAD_TEST_FILES)
+
+RAPPER = $(top_builddir)/utils/rapper
+
+CLEANFILES = CMakeTests.txt CMakeTmp.txt
+
+build-rapper:
+ @(cd $(top_builddir)/utils ; $(MAKE) rapper$(EXEEXT))
+
+if RAPTOR_PARSER_JSON
+check-local: build-rapper check-json check-bad-json
+else
+check-local:
+endif
+
+if MAINTAINER_MODE
+check_json_deps = $(TEST_FILES)
+endif
+
+check-json: build-rapper $(check_json_deps)
+ @result=0; \
+ $(RECHO) "Testing legal JSON"; \
+ printf 'IF(RAPTOR_PARSER_JSON)\n\n' >>CMakeTests.txt; \
+ for test in $(TEST_FILES); do \
+ name=`basename $$test .json` ; \
+ baseuri=$(BASE_URI)$$test; \
+ $(RECHO) $(RECHO_N) "Checking $$test $(RECHO_C)"; \
+ $(RAPPER) -q -i json -o ntriples $(srcdir)/$$test $$baseuri > $$name.res 2> $$name.err; \
+ status=$$?; \
+ if test $$status != 0 -a $$status != 2 ; then \
+ $(RECHO) FAILED returned status $$status; result=1; \
+ elif cmp $(srcdir)/$$name.nt $$name.res >/dev/null 2>&1; then \
+ if test $$status = 2 ; then \
+ $(RECHO) "ok with warnings"; grep Warning $$name.err; \
+ else \
+ $(RECHO) "ok"; \
+ fi; \
+ else \
+ $(RECHO) "FAILED"; \
+ cat $$name.err; \
+ diff $(srcdir)/$$name.nt $$name.res; result=1; \
+ fi; \
+ rm -f $$name.res $$name.err; \
+ printf '\tRAPPER_TEST(%s\n\t\t"%s"\n\t\t%s\n\t\t%s\n\t)\n\n' \
+ json.$$name \
+ "\$${RAPPER} -q -i json -o ntriples \$${CMAKE_CURRENT_SOURCE_DIR}/$$test $$baseuri" \
+ $$name.res \
+ "\$${CMAKE_CURRENT_SOURCE_DIR}/$$name.nt" >>CMakeTests.txt; \
+ done; \
+ printf 'ENDIF(RAPTOR_PARSER_JSON)\n\n' >>CMakeTests.txt; \
+ exit $$result
+
+if MAINTAINER_MODE
+check_bad_json_deps = $(JSON_BAD_TEST_FILES)
+endif
+
+check-bad-json: build-rapper $(check_bad_json_deps)
+ @set +e; result=0; \
+ $(RECHO) "Testing that bad JSON fails"; \
+ printf 'IF(RAPTOR_PARSER_JSON)\n\n' >>CMakeTests.txt; \
+ for test in $(JSON_BAD_TEST_FILES); do \
+ name=`basename $$test .json` ; \
+ baseuri=$(BASE_URI)$$name.json; \
+ $(RECHO) $(RECHO_N) "Checking $$test $(RECHO_C)"; \
+ $(RAPPER) -q -i json -o ntriples file:$(srcdir)/$$test $$baseuri > $$name.res 2> $$name.err; \
+ status=$$?; \
+ if test $$status -eq 1 ; then \
+ $(RECHO) "ok"; \
+ elif test $$status -eq 2 ; then \
+ $(RECHO) "FAILED - parsing succeeded with a warning"; \
+ cat $$name.res; grep Warning $$name.err; result=1; \
+ elif test $$status -eq 0 ; then \
+ $(RECHO) "FAILED - parsing succeeded but should have failed"; \
+ cat $$name.res; result=1; \
+ else \
+ $(RECHO) "FAILED - parsing failed with unknown status $$status"; \
+ cat $$name.res; result=1; \
+ fi; \
+ rm -f $$name.res $$name.err ; \
+ printf '\tADD_TEST(%s %s) # WILL_FAIL\n' \
+ json.$$name \
+ "\$${RAPPER} -q -i json -o ntriples file:\$${CMAKE_CURRENT_SOURCE_DIR}/$$test $$baseuri" >>CMakeTests.txt; \
+ printf '\t\t%s\n' json.$$name >>CMakeTmp.txt; \
+ done; \
+ (printf '\n\tSET_TESTS_PROPERTIES(\n'; \
+ cat CMakeTmp.txt; \
+ printf '\t\tPROPERTIES\n\t\tWILL_FAIL TRUE\n\t)\n\n'; \
+ printf 'ENDIF(RAPTOR_PARSER_JSON)\n\n') >>CMakeTests.txt; \
+ rm -f CMakeTmp.txt; \
+ set -e; exit $$result
+