summaryrefslogtreecommitdiff
path: root/tests/cxx/parser/polymorphism
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cxx/parser/polymorphism')
-rw-r--r--tests/cxx/parser/polymorphism/makefile16
-rw-r--r--tests/cxx/parser/polymorphism/recursive/driver.cxx68
-rw-r--r--tests/cxx/parser/polymorphism/recursive/makefile83
-rw-r--r--tests/cxx/parser/polymorphism/recursive/output22
-rw-r--r--tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx147
-rw-r--r--tests/cxx/parser/polymorphism/recursive/test-pimpl.hxx94
-rw-r--r--tests/cxx/parser/polymorphism/recursive/test.xml15
-rw-r--r--tests/cxx/parser/polymorphism/recursive/test.xsd53
-rw-r--r--tests/cxx/parser/polymorphism/same-type/driver.cxx62
-rw-r--r--tests/cxx/parser/polymorphism/same-type/makefile83
-rw-r--r--tests/cxx/parser/polymorphism/same-type/output4
-rw-r--r--tests/cxx/parser/polymorphism/same-type/test.xml10
-rw-r--r--tests/cxx/parser/polymorphism/same-type/test.xsd21
13 files changed, 0 insertions, 678 deletions
diff --git a/tests/cxx/parser/polymorphism/makefile b/tests/cxx/parser/polymorphism/makefile
deleted file mode 100644
index 252d857..0000000
--- a/tests/cxx/parser/polymorphism/makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# file : tests/cxx/parser/polymorphism/makefile
-# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-
-tests := same-type recursive
-
-default := $(out_base)/
-test := $(out_base)/.test
-clean := $(out_base)/.clean
-
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
-
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
diff --git a/tests/cxx/parser/polymorphism/recursive/driver.cxx b/tests/cxx/parser/polymorphism/recursive/driver.cxx
deleted file mode 100644
index 4a401bd..0000000
--- a/tests/cxx/parser/polymorphism/recursive/driver.cxx
+++ /dev/null
@@ -1,68 +0,0 @@
-// file : tests/cxx/parser/polymorphism/recursive/driver.cxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-// Test polymorphic recursive parsing.
-//
-
-#include <string>
-#include <iostream>
-
-#include "test-pskel.hxx"
-#include "test-pimpl.hxx"
-
-using namespace std;
-using namespace test;
-
-int
-main (int argc, char* argv[])
-{
- if (argc != 2)
- {
- cerr << "usage: " << argv[0] << " test.xml" << endl;
- return 1;
- }
-
- try
- {
- xml_schema::int_pimpl int_p;
-
- root_pimpl root_p;
- expression_pimpl expression_p;
- recursive_pimpl recursive_p;
- value_a_pimpl value_a_p;
- value_b_pimpl value_b_p;
-
- xml_schema::parser_map_impl expression_map;
-
- // Connect the parsers together.
- //
- root_p.parsers (expression_p);
- expression_map.insert(value_a_p);
- expression_map.insert(value_b_p);
- expression_map.insert(recursive_p);
-
- root_p.expression_parser(expression_map);
-
- recursive_p.parsers(expression_p);
- recursive_p.expression_parser(expression_map);
-
- value_a_p.parsers(int_p);
- value_b_p.parsers(int_p);
-
- xml_schema::document doc_p (root_p, "test", "root", true);
-
- root_p.pre ();
- doc_p.parse (argv[1]);
- root_p.post_root ();
- }
- catch (xml_schema::exception const& e)
- {
- cerr << e << endl;
- return 1;
- }
- catch (std::ios_base::failure const&)
- {
- cerr << "io failure" << endl;
- return 1;
- }
-}
diff --git a/tests/cxx/parser/polymorphism/recursive/makefile b/tests/cxx/parser/polymorphism/recursive/makefile
deleted file mode 100644
index 855d471..0000000
--- a/tests/cxx/parser/polymorphism/recursive/makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-# file : tests/cxx/parser/polymorphism/recursive/makefile
-# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../../../../build/bootstrap.make
-
-xsd := test.xsd
-cxx := driver.cxx test-pimpl.cxx
-
-obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-pskel.o))
-dep := $(obj:.o=.o.d)
-
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
-
-# Import.
-#
-$(call import,\
- $(scf_root)/import/libxerces-c/stub.make,\
- l: xerces_c.l,cpp-options: xerces_c.l.cpp-options)
-
-# Build.
-#
-$(driver): $(obj) $(xerces_c.l)
-
-$(obj) $(dep): cpp_options := -I$(out_base) -I$(src_base) -I$(src_root)/libxsd
-$(obj) $(dep): $(xerces_c.l.cpp-options)
-
-genf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx)
-gen := $(addprefix $(out_base)/,$(genf))
-
-$(gen): xsd := $(out_root)/xsd/xsd
-$(gen): xsd_options += --generate-polymorphic
-$(gen): $(out_root)/xsd/xsd
-
-$(call include-dep,$(dep),$(obj),$(gen))
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(driver)
-
-
-# Test.
-#
-$(test): driver := $(driver)
-$(test): $(driver) $(src_base)/test.xml $(src_base)/output
- $(call message,test $$1,$$1 $(src_base)/test.xml | diff -u $(src_base)/output -,$(driver))
-
-# Clean.
-#
-$(clean): $(driver).o.clean \
- $(addsuffix .cxx.clean,$(obj)) \
- $(addsuffix .cxx.clean,$(dep)) \
- $(addprefix $(out_base)/,$(xsd:.xsd=-pskel.cxx.xsd.clean))
-
-# Generated .gitignore.
-#
-ifeq ($(out_base),$(src_base))
-$(gen): | $(out_base)/.gitignore
-$(driver): | $(out_base)/.gitignore
-
-$(out_base)/.gitignore: files := driver $(genf)
-$(clean): $(out_base)/.gitignore.clean
-
-$(call include,$(bld_root)/git/gitignore.make)
-endif
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-e.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
-
-$(call include,$(bld_root)/cxx/standard.make) # cxx_standard
-ifdef cxx_standard
-$(gen): xsd_options += --std $(cxx_standard)
-$(call include,$(scf_root)/xsd/parser/xsd-cxx.make)
-endif
-
-
-# Dependencies.
-#
-$(call import,$(src_root)/xsd/makefile)
diff --git a/tests/cxx/parser/polymorphism/recursive/output b/tests/cxx/parser/polymorphism/recursive/output
deleted file mode 100644
index 28a835f..0000000
--- a/tests/cxx/parser/polymorphism/recursive/output
+++ /dev/null
@@ -1,22 +0,0 @@
-root start
-recursive start
-value_a begin
-value->constant
-value: post_expression override
-value_a: post_value override
-value_a end
-recursive->expression event
-recursive start
-value_b begin
-value->constant
-value: post_expression override
-value_b: post_value override
-value_b end
-recursive->expression event
-recursive: post_expression override
-recursive end
-recursive->expression event
-recursive: post_expression override
-recursive end
-root->expression
-root end
diff --git a/tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx b/tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx
deleted file mode 100644
index 8c355ea..0000000
--- a/tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx
+++ /dev/null
@@ -1,147 +0,0 @@
-// file : tests/cxx/parser/polymorphism/recursive/test-pimpl.cxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <iostream>
-
-#include "test-pimpl.hxx"
-
-using namespace std;
-
-namespace test
-{
- // root_pimpl
- //
-
- void root_pimpl::
- pre ()
- {
- cout << "root start" << endl;
- }
-
- void root_pimpl::
- expression ()
- {
- cout << "root->expression" << endl;
- }
-
- void root_pimpl::
- post_root ()
- {
- cout << "root end" << endl;
- }
-
- // expression_pimpl
- //
-
- void expression_pimpl::
- pre ()
- {
- cout << "expression begin" << endl;
- }
-
- void expression_pimpl::
- post_expression ()
- {
- cout << "expression end" << endl;
- }
-
- // recursive_pimpl
- //
-
- void recursive_pimpl::
- pre ()
- {
- cout << "recursive start" << endl;
- }
-
- void recursive_pimpl::
- expression ()
- {
- cout << "recursive->expression event" << endl;
- }
-
- void recursive_pimpl::
- post_expression ()
- {
- cout << "recursive: post_expression override" << endl;
- post_recursive ();
- }
-
- void recursive_pimpl::
- post_recursive ()
- {
- cout << "recursive end" << endl;
- }
-
- // value_pimpl
- //
-
- void value_pimpl::
- pre ()
- {
- cout << "value begin" << endl;
- }
-
- void value_pimpl::
- constant (int)
- {
- cout << "value->constant" << endl;
- }
-
- void value_pimpl::
- post_expression ()
- {
- cout << "value: post_expression override" << endl;
- post_value ();
- }
-
- void value_pimpl::
- post_value ()
- {
- cout << "value end" << endl;
- }
-
- // value_a_pimpl
- //
-
- void value_a_pimpl::
- pre ()
- {
- cout << "value_a begin" << endl;
- }
-
- void value_a_pimpl::
- post_value ()
- {
- cout << "value_a: post_value override" << endl;
- post_value_a ();
- }
-
- void value_a_pimpl::
- post_value_a ()
- {
- cout << "value_a end" << endl;
- }
-
- // value_b_pimpl
- //
-
- void value_b_pimpl::
- pre ()
- {
- cout << "value_b begin" << endl;
- }
-
- void value_b_pimpl::
- post_value ()
- {
- cout << "value_b: post_value override" << endl;
- post_value_b ();
- }
-
- void value_b_pimpl::
- post_value_b ()
- {
- cout << "value_b end" << endl;
- }
-}
diff --git a/tests/cxx/parser/polymorphism/recursive/test-pimpl.hxx b/tests/cxx/parser/polymorphism/recursive/test-pimpl.hxx
deleted file mode 100644
index 932be9e..0000000
--- a/tests/cxx/parser/polymorphism/recursive/test-pimpl.hxx
+++ /dev/null
@@ -1,94 +0,0 @@
-// file : tests/cxx/parser/polymorphism/recursive/test-pimpl.hxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef TEST_PIMPL_HXX
-#define TEST_PIMPL_HXX
-
-#include "test-pskel.hxx"
-
-namespace test
-{
- class root_pimpl: public virtual root_pskel
- {
- public:
- virtual void
- pre ();
-
- virtual void
- expression ();
-
- virtual void
- post_root ();
- };
-
- class expression_pimpl: public virtual expression_pskel
- {
- public:
- virtual void
- pre ();
-
- virtual void
- post_expression ();
- };
-
- class recursive_pimpl: public virtual recursive_pskel,
- public expression_pimpl
- {
- public:
- virtual void
- pre ();
-
- virtual void
- expression ();
-
- virtual void
- post_expression ();
-
- virtual void
- post_recursive ();
- };
-
- class value_pimpl: public virtual value_pskel, public expression_pimpl
- {
- public:
- virtual void
- pre ();
-
- virtual void
- constant (int);
-
- virtual void
- post_expression ();
-
- virtual void
- post_value ();
- };
-
- class value_a_pimpl: public virtual value_a_pskel, public value_pimpl
- {
- public:
- virtual void
- pre ();
-
- virtual void
- post_value ();
-
- virtual void
- post_value_a ();
- };
-
- class value_b_pimpl: public virtual value_b_pskel, public value_pimpl
- {
- public:
- virtual void
- pre ();
-
- virtual void
- post_value ();
-
- virtual void
- post_value_b ();
- };
-}
-
-#endif // TEST_PIMPL_HXX
diff --git a/tests/cxx/parser/polymorphism/recursive/test.xml b/tests/cxx/parser/polymorphism/recursive/test.xml
deleted file mode 100644
index 42035ba..0000000
--- a/tests/cxx/parser/polymorphism/recursive/test.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root xmlns="test"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="test test.xsd">
- <recursive>
- <value-a>
- <constant>1</constant>
- </value-a>
- <recursive>
- <value-b>
- <constant>2</constant>
- </value-b>
- </recursive>
- </recursive>
-</root>
diff --git a/tests/cxx/parser/polymorphism/recursive/test.xsd b/tests/cxx/parser/polymorphism/recursive/test.xsd
deleted file mode 100644
index affcc8a..0000000
--- a/tests/cxx/parser/polymorphism/recursive/test.xsd
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:t="test"
- targetNamespace="test"
- elementFormDefault="qualified">
-
- <element name="root" type="t:root"/>
- <complexType name="root">
- <sequence>
- <element ref="t:expression" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- </complexType>
-
- <element name="expression" type="t:expression" abstract="true"/>
- <complexType name="expression" abstract="true"/>
-
- <element name="recursive" type="t:recursive" substitutionGroup="t:expression"/>
- <complexType name="recursive">
- <complexContent>
- <extension base="t:expression">
- <sequence minOccurs="0" maxOccurs="unbounded">
- <element ref="t:expression"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <element name="value" type="t:value" abstract="true" substitutionGroup="t:expression"/>
- <complexType name="value" abstract="true">
- <complexContent>
- <extension base="t:expression">
- <sequence>
- <element name="constant" type="int"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <element name="value-a" type="t:value-a" substitutionGroup="t:expression"/>
- <complexType name="value-a">
- <complexContent>
- <extension base="t:value"/>
- </complexContent>
- </complexType>
-
- <element name="value-b" type="t:value-b" substitutionGroup="t:expression"/>
- <complexType name="value-b">
- <complexContent>
- <extension base="t:value"/>
- </complexContent>
- </complexType>
-
-</schema>
diff --git a/tests/cxx/parser/polymorphism/same-type/driver.cxx b/tests/cxx/parser/polymorphism/same-type/driver.cxx
deleted file mode 100644
index 4ccaec5..0000000
--- a/tests/cxx/parser/polymorphism/same-type/driver.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-// file : tests/cxx/parser/polymorphism/same-type/driver.cxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-// Test substitution group and xsi:type that don't change the type.
-//
-
-#include <string>
-#include <iostream>
-
-#include "test-pskel.hxx"
-
-using namespace std;
-using namespace test;
-
-struct base_pimpl: base_pskel
-{
- virtual void
- a (string const& v)
- {
- cout << v << endl;
- }
-};
-
-struct type_pimpl: type_pskel
-{
-};
-
-int
-main (int argc, char* argv[])
-{
- if (argc != 2)
- {
- cerr << "usage: " << argv[0] << " test.xml" << endl;
- return 1;
- }
-
- try
- {
- xml_schema::string_pimpl string_p;
- base_pimpl base_p;
- type_pimpl type_p;
-
- base_p.parsers (string_p);
- type_p.parsers (base_p);
-
- xml_schema::document doc_p (type_p, "test", "root", true);
-
- type_p.pre ();
- doc_p.parse (argv[1]);
- type_p.post_type ();
- }
- catch (xml_schema::exception const& e)
- {
- cerr << e << endl;
- return 1;
- }
- catch (std::ios_base::failure const&)
- {
- cerr << "io failure" << endl;
- return 1;
- }
-}
diff --git a/tests/cxx/parser/polymorphism/same-type/makefile b/tests/cxx/parser/polymorphism/same-type/makefile
deleted file mode 100644
index 588d8b6..0000000
--- a/tests/cxx/parser/polymorphism/same-type/makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-# file : tests/cxx/parser/polymorphism/same-type/makefile
-# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../../../../build/bootstrap.make
-
-xsd := test.xsd
-cxx := driver.cxx
-
-obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-pskel.o))
-dep := $(obj:.o=.o.d)
-
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
-
-# Import.
-#
-$(call import,\
- $(scf_root)/import/libxerces-c/stub.make,\
- l: xerces_c.l,cpp-options: xerces_c.l.cpp-options)
-
-# Build.
-#
-$(driver): $(obj) $(xerces_c.l)
-
-$(obj) $(dep): cpp_options := -I$(out_base) -I$(src_base) -I$(src_root)/libxsd
-$(obj) $(dep): $(xerces_c.l.cpp-options)
-
-genf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx)
-gen := $(addprefix $(out_base)/,$(genf))
-
-$(gen): xsd := $(out_root)/xsd/xsd
-$(gen): xsd_options += --generate-polymorphic
-$(gen): $(out_root)/xsd/xsd
-
-$(call include-dep,$(dep),$(obj),$(gen))
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(driver)
-
-
-# Test.
-#
-$(test): driver := $(driver)
-$(test): $(driver) $(src_base)/test.xml $(src_base)/output
- $(call message,test $$1,$$1 $(src_base)/test.xml | diff -u $(src_base)/output -,$(driver))
-
-# Clean.
-#
-$(clean): $(driver).o.clean \
- $(addsuffix .cxx.clean,$(obj)) \
- $(addsuffix .cxx.clean,$(dep)) \
- $(addprefix $(out_base)/,$(xsd:.xsd=-pskel.cxx.xsd.clean))
-
-# Generated .gitignore.
-#
-ifeq ($(out_base),$(src_base))
-$(gen): | $(out_base)/.gitignore
-$(driver): | $(out_base)/.gitignore
-
-$(out_base)/.gitignore: files := driver $(genf)
-$(clean): $(out_base)/.gitignore.clean
-
-$(call include,$(bld_root)/git/gitignore.make)
-endif
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-e.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
-
-$(call include,$(bld_root)/cxx/standard.make) # cxx_standard
-ifdef cxx_standard
-$(gen): xsd_options += --std $(cxx_standard)
-$(call include,$(scf_root)/xsd/parser/xsd-cxx.make)
-endif
-
-
-# Dependencies.
-#
-$(call import,$(src_root)/xsd/makefile)
diff --git a/tests/cxx/parser/polymorphism/same-type/output b/tests/cxx/parser/polymorphism/same-type/output
deleted file mode 100644
index d418277..0000000
--- a/tests/cxx/parser/polymorphism/same-type/output
+++ /dev/null
@@ -1,4 +0,0 @@
-a1
-a2
-a3
-a4
diff --git a/tests/cxx/parser/polymorphism/same-type/test.xml b/tests/cxx/parser/polymorphism/same-type/test.xml
deleted file mode 100644
index f8b6d1e..0000000
--- a/tests/cxx/parser/polymorphism/same-type/test.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<t:root xmlns:t="test"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="test test.xsd">
-
- <t:base><a>a1</a></t:base>
- <t:derived><a>a2</a></t:derived>
- <t:base xsi:type="t:base"><a>a3</a></t:base>
- <t:derived xsi:type="t:base"><a>a4</a></t:derived>
-
-</t:root>
diff --git a/tests/cxx/parser/polymorphism/same-type/test.xsd b/tests/cxx/parser/polymorphism/same-type/test.xsd
deleted file mode 100644
index a4157d3..0000000
--- a/tests/cxx/parser/polymorphism/same-type/test.xsd
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test">
-
- <complexType name="base">
- <sequence>
- <element name="a" type="string"/>
- </sequence>
- </complexType>
-
- <element name="base" type="t:base"/>
- <element name="derived" type="t:base" substitutionGroup="t:base"/>
-
- <complexType name="type">
- <sequence>
- <element ref="t:base" maxOccurs="unbounded"/>
- </sequence>
- </complexType>
-
- <element name="root" type="t:type"/>
-
-</schema>