Add a basic 'make test' root Makefile target.
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 Nov 2007 16:18:20 +0000 (16:18 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 Nov 2007 16:18:20 +0000 (16:18 +0000)
The initial test suite validates the example XML files where a schema is available
or checks files for well-formedness where a schema is not available.

git-svn-id: svn://svn.open-ils.org/ILS/trunk@8061 dcc99617-32d9-48b4-a31d-7c20da2025e4

Makefile
Open-ILS/examples/Makefile [new file with mode: 0644]
install.sh

index 2996d44..57c2c84 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,5 @@
 #!/bin/bash
+# vim:noet:ts=4
 # --------------------------------------------------------------------
 # Copyright (C) 2005  Georgia Public Library Service 
 # Bill Erickson <highfalutin@gmail.com>
@@ -39,3 +40,5 @@ install:
 clean:
        @./install.sh clean
        
+test:
+       @./install.sh test
diff --git a/Open-ILS/examples/Makefile b/Open-ILS/examples/Makefile
new file mode 100644 (file)
index 0000000..607184b
--- /dev/null
@@ -0,0 +1,48 @@
+# vim:noet:ts=4
+#
+# This is a simple implementation of a test suite for XML validity
+# (where possible) or well-formedness (if no schema is available)
+# to ensure that our sample XML configuration files are reasonably
+# clean.
+
+TESTIDL := $(shell xmllint --noout --schema fm_IDL.xsd fm_IDL.xml 2>&1 | wc -l)
+TESTOSRF := $(shell xmllint --noout opensrf.xml 2>&1 | wc -l)
+TESTOSRFCORE := $(shell xmllint --noout opensrf_core.xml 2>&1 | wc -l)
+
+test_idl:
+TOTAL := $(TOTAL).
+ifeq ($(TESTIDL), 1)
+SUCCESS := $(SUCCESS).
+else
+$(warning fm_IDL.xml does not validate)
+endif
+
+test_osrf:
+TOTAL := $(TOTAL).
+ifeq ($(TESTOSRF), 1)
+SUCCESS := $(SUCCESS).
+else
+$(warning opensrf.xml is not well-formed)
+endif
+
+test_osrf_core:
+TOTAL := $(TOTAL).
+ifeq ($(TESTOSRFCORE), 1)
+SUCCESS := $(SUCCESS).
+else
+$(warning opensrf_core.xml is not well-formed)
+endif
+
+test: test_idl test_osrf test_osrf_core
+# First we count the number of characters returned
+SUCCESSES ?= $(shell echo $(SUCCESS) | wc -m )
+FAILED ?= $(shell echo $(FAILURE) | wc -m )
+TOTALED ?= $(shell echo $(TOTAL) | wc -m )
+# Then we subtract one from the count to make it accurate
+SUCCESSTESTS ?= $(shell echo $(SUCCESSES) - 1 | bc )
+FAILEDTESTS ?= $(shell echo $(FAILED) -1 | bc )
+TOTALTESTS ?= $(shell echo $(TOTALED) -1 | bc )
+$(info Succesful tests: $(SUCCESSTESTS)/$(TOTALTESTS))
+$(info Failed tests: $(FAILEDTESTS)/$(TOTALTESTS))
+
+
index 290496a..8b57a24 100755 (executable)
@@ -1,4 +1,5 @@
 #!/bin/bash
+# vim:noet:ts=4
 # --------------------------------------------------------------------
 # Copyright (C) 2005  Georgia Public Library Service 
 # Bill Erickson <highfalutin@gmail.com>
@@ -82,6 +83,10 @@ function building {
        return 0;
 }
 
+function testing {
+       if [ -z "$TESTING" ]; then return 1; fi;
+       return 0;
+}
 
 
 # --------------------------------------------------------------------
@@ -129,6 +134,7 @@ function runInstall {
 
                        "openils_all" )
                                if building;    then $MAKE -C "$OPENILSDIR" all; fi;
+                               if testing;             then $MAKE -C "$OPENILSDIR/../examples" test; fi;
                                if installing; then $MAKE -C "$OPENILSDIR" install; fi;
                                ;;
 
@@ -212,6 +218,7 @@ function runInstall {
 # clean - cleans all build files
 # build - builds the specified sources
 # install - installs the specified sources
+# test - tests the specified sources
 # --------------------------------------------------------------------
 function checkParams {
 
@@ -235,6 +242,9 @@ function checkParams {
                        "verbose")
                                verbose="";;
 
+                       "test")
+                               TESTING="1";;
+
                        *) fail "Unknown option => $arg";
                esac
        done
@@ -257,6 +267,7 @@ function usage {
 checkParams "$@";
 
 if building; then echo "Building..."; fi;
+if testing; then echo "Testing..."; fi;
 if installing; then echo "Installing..."; fi;
 
 
@@ -267,5 +278,3 @@ loadConfig;
 mkInstallDirs;
 runInstall;
 
-
-