summaryrefslogtreecommitdiff
path: root/tests/cxx/tree/complex/ctor
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-12-18 18:48:46 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-02-25 13:45:48 +0300
commit5e527213a2430bb3018e5eebd909aef294edf9b5 (patch)
tree94de33c82080b53d9a9e300170f6d221d89078f4 /tests/cxx/tree/complex/ctor
parent7420f85ea19b0562ffdd8123442f32bc8bac1267 (diff)
Switch to build2
Diffstat (limited to 'tests/cxx/tree/complex/ctor')
-rw-r--r--tests/cxx/tree/complex/ctor/driver.cxx122
-rw-r--r--tests/cxx/tree/complex/ctor/makefile86
-rw-r--r--tests/cxx/tree/complex/ctor/test.xsd182
3 files changed, 0 insertions, 390 deletions
diff --git a/tests/cxx/tree/complex/ctor/driver.cxx b/tests/cxx/tree/complex/ctor/driver.cxx
deleted file mode 100644
index 0d691ac..0000000
--- a/tests/cxx/tree/complex/ctor/driver.cxx
+++ /dev/null
@@ -1,122 +0,0 @@
-// file : tests/cxx/tree/complex/ctor/driver.cxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-// Test generation of varous complex type constructors.
-//
-
-#include <cassert>
-#include <memory>
-
-#include "test.hxx"
-
-#ifdef XSD_CXX11
-# include <utility> // std::move
-# define XSD_MOVE(x) std::move(x)
-#else
-# define XSD_MOVE(x) x
-#endif
-
-using namespace std;
-using namespace test;
-
-int
-main ()
-{
- // Test case A.
- //
- {
- a_base b1;
- a_base b2 ("abc"); // empty ultimate base + required
- a_base b3 ("abc", "foo"); // ultimate base + required
-
- a_derived a1;
- a_derived a2 ("foo", "bar"); // empty ultimate base + required
- a_derived a3 (b3, "bar"); // base + required
- a_derived a4 ("abc", "foo", "bar"); // ultimate base + required
- }
-
- // Test case B.
- //
- {
- b_simple s ("base");
- b_base b ("base", "foo");
- b_derived d ("base", "foo", "bar");
- b_type t ("base");
- }
-
- // Test case C.
- //
- {
- c_simple s (c_enum::a);
- c_base b (c_enum::a, "foo");
- c_derived d (c_enum::a, "foo", "bar");
- c_type t (c_enum::a);
- }
-
- // Test case D.
- //
- {
- d_simple s (1);
- d_base b (1, "foo");
- d_derived d (1, "foo", "bar");
- d_type t (1);
- }
-
- // Test case E.
- //
- {
- // e_base
- //
- e_base b1 (1, "foo", e_complex_type ("bar"));
-
- XSD_AUTO_PTR<e_complex_type> c2 (new e_complex_type ("bar"));
- e_base b2 (1, "foo", XSD_MOVE (c2));
-
- XSD_AUTO_PTR<e_simple_type> s3 (new e_simple_type ("foo"));
- XSD_AUTO_PTR<e_complex_type> c3 (new e_complex_type ("bar"));
- e_base b3 (1, XSD_MOVE (s3), XSD_MOVE (c3));
-
- assert (b1 == b2);
- assert (b1 == b3);
-
- // e_derived
- //
- e_derived d1 (1, "foo", e_complex_type ("bar"),
- true, "baz", e_complex_type ("biz"));
-
- XSD_AUTO_PTR<e_complex_type> c2a (new e_complex_type ("bar"));
- XSD_AUTO_PTR<e_complex_type> c2b (new e_complex_type ("biz"));
- e_derived d2 (1, "foo", XSD_MOVE (c2a), true, "baz", XSD_MOVE (c2b));
-
- XSD_AUTO_PTR<e_simple_type> s3a (new e_simple_type ("foo"));
- XSD_AUTO_PTR<xml_schema::string> s3b (new xml_schema::string ("baz"));
- XSD_AUTO_PTR<e_complex_type> c3a (new e_complex_type ("bar"));
- XSD_AUTO_PTR<e_complex_type> c3b (new e_complex_type ("biz"));
- e_derived d3 (1,
- XSD_MOVE (s3a),
- XSD_MOVE (c3a),
- true,
- XSD_MOVE (s3b),
- XSD_MOVE (c3b));
-
- assert (d1 == d2);
- assert (d1 == d3);
-
- }
-
- // Test case F.
- //
- {
- f_type f1 (xml_schema::type (), 1, "foo", f_complex_type ("bar"));
-
- XSD_AUTO_PTR<f_complex_type> c2 (new f_complex_type ("bar"));
- f_type f2 (1, "foo", XSD_MOVE (c2));
-
- XSD_AUTO_PTR<f_simple_type> s3 (new f_simple_type ("foo"));
- XSD_AUTO_PTR<f_complex_type> c3 (new f_complex_type ("bar"));
- f_type f3 (1, XSD_MOVE (s3), XSD_MOVE (c3));
-
- assert (f1 == f2);
- assert (f1 == f3);
- }
-}
diff --git a/tests/cxx/tree/complex/ctor/makefile b/tests/cxx/tree/complex/ctor/makefile
deleted file mode 100644
index db592ff..0000000
--- a/tests/cxx/tree/complex/ctor/makefile
+++ /dev/null
@@ -1,86 +0,0 @@
-# file : tests/cxx/tree/complex/ctor/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=.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=.hxx) $(xsd:.xsd=.ixx) $(xsd:.xsd=.cxx)
-gen := $(addprefix $(out_base)/,$(genf))
-
-$(gen): xsd := $(out_root)/xsd/xsd
-$(gen): xsd_options += --generate-default-ctor --generate-from-base-ctor \
---generate-doxygen --generate-polymorphic --polymorphic-type-all \
---generate-comparison
-$(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)
- $(call message,test $$1,$$1,$(driver))
-
-# Clean.
-#
-$(clean): $(driver).o.clean \
- $(addsuffix .cxx.clean,$(obj)) \
- $(addsuffix .cxx.clean,$(dep)) \
- $(addprefix $(out_base)/,$(xsd:.xsd=.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/tree/xsd-cxx.make)
-endif
-
-# Dependencies.
-#
-$(call import,$(src_root)/xsd/makefile)
diff --git a/tests/cxx/tree/complex/ctor/test.xsd b/tests/cxx/tree/complex/ctor/test.xsd
deleted file mode 100644
index b8dd95e..0000000
--- a/tests/cxx/tree/complex/ctor/test.xsd
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test">
-
- <!-- Test case A: several levels of inheritance with ultimate base. -->
-
- <complexType name="a_base">
- <simpleContent>
- <extension base="string">
- <attribute name="foo" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="a_derived">
- <simpleContent>
- <extension base="t:a_base">
- <attribute name="bar" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <!-- Test case B: string-based c-tors. -->
-
- <simpleType name="b_simple">
- <restriction base="string">
- </restriction>
- </simpleType>
-
- <complexType name="b_base">
- <simpleContent>
- <extension base="t:b_simple">
- <attribute name="foo" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="b_derived">
- <simpleContent>
- <extension base="t:b_base">
- <attribute name="bar" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="b_type">
- <sequence>
- <element name="a" type="t:b_simple"/>
- </sequence>
- </complexType>
-
- <!-- Test case C: enum-based c-tors. -->
-
- <simpleType name="c_enum_base">
- <restriction base="string">
- <enumeration value="a"/>
- <enumeration value="b"/>
- <enumeration value="c"/>
- </restriction>
- </simpleType>
-
- <simpleType name="c_enum">
- <restriction base="t:c_enum_base">
- <enumeration value="a"/>
- <enumeration value="c"/>
- </restriction>
- </simpleType>
-
- <simpleType name="c_simple">
- <restriction base="t:c_enum">
- </restriction>
- </simpleType>
-
- <complexType name="c_base">
- <simpleContent>
- <extension base="t:c_simple">
- <attribute name="foo" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="c_derived">
- <simpleContent>
- <extension base="t:c_base">
- <attribute name="bar" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="c_type">
- <sequence>
- <element name="a" type="t:c_simple"/>
- </sequence>
- </complexType>
-
- <!-- Test case D: fundamental type c-tors. -->
-
- <simpleType name="d_simple">
- <restriction base="int">
- </restriction>
- </simpleType>
-
- <complexType name="d_base">
- <simpleContent>
- <extension base="t:d_simple">
- <attribute name="foo" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="d_derived">
- <simpleContent>
- <extension base="t:d_base">
- <attribute name="bar" type="string" use="required"/>
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="d_type">
- <sequence>
- <element name="a" type="t:d_simple"/>
- </sequence>
- </complexType>
-
- <!-- Test case E: auto_ptr ctors. -->
-
- <simpleType name="e_simple_type">
- <restriction base="string">
- </restriction>
- </simpleType>
-
- <complexType name="e_complex_type">
- <sequence>
- <element name="a" type="string"/>
- </sequence>
- </complexType>
-
- <complexType name="e_base">
- <sequence>
- <element name="fund" type="int"/>
- <element name="simple" type="t:e_simple_type"/>
- <element name="complex" type="t:e_complex_type"/>
- </sequence>
- </complexType>
-
- <complexType name="e_derived">
- <complexContent>
- <extension base="t:e_base">
- <sequence>
- <element name="fund1" type="boolean"/>
- <element name="simple1" type="string"/>
- <element name="complex1" type="t:e_complex_type"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Test case F: auto_ptr args in c-tor (all-non-optional-members) -->
-
- <simpleType name="f_simple_type">
- <restriction base="string">
- </restriction>
- </simpleType>
-
- <complexType name="f_complex_type">
- <sequence>
- <element name="a" type="string"/>
- </sequence>
- </complexType>
-
- <complexType name="f_type">
- <complexContent>
- <restriction base="anyType">
- <sequence>
- <element name="fund" type="int"/>
- <element name="simple" type="t:f_simple_type"/>
- <element name="complex" type="t:f_complex_type"/>
- </sequence>
- </restriction>
- </complexContent>
- </complexType>
-
-</schema>