From 899728d08993676b01e722a28f60efb2d076534d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 1 Dec 2009 11:05:10 +0200 Subject: Make the list type a container for its elements --- tests/cxx/tree/containment/driver.cxx | 35 +++++++++++++++++++++++++++++++++++ tests/cxx/tree/containment/makefile | 2 +- tests/cxx/tree/containment/test.xsd | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/cxx/tree/containment/driver.cxx b/tests/cxx/tree/containment/driver.cxx index bd9aa24..62e1a8c 100644 --- a/tests/cxx/tree/containment/driver.cxx +++ b/tests/cxx/tree/containment/driver.cxx @@ -74,4 +74,39 @@ main () i.ref ("bar"); assert (i.ref ()->get () == p); } + + // IDREF lists + // + { + id i1 ("a"), i2 ("b"); + + auto_ptr ic (new ids); + ic->id ().push_back (i1); + ic->id ().push_back (i2); + + auto_ptr r1 (new xml_schema::idrefs); + r1->push_back (xml_schema::idref ("a")); + r1->push_back (xml_schema::idref ("b")); + + auto_ptr r2 (new idref_list); + r2->push_back (xml_schema::idref ("a")); + r2->push_back (xml_schema::idref ("b")); + + auto_ptr rc1 (new idrefs1); + auto_ptr rc2 (new idrefs2); + + rc1->idrefs (r1); + rc2->idrefs (r2); + + model m; + m.ids (ic); + m.idrefs1 (rc1); + m.idrefs2 (rc2); + + assert (m.idrefs1 ().idrefs ()[0].get () != 0); + assert (m.idrefs1 ().idrefs ()[1].get () != 0); + + assert (m.idrefs2 ().idrefs ()[0].get () != 0); + assert (m.idrefs2 ().idrefs ()[1].get () != 0); + } } diff --git a/tests/cxx/tree/containment/makefile b/tests/cxx/tree/containment/makefile index e44f82e..d6f45b3 100644 --- a/tests/cxx/tree/containment/makefile +++ b/tests/cxx/tree/containment/makefile @@ -34,7 +34,7 @@ genf := $(xsd:.xsd=.hxx) $(xsd:.xsd=.ixx) $(xsd:.xsd=.cxx) gen := $(addprefix $(out_base)/,$(genf)) $(gen): xsd := $(out_root)/xsd/xsd -$(gen): xsd_options := +$(gen): xsd_options := --generate-default-ctor $(gen): $(out_root)/xsd/xsd $(call include-dep,$(dep)) diff --git a/tests/cxx/tree/containment/test.xsd b/tests/cxx/tree/containment/test.xsd index 002bdda..72c9379 100644 --- a/tests/cxx/tree/containment/test.xsd +++ b/tests/cxx/tree/containment/test.xsd @@ -24,4 +24,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1