summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2006-03-10 11:43:46 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2006-03-10 11:43:46 +0000
commitd7de339c40c2fcfd7b9358b8ddf2007e6491584e (patch)
treee902658f53fcc5a923644998d7df1e83fd59a420 /TAO
parent0013f4a6ce32ba325a545c13f98eb8bb5c86c900 (diff)
downloadATCD-d7de339c40c2fcfd7b9358b8ddf2007e6491584e.tar.gz
ChangeLogTag: Fri Mar 10 11:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO')
-rw-r--r--TAO/tests/Any/Recursive/Test.idl15
-rw-r--r--TAO/tests/Any/Recursive/client.cpp16
2 files changed, 31 insertions, 0 deletions
diff --git a/TAO/tests/Any/Recursive/Test.idl b/TAO/tests/Any/Recursive/Test.idl
index 8e16b859810..08a33a2346c 100644
--- a/TAO/tests/Any/Recursive/Test.idl
+++ b/TAO/tests/Any/Recursive/Test.idl
@@ -35,6 +35,21 @@ module Test
long i;
};
+ union RecursiveUnionNoDefault;
+ typedef sequence<RecursiveUnionNoDefault> RecursiveUnionSeqNoDefault;
+
+ union RecursiveUnionNoDefault switch (short)
+ {
+ case 0:
+ RecursiveUnionSeqNoDefault recursive_unions;
+ case 1:
+ short a;
+ case 2:
+ RecursiveUnionSeqNoDefault recursive_unions_second;
+ };
+
+ // --------------------------
+
// --------------------------
enum VSort {
diff --git a/TAO/tests/Any/Recursive/client.cpp b/TAO/tests/Any/Recursive/client.cpp
index 2a9cfe79fa4..41179ed0456 100644
--- a/TAO/tests/Any/Recursive/client.cpp
+++ b/TAO/tests/Any/Recursive/client.cpp
@@ -197,6 +197,22 @@ recursive_union_test (CORBA::ORB_ptr /* orb */,
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+ // Recursive member case with no default member
+ Test::RecursiveUnionSeqNoDefault seqnodefault;
+ seqnodefault.length (2);
+ seqnodefault[0].a (37);
+ seqnodefault[1].recursive_unions (Test::RecursiveUnionSeqNoDefault ());
+
+ Test::RecursiveUnionNoDefault foonodefault;
+ foonodefault.recursive_unions (seqnodefault);
+
+ the_any <<= foonodefault;
+
+ ::perform_invocation<Test::RecursiveUnionNoDefault> (hello,
+ the_any
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
// Recursive member case with enum .
Test::VSortRecursiveUnionSeq vsortseq;
vsortseq.length (2);