summaryrefslogtreecommitdiff
path: root/tests/cxx/tree/detach
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cxx/tree/detach')
-rw-r--r--tests/cxx/tree/detach/driver.cxx108
-rw-r--r--tests/cxx/tree/detach/makefile85
-rw-r--r--tests/cxx/tree/detach/test.xsd32
3 files changed, 0 insertions, 225 deletions
diff --git a/tests/cxx/tree/detach/driver.cxx b/tests/cxx/tree/detach/driver.cxx
deleted file mode 100644
index d1a8f6f..0000000
--- a/tests/cxx/tree/detach/driver.cxx
+++ /dev/null
@@ -1,108 +0,0 @@
-// file : tests/cxx/tree/detach/driver.cxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-// Test the detach functionality.
-//
-
-#include <memory> // std::auto_ptr/unique_ptr
-#include <cassert>
-
-#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 ()
-{
- using test::ref;
-
- // Construct the model.
- //
- object o1 ("o1");
- o1.data ().push_back ("1-1");
- o1.data ().push_back ("1-2");
- o1.data ().push_back ("1-3");
-
- object o2 ("o2");
- o1.data ().push_back ("2-1");
- o1.data ().push_back ("2-2");
- o1.data ().push_back ("2-3");
-
- object o3 ("o3");
- o1.data ().push_back ("3-1");
- o1.data ().push_back ("3-2");
- o1.data ().push_back ("3-3");
-
- object o4 ("o4");
- o1.data ().push_back ("4-1");
- o1.data ().push_back ("4-2");
- o1.data ().push_back ("4-3");
-
- subtree s1;
- s1.o ().push_back (o1);
- s1.o ().push_back (o2);
- s1.r ().push_back (ref ("o2"));
- s1.r ().push_back (ref ("o3"));
-
- subtree s2;
- s2.o ().push_back (o3);
- s2.o ().push_back (o4);
- s2.r ().push_back (ref ("o4"));
- s2.r ().push_back (ref ("o1"));
-
- model m;
- m.one (s1);
- m.opt (s2);
-
- // Detach one.
- //
- XSD_AUTO_PTR<subtree> p (m.detach_one ());
- assert (p->_container () == 0);
- assert (p->r ()[0].get () == &p->o ()[1]);
- assert (m.opt ()->r ()[1].get () == 0);
-
- m.one (XSD_MOVE (p));
- assert (m.opt ()->r ()[1].get () == &m.one ().o ()[0]);
- p = m.detach_one ();
-
- model m1;
- m1.one (XSD_MOVE (p));
- m1.opt (s2);
- assert (m1.opt ()->r ()[1].get () == &m1.one ().o ()[0]);
-
- p = m1.detach_one ();
- m.seq ().push_back (XSD_MOVE (p));
-
- // Detach opt.
- //
- p = m.opt ().detach ();
- assert (!m.opt ());
- assert (p->_container () == 0);
- assert (p->r ()[0].get () == &p->o ()[1]);
- assert (m.seq ()[0].r ()[1].get () == 0);
-
- m.seq ().push_back (XSD_MOVE (p));
-
- // Detach seq.
- //
- p = m.seq ().detach_back ();
- assert (p->_container () == 0);
- assert (p->r ()[0].get () == &p->o ()[1]);
- assert (m.seq ()[0].r ()[1].get () == 0);
-
- m.seq ().push_back (XSD_MOVE (p));
- assert (m.seq ()[0].r ()[1].get () == &m.seq ()[1].o ()[0]);
-
- m.seq ().detach (m.seq ().begin (), p);
- assert (p->_container () == 0);
- assert (p->r ()[0].get () == &p->o ()[1]);
- assert (m.seq ()[0].r ()[1].get () == 0);
-}
diff --git a/tests/cxx/tree/detach/makefile b/tests/cxx/tree/detach/makefile
deleted file mode 100644
index 56c59fa..0000000
--- a/tests/cxx/tree/detach/makefile
+++ /dev/null
@@ -1,85 +0,0 @@
-# file : tests/cxx/tree/detach/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-detach --generate-default-ctor
-$(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/detach/test.xsd b/tests/cxx/tree/detach/test.xsd
deleted file mode 100644
index b9f5166..0000000
--- a/tests/cxx/tree/detach/test.xsd
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test">
-
- <complexType name="object">
- <sequence>
- <element name="data" type="string" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="id" type="ID" use="required"/>
- </complexType>
-
- <complexType name="ref">
- <simpleContent>
- <extension base="IDREF"/>
- </simpleContent>
- </complexType>
-
- <complexType name="subtree">
- <sequence>
- <element name="o" type="t:object" minOccurs="0" maxOccurs="unbounded"/>
- <element name="r" type="t:ref" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- </complexType>
-
- <complexType name="model">
- <sequence>
- <element name="one" type="t:subtree"/>
- <element name="opt" type="t:subtree" minOccurs="0"/>
- <element name="seq" type="t:subtree" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- </complexType>
-
-</schema>