From c8c60d865a62ff8450b9c907fb1c4cab727130c5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 16 Oct 2009 17:49:34 +0200 Subject: Rework to use the uniform test interface --- tests/cxx/parser/reset/driver.cxx | 72 +++++++++++++++++++++++++++------- tests/cxx/parser/reset/fail-schema.xml | 8 ---- tests/cxx/parser/reset/fail-xml.xml | 7 ---- tests/cxx/parser/reset/makefile | 19 +++++---- tests/cxx/parser/reset/pass.xml | 7 ---- tests/cxx/parser/reset/test-000.std | 6 +++ tests/cxx/parser/reset/test-000.xml | 7 ++++ tests/cxx/parser/reset/test-001.std | 1 + tests/cxx/parser/reset/test-001.xml | 7 ++++ tests/cxx/parser/reset/test-002.std | 1 + tests/cxx/parser/reset/test-002.xml | 8 ++++ tests/cxx/parser/reset/test.std | 8 ---- 12 files changed, 99 insertions(+), 52 deletions(-) delete mode 100644 tests/cxx/parser/reset/fail-schema.xml delete mode 100644 tests/cxx/parser/reset/fail-xml.xml delete mode 100644 tests/cxx/parser/reset/pass.xml create mode 100644 tests/cxx/parser/reset/test-000.std create mode 100644 tests/cxx/parser/reset/test-000.xml create mode 100644 tests/cxx/parser/reset/test-001.std create mode 100644 tests/cxx/parser/reset/test-001.xml create mode 100644 tests/cxx/parser/reset/test-002.std create mode 100644 tests/cxx/parser/reset/test-002.xml delete mode 100644 tests/cxx/parser/reset/test.std (limited to 'tests/cxx/parser') diff --git a/tests/cxx/parser/reset/driver.cxx b/tests/cxx/parser/reset/driver.cxx index 5701df5..149c3da 100644 --- a/tests/cxx/parser/reset/driver.cxx +++ b/tests/cxx/parser/reset/driver.cxx @@ -7,8 +7,10 @@ // #include +#include // strlen #include +#include #include #include "test-pskel.hxx" @@ -16,6 +18,10 @@ using namespace std; using namespace test; +// Same as test-000.xml +// +const char* pass = "1"; + bool fail = true; struct error {}; @@ -156,20 +162,46 @@ private: int main (int argc, char* argv[]) { - if (argc != 4) + if (argc != 2) { - cerr << "usage: " << argv[0] << " pass.xml fail-xml.xml fail-schema.xml" - << endl; + cerr << "usage: " << argv[0] << " test.xml" << endl; return 1; } - const char* pass = argv[1]; - const char* fail_xml = argv[2]; - const char* fail_schema = argv[3]; + // Set the range depending on which test we are running. + // + unsigned long start, end; + + switch (argv[1][strlen (argv[1]) - 5]) + { + case '0': + { + start = 0; + end = 6; + break; + } + case '1': + { + start = 6; + end = 7; + break; + } + case '2': + { + start = 7; + end = 8; + break; + } + default: + { + cerr << "unsupported test" << endl; + return 1; + } + } try { - for (unsigned long i (0); i < 8; ++i) + for (unsigned long i = start; i < end; ++i) { #ifndef XSDE_PARSER_VALIDATION if (i == 7) @@ -199,17 +231,23 @@ main (int argc, char* argv[]) { case 6: { - doc_p.parse (fail_xml); + // Fail XML. + // + doc_p.parse (argv[1]); break; } case 7: { - doc_p.parse (fail_schema); + // Fail Schema. + // + doc_p.parse (argv[1]); break; } default: { - doc_p.parse (pass); + // Pass. + // + doc_p.parse (argv[1]); break; } } @@ -227,8 +265,10 @@ main (int argc, char* argv[]) fail = false; doc_p.reset (); + istringstream is (pass); + type_p.pre (); - doc_p.parse (pass); + doc_p.parse (is); type_p.post_type (); #else do @@ -244,17 +284,17 @@ main (int argc, char* argv[]) { case 6: { - doc_p.parse (fail_xml); + doc_p.parse (argv[1]); break; } case 7: { - doc_p.parse (fail_schema); + doc_p.parse (argv[1]); break; } default: { - doc_p.parse (pass); + doc_p.parse (argv[1]); break; } } @@ -274,10 +314,12 @@ main (int argc, char* argv[]) fail = false; doc_p.reset (); + istringstream is (pass); + type_p.pre (); assert (!type_p._error ()); - doc_p.parse (pass); + doc_p.parse (is); assert (!doc_p._error ()); type_p.post_type (); diff --git a/tests/cxx/parser/reset/fail-schema.xml b/tests/cxx/parser/reset/fail-schema.xml deleted file mode 100644 index 92c6c8b..0000000 --- a/tests/cxx/parser/reset/fail-schema.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - 1 - 1 - - diff --git a/tests/cxx/parser/reset/fail-xml.xml b/tests/cxx/parser/reset/fail-xml.xml deleted file mode 100644 index b2aacb2..0000000 --- a/tests/cxx/parser/reset/fail-xml.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - 1 - - diff --git a/tests/cxx/parser/reset/makefile b/tests/cxx/parser/reset/makefile index c1d683c..a89ff92 100644 --- a/tests/cxx/parser/reset/makefile +++ b/tests/cxx/parser/reset/makefile @@ -8,6 +8,8 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make xsd := test.xsd cxx := driver.cxx +tests := 000 001 002 + obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-pskel.o)) dep := $(obj:.o=.o.d) @@ -38,14 +40,17 @@ $(call include-dep,$(dep)) $(out_base)/: $(driver) -# Test. +# Test. 000 - pass, 001 - fail xml, 002 - fail schema. # -$(test): driver := $(driver) -$(test): $(driver) $(src_base)/pass.xml $(src_base)/fail-xml.xml \ - $(src_base)/fail-schema.xml $(src_base)/test.std - $(call message,test $$1,$$1 $(src_base)/pass.xml \ -$(src_base)/fail-xml.xml $(src_base)/fail-schema.xml \ -| diff -u $(src_base)/test.std -,$(driver)) +test_targets := $(addprefix $(out_base)/.test-,$(tests)) + +$(test): $(test_targets) +$(test_targets): driver := $(driver) + +.PHONY: $(out_base)/.test-% +$(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src_base)/test-%.std + $(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -) + # Clean. # diff --git a/tests/cxx/parser/reset/pass.xml b/tests/cxx/parser/reset/pass.xml deleted file mode 100644 index 956ec2a..0000000 --- a/tests/cxx/parser/reset/pass.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - 1 - - diff --git a/tests/cxx/parser/reset/test-000.std b/tests/cxx/parser/reset/test-000.std new file mode 100644 index 0000000..3bec760 --- /dev/null +++ b/tests/cxx/parser/reset/test-000.std @@ -0,0 +1,6 @@ +0: 1 +1: 1 +2: 1 +3: 1 +4: 1 +5: 1 diff --git a/tests/cxx/parser/reset/test-000.xml b/tests/cxx/parser/reset/test-000.xml new file mode 100644 index 0000000..956ec2a --- /dev/null +++ b/tests/cxx/parser/reset/test-000.xml @@ -0,0 +1,7 @@ + + + 1 + + diff --git a/tests/cxx/parser/reset/test-001.std b/tests/cxx/parser/reset/test-001.std new file mode 100644 index 0000000..ec1fd5e --- /dev/null +++ b/tests/cxx/parser/reset/test-001.std @@ -0,0 +1 @@ +6: 1 diff --git a/tests/cxx/parser/reset/test-001.xml b/tests/cxx/parser/reset/test-001.xml new file mode 100644 index 0000000..b2aacb2 --- /dev/null +++ b/tests/cxx/parser/reset/test-001.xml @@ -0,0 +1,7 @@ + + + 1 + + diff --git a/tests/cxx/parser/reset/test-002.std b/tests/cxx/parser/reset/test-002.std new file mode 100644 index 0000000..0c14e7d --- /dev/null +++ b/tests/cxx/parser/reset/test-002.std @@ -0,0 +1 @@ +7: 1 diff --git a/tests/cxx/parser/reset/test-002.xml b/tests/cxx/parser/reset/test-002.xml new file mode 100644 index 0000000..92c6c8b --- /dev/null +++ b/tests/cxx/parser/reset/test-002.xml @@ -0,0 +1,8 @@ + + + 1 + 1 + + diff --git a/tests/cxx/parser/reset/test.std b/tests/cxx/parser/reset/test.std deleted file mode 100644 index 0e6cb1e..0000000 --- a/tests/cxx/parser/reset/test.std +++ /dev/null @@ -1,8 +0,0 @@ -0: 1 -1: 1 -2: 1 -3: 1 -4: 1 -5: 1 -6: 1 -7: 1 -- cgit v1.1