2 #include "Admin_Client.h"
4 #include "tao/AnyTypeCode/Any_Unknown_IDL_Type.h"
7 #include "ace/Get_Opt.h"
8 #include "ace/SString.h"
10 Admin_Client::Admin_Client ()
16 // Initialize the array of pointers to member functions.
17 this->test_array_
[0] = &Admin_Client::array_test
;
18 this->test_array_
[1] = &Admin_Client::enum_test
;
19 this->test_array_
[2] = &Admin_Client::alias_test
;
20 this->test_array_
[3] = &Admin_Client::native_test
;
21 this->test_array_
[4] = &Admin_Client::struct_test
;
22 this->test_array_
[5] = &Admin_Client::union_test
;
23 this->test_array_
[6] = &Admin_Client::exception_test
;
24 this->test_array_
[7] = &Admin_Client::constant_test
;
25 this->test_array_
[8] = &Admin_Client::interface_test
;
26 this->test_array_
[9] = &Admin_Client::move_test
;
27 this->test_array_
[10] = &Admin_Client::module_test
;
30 Admin_Client::~Admin_Client ()
34 // An array of test names, so we can step through them when
35 // trying to find a match for a test selected on the command line.
36 const char *Admin_Client::test_names_
[] =
52 Admin_Client::init (int argc
, ACE_TCHAR
*argv
[])
56 this->orb_
= CORBA::ORB_init (argc
, argv
);
58 int retval
= this->parse_args (argc
, argv
);
63 CORBA::Object_var object
=
64 this->orb_
->resolve_initial_references ("InterfaceRepository");
66 if (CORBA::is_nil (object
.in ()))
70 "Null objref from resolve_initial_references\n"
75 CORBA::Repository::_narrow (object
.in ());
77 if (CORBA::is_nil (this->repo_
.in ()))
79 ACE_ERROR_RETURN ((LM_ERROR
,
80 "CORBA::Repository::_narrow failed\n"),
84 catch (const CORBA::Exception
& ex
)
86 ex
._tao_print_exception ("Admin_Client::init");
98 if (this->all_tests_
== 1)
100 for (CORBA::ULong i
= 0; i
< NUMBER_OF_TESTS
; ++i
)
102 // Each test is run twice to make sure everything
103 // gets destroyed properly. If not, we get a
104 // CORBA::BAD_PARAM exception the second time.
105 for (CORBA::ULong j
= 0; j
< this->iterations_
; ++j
)
107 (this->*test_array_
[i
])();
113 for (CORBA::ULong j
= 0; j
< this->iterations_
; ++j
)
115 (this->*test_array_
[this->which_test_
])();
119 catch (const CORBA::Exception
& ex
)
121 ex
._tao_print_exception ("Admin_Client::run");
129 Admin_Client::parse_args (int argc
, ACE_TCHAR
*argv
[])
131 ACE_Get_Opt
opts (argc
, argv
, ACE_TEXT("di:t:"));
137 while ((c
= opts ()) != -1)
140 case 'd': // debug flag
143 case 'i': // iterations
144 result
= ACE_OS::atoi (opts
.opt_arg ());
146 this->iterations_
= result
;
148 case 't': // test selection
149 this->all_tests_
= 0;
150 name
= opts
.opt_arg ();
152 for (i
= 0; i
< NUMBER_OF_TESTS
; ++i
)
154 if (ACE_OS::strcmp (ACE_TEXT_ALWAYS_CHAR (name
), this->test_names_
[i
]) == 0)
156 this->which_test_
= i
;
164 ACE_ERROR_RETURN ((LM_ERROR
,
178 Admin_Client::array_test ()
184 ACE_TEXT ("\n============== ARRAY TEST ==============\n\n")
188 CORBA::IDLType_var atype
=
189 this->repo_
->create_string (7);
191 CORBA::ArrayDef_var avar
=
192 this->repo_
->create_array (5,
195 CORBA::ULong bound
= avar
->length ();
199 ACE_DEBUG ((LM_DEBUG
,
200 ACE_TEXT ("ArrayDef::length: %d\n"),
204 ACE_TEST_ASSERT (bound
== 5);
206 CORBA::TypeCode_var tc
= avar
->type ();
208 CORBA::TCKind kind
= tc
->kind ();
212 ACE_DEBUG ((LM_DEBUG
,
213 ACE_TEXT ("ArrayDef::type::kind: %d\n"),
217 ACE_TEST_ASSERT (kind
== CORBA::tk_array
);
219 tc
= avar
->element_type ();
224 ACE_DEBUG ((LM_DEBUG
,
225 ACE_TEXT ("ArrayDef::element_type::kind: %d\n"),
229 ACE_TEST_ASSERT (kind
== CORBA::tk_string
);
231 CORBA::IDLType_var tdef
=
232 avar
->element_type_def ();
233 CORBA::DefinitionKind dk
= tdef
->def_kind ();
239 ACE_TEXT ("ArrayDef::element_type_def::def_kind: %d\n"),
244 ACE_TEST_ASSERT (dk
== CORBA::dk_String
);
246 CORBA::StringDef_var pvar
=
247 CORBA::StringDef::_narrow (tdef
.in ());
248 bound
= pvar
->bound ();
252 ACE_DEBUG ((LM_DEBUG
,
253 ACE_TEXT ("StringDef::bound: %d\n"),
257 ACE_TEST_ASSERT (bound
== 7);
259 CORBA::PrimitiveDef_var pdef
=
260 this->repo_
->get_primitive (CORBA::pk_short
);
261 avar
->element_type_def (pdef
.in ());
265 ACE_DEBUG ((LM_DEBUG
,
266 ACE_TEXT ("ArrayDef::element_type_def (set)\n")));
274 ACE_DEBUG ((LM_DEBUG
,
275 ACE_TEXT ("ArrayDef::type::kind: %d\n"),
279 ACE_TEST_ASSERT (kind
== CORBA::tk_array
);
281 tdef
= avar
->element_type_def ();
282 dk
= tdef
->def_kind ();
286 ACE_DEBUG ((LM_DEBUG
,
287 ACE_TEXT ("ArrayDef::element_type_def::def_kind: %d\n"),
291 ACE_TEST_ASSERT (dk
== CORBA::dk_Primitive
);
293 CORBA::PrimitiveDef_var zvar
=
294 CORBA::PrimitiveDef::_narrow (tdef
.in ());
295 CORBA::PrimitiveKind pkind
= zvar
->kind ();
299 ACE_DEBUG ((LM_DEBUG
,
300 ACE_TEXT ("PrimitiveDef::kind: %d\n"),
304 ACE_TEST_ASSERT (pkind
== CORBA::pk_short
);
310 Admin_Client::enum_test ()
316 ACE_TEXT ("\n============== ENUM TEST ==============\n\n")
320 CORBA::EnumMemberSeq
members (4);
323 members
[0] = CORBA::string_dup ("ZERO");
324 members
[1] = CORBA::string_dup ("ONE");
325 members
[2] = CORBA::string_dup ("TWO");
327 CORBA::EnumDef_var evar
=
328 this->repo_
->create_enum ("IDL:my_enum:1.0",
333 CORBA::String_var str
= evar
->id ();
337 ACE_DEBUG ((LM_DEBUG
,
338 ACE_TEXT ("EnumDef::id: %C\n"),
342 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_enum:1.0") == 0);
348 ACE_DEBUG ((LM_DEBUG
,
349 ACE_TEXT ("EnumDef::name: %C\n"),
353 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "my_enum") == 0);
355 str
= evar
->absolute_name ();
359 ACE_DEBUG ((LM_DEBUG
,
360 ACE_TEXT ("EnumDef::absolute_name: %C\n"),
364 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_enum") == 0);
366 str
= evar
->version ();
370 ACE_DEBUG ((LM_DEBUG
,
371 ACE_TEXT ("EnumDef::version: %C\n"),
375 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "1.0") == 0);
377 CORBA::DefinitionKind dkind
=
382 ACE_DEBUG ((LM_DEBUG
,
383 ACE_TEXT ("EnumDef::def_kind: %d\n\n"),
387 ACE_TEST_ASSERT (dkind
== CORBA::dk_Enum
);
389 CORBA::Contained::Description_var desc
=
396 ACE_DEBUG ((LM_DEBUG
,
397 ACE_TEXT ("EnumDef::describe::kind: %d\n"),
401 ACE_TEST_ASSERT (dkind
== CORBA::dk_Enum
);
403 const CORBA::TypeDescription
*td
= 0;
408 ACE_DEBUG ((LM_DEBUG
,
409 ACE_TEXT ("EnumDef::describe::value::name: %C\n"),
413 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->name
, "my_enum") == 0);
417 ACE_DEBUG ((LM_DEBUG
,
418 ACE_TEXT ("EnumDef::describe::value::id: %C\n"),
422 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->id
, "IDL:my_enum:1.0") == 0);
426 ACE_DEBUG ((LM_DEBUG
,
427 ACE_TEXT ("EnumDef::describe::value::defined_in: %C\n"),
428 td
->defined_in
.in ()));
431 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->defined_in
, "") == 0);
435 ACE_DEBUG ((LM_DEBUG
,
436 ACE_TEXT ("EnumDef::describe::value::version: %C\n"),
440 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->version
, "1.0") == 0);
442 CORBA::TCKind kind
= td
->type
->kind ();
446 ACE_DEBUG ((LM_DEBUG
,
447 ACE_TEXT ("EnumDef::describe::value::type::kind: %d\n"),
451 ACE_TEST_ASSERT (kind
== CORBA::tk_enum
);
453 str
= td
->type
->id ();
457 ACE_DEBUG ((LM_DEBUG
,
458 ACE_TEXT ("EnumDef::describe::value::type::id: %C\n"),
462 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_enum:1.0") == 0);
464 str
= td
->type
->name ();
468 ACE_DEBUG ((LM_DEBUG
,
469 ACE_TEXT ("EnumDef::describe::value::type::name: %C\n"),
473 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "my_enum") == 0);
476 td
->type
->member_count ();
482 ACE_TEXT ("EnumDef::describe::value::type::member_count: %d\n\n"),
487 ACE_TEST_ASSERT (count
== 3);
491 for (i
= 0; i
< count
; ++i
)
493 str
= td
->type
->member_name (i
);
497 ACE_DEBUG ((LM_DEBUG
,
498 ACE_TEXT ("EnumDef::describe::value::type::")
499 ACE_TEXT ("member_name[%d]: %C\n"),
504 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), members
[i
]) == 0);
509 members
[0] = CORBA::string_dup ("NOTHINGNESS");
510 members
[1] = CORBA::string_dup ("UNITY");
511 members
[2] = CORBA::string_dup ("DUALITY");
512 members
[3] = CORBA::string_dup ("TRINITY");
514 evar
->members (members
);
518 ACE_DEBUG ((LM_DEBUG
,
519 ACE_TEXT ("\nEnumDef::members (set)\n\n")));
522 CORBA::EnumMemberSeq_var fellows
=
525 count
= fellows
->length ();
528 for (i
= 0; i
< count
; ++i
)
534 ACE_DEBUG ((LM_DEBUG
,
535 ACE_TEXT ("EnumDef::")
536 ACE_TEXT ("members[%d]: %C\n"),
541 ACE_TEST_ASSERT (ACE_OS::strcmp (fellows
[i
], members
[i
]) == 0);
544 evar
->name ("another_enum");
549 ACE_DEBUG ((LM_DEBUG
,
550 ACE_TEXT ("\nEnumDef::name (set)\n")));
555 ACE_DEBUG ((LM_DEBUG
,
556 ACE_TEXT ("EnumDef::name: %C\n"),
560 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "another_enum") == 0);
562 str
= evar
->absolute_name ();
566 ACE_DEBUG ((LM_DEBUG
,
567 ACE_TEXT ("EnumDef::absolute_name: %C\n"),
571 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::another_enum") == 0);
577 Admin_Client::alias_test ()
583 ACE_TEXT ("\n============== ALIAS TEST ==============\n\n")
587 // This test also tests WstringDef and SequenceDef.
589 CORBA::IDLType_var sq_elem
=
590 this->repo_
->create_wstring (7);
592 CORBA::SequenceDef_var sq_var
=
593 this->repo_
->create_sequence (5,
596 CORBA::AliasDef_var a_var
=
597 this->repo_
->create_alias ("IDL:my_alias:1.0",
602 CORBA::String_var str
= a_var
->id ();
606 ACE_DEBUG ((LM_DEBUG
,
607 ACE_TEXT ("AliasDef::id: %C\n"),
611 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_alias:1.0") == 0);
613 str
= a_var
->name ();
617 ACE_DEBUG ((LM_DEBUG
,
618 ACE_TEXT ("AliasDef::name: %C\n"),
622 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "my_alias") == 0);
624 str
= a_var
->absolute_name ();
628 ACE_DEBUG ((LM_DEBUG
,
629 ACE_TEXT ("AliasDef::absolute_name: %C\n"),
633 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_alias") == 0);
635 str
= a_var
->version ();
639 ACE_DEBUG ((LM_DEBUG
,
640 ACE_TEXT ("AliasDef::version: %C\n"),
644 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "1.0") == 0);
648 ACE_DEBUG ((LM_DEBUG
,
649 ACE_TEXT ("AliasDef::version (set)\n")));
652 a_var
->version ("1.1");
654 str
= a_var
->version ();
658 ACE_DEBUG ((LM_DEBUG
,
659 ACE_TEXT ("AliasDef::version: %C\n"),
663 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "1.1") == 0);
665 CORBA::TypeCode_var tc
= a_var
->type ();
671 ACE_DEBUG ((LM_DEBUG
,
672 ACE_TEXT ("\nAliasDef::type::name: %C\n"),
676 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "my_alias") == 0);
678 CORBA::TCKind kind
= tc
->kind ();
682 ACE_DEBUG ((LM_DEBUG
,
683 ACE_TEXT ("AliasDef::type::kind: %d\n"),
687 ACE_TEST_ASSERT (kind
== CORBA::tk_alias
);
689 CORBA::TypeCode_var ct
=
696 ACE_DEBUG ((LM_DEBUG
,
697 ACE_TEXT ("AliasDef::type::content_type::kind: %d\n"),
701 ACE_TEST_ASSERT (kind
== CORBA::tk_sequence
);
703 CORBA::ULong length
= ct
->length ();
707 ACE_DEBUG ((LM_DEBUG
,
708 ACE_TEXT ("AliasDef::type::content_type::length: %d\n"),
712 ACE_TEST_ASSERT (length
== 5);
714 CORBA::TypeCode_var ct2
=
721 ACE_DEBUG ((LM_DEBUG
,
722 ACE_TEXT ("AliasDef::type::content_type::")
723 ACE_TEXT ("content_type::kind: %d\n"),
727 ACE_TEST_ASSERT (kind
== CORBA::tk_wstring
);
729 length
= ct2
->length ();
733 ACE_DEBUG ((LM_DEBUG
,
734 ACE_TEXT ("AliasDef::type::content_type::")
735 ACE_TEXT ("content_type::length: %d\n"),
739 ACE_TEST_ASSERT (length
== 7);
741 CORBA::Contained::Description_var desc
=
744 const CORBA::TypeDescription
*td
= 0;
749 ACE_DEBUG ((LM_DEBUG
,
750 ACE_TEXT ("\nAliasDef::describe::value::name: %C\n"),
754 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->name
, "my_alias") == 0);
758 ACE_DEBUG ((LM_DEBUG
,
759 ACE_TEXT ("AliasDef::describe::value::version: %C\n"),
763 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->version
, "1.1") == 0);
765 kind
= td
->type
->kind ();
769 ACE_DEBUG ((LM_DEBUG
,
770 ACE_TEXT ("AliasDef::describe::value::type::kind: %d\n"),
774 ACE_TEST_ASSERT (kind
== CORBA::tk_alias
);
776 str
= td
->type
->id ();
780 ACE_DEBUG ((LM_DEBUG
,
781 ACE_TEXT ("AliasDef::describe::value::type::id: %C\n"),
785 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_alias:1.0") == 0);
787 str
= td
->type
->name ();
791 ACE_DEBUG ((LM_DEBUG
,
792 ACE_TEXT ("AliasDef::describe::value::type::name: %C\n"),
796 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "my_alias") == 0);
798 CORBA::IDLType_var i_var
=
799 a_var
->original_type_def ();
801 CORBA::SequenceDef_var seq_var
=
802 CORBA::SequenceDef::_narrow (i_var
.in ());
804 length
= seq_var
->bound ();
808 ACE_DEBUG ((LM_DEBUG
,
809 ACE_TEXT ("AliasDef::original_type_def::bound: %d\n"),
813 ACE_TEST_ASSERT (length
== 5);
819 Admin_Client::native_test ()
825 ACE_TEXT ("\n============== NATIVE TEST ==============\n\n")
829 CORBA::NativeDef_var nvar
=
830 this->repo_
->create_native ("IDL:my_native:1.0",
834 CORBA::String_var str
= nvar
->id ();
838 ACE_DEBUG ((LM_DEBUG
,
839 ACE_TEXT ("NativeDef::id: %C\n"),
843 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_native:1.0") == 0);
849 ACE_DEBUG ((LM_DEBUG
,
850 ACE_TEXT ("NativeDef::name: %C\n"),
854 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "my_native") == 0);
856 str
= nvar
->version ();
860 ACE_DEBUG ((LM_DEBUG
,
861 ACE_TEXT ("NativeDef::version: %C\n"),
865 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "1.0") == 0);
867 str
= nvar
->absolute_name ();
871 ACE_DEBUG ((LM_DEBUG
,
872 ACE_TEXT ("NativeDef::absolute_name: %C\n"),
876 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_native") == 0);
878 CORBA::DefinitionKind kind
=
883 ACE_DEBUG ((LM_DEBUG
,
884 ACE_TEXT ("NativeDef::def_kind: %d\n"),
888 ACE_TEST_ASSERT (kind
== CORBA::dk_Native
);
894 Admin_Client::struct_test ()
900 ACE_TEXT ("\n============== STRUCT TEST ==============\n\n")
904 CORBA::StructMemberSeq
members (3);
907 members
[0].name
= CORBA::string_dup ("ub_string");
908 members
[0].type_def
= this->repo_
->get_primitive (CORBA::pk_string
);
909 members
[0].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
911 members
[1].name
= CORBA::string_dup ("bd_string");
912 members
[1].type_def
= this->repo_
->create_string (5);
913 members
[1].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
915 CORBA::EnumMemberSeq
e_members (2);
916 e_members
.length (2);
918 e_members
[0] = CORBA::string_dup ("ZERO");
919 e_members
[1] = CORBA::string_dup ("ONE");
921 members
[2].name
= CORBA::string_dup ("my_struct_enum");
923 CORBA::EnumDef_var e_var
=
924 this->repo_
->create_enum ("IDL:my_enum:1.0",
928 members
[2].type_def
= CORBA::EnumDef::_duplicate (e_var
.in ());
929 members
[2].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
931 CORBA::StructDef_var svar
=
932 this->repo_
->create_struct ("IDL:my_struct:1.0",
937 // This also tests the members() function.
938 CORBA::TypeCode_var tc
= svar
->type ();
940 CORBA::ULong length
= tc
->member_count ();
944 ACE_DEBUG ((LM_DEBUG
,
945 ACE_TEXT ("StructDef::type::length: %d\n"),
949 ACE_TEST_ASSERT (length
== 3);
951 CORBA::String_var str
;
954 for (i
= 0; i
< length
; ++i
)
956 str
= tc
->member_name (i
);
960 ACE_DEBUG ((LM_DEBUG
,
961 ACE_TEXT ("StructDef::type::member_name[%d]: %C\n"),
966 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), members
[i
].name
) == 0);
969 CORBA::Contained::Description_var desc
=
972 const CORBA::TypeDescription
*td
= 0;
977 ACE_DEBUG ((LM_DEBUG
,
978 ACE_TEXT ("\nStructDef::describe::value::name: %C\n"),
982 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->name
, "my_struct") == 0);
986 ACE_DEBUG ((LM_DEBUG
,
987 ACE_TEXT ("StructDef::describe::value::id: %C\n"),
991 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->id
, "IDL:my_struct:1.0") == 0);
995 ACE_DEBUG ((LM_DEBUG
,
996 ACE_TEXT ("StructDef::describe::value::version: %C\n"),
1000 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->version
, "1.0") == 0);
1003 members
[0].name
= CORBA::string_dup ("long_mem");
1004 members
[0].type_def
= this->repo_
->get_primitive (CORBA::pk_long
);
1005 members
[0].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1007 members
[1].name
= CORBA::string_dup ("array_mem");
1008 members
[1].type_def
=
1009 this->repo_
->create_array (5,
1010 members
[0].type_def
.in ());
1011 members
[1].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1013 svar
->members (members
);
1017 ACE_DEBUG ((LM_DEBUG
,
1018 ACE_TEXT ("\nStructDef::members (set)\n\n")));
1021 CORBA::EnumMemberSeq
def_members (2);
1022 def_members
.length (2);
1024 def_members
[0] = CORBA::string_dup ("FIRST");
1025 def_members
[1] = CORBA::string_dup ("SECOND");
1027 CORBA::EnumDef_var e_def_var
= svar
->create_enum ("IDL:my_def_enum:1.0",
1032 CORBA::StructMemberSeq_var out_members
=
1035 length
= out_members
->length ();
1038 for (i
= 0; i
< length
; ++i
)
1042 ACE_DEBUG ((LM_DEBUG
,
1043 ACE_TEXT ("StructDef::members[%d]::name: %C\n"),
1045 out_members
[i
].name
.in ()));
1048 if (i
== length
- 1)
1051 ACE_OS::strcmp (out_members
[i
].name
, "my_enum");
1052 ACE_TEST_ASSERT (cmp_result
== 0);
1057 ACE_OS::strcmp (out_members
[i
].name
, members
[i
].name
);
1058 ACE_TEST_ASSERT (cmp_result
== 0);
1062 CORBA::Contained_var fox
= this->repo_
->lookup ("::my_struct::my_enum");
1064 str
= fox
->absolute_name ();
1068 ACE_DEBUG ((LM_DEBUG
,
1069 ACE_TEXT ("Repository::lookup::absolute_name: %C\n"),
1073 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_struct::my_enum") == 0);
1075 fox
= svar
->lookup ("my_enum");
1077 str
= fox
->absolute_name ();
1081 ACE_DEBUG ((LM_DEBUG
,
1082 ACE_TEXT ("StructDef::lookup::absolute_name: %C\n"),
1086 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_struct::my_enum") == 0);
1088 CORBA::Container_var outer
= fox
->defined_in ();
1089 CORBA::Contained_var schizo
=
1090 CORBA::Contained::_narrow (outer
.in ());
1092 str
= schizo
->absolute_name ();
1096 ACE_DEBUG ((LM_DEBUG
,
1097 ACE_TEXT ("StructDef::lookup::defined_in::")
1098 ACE_TEXT ("absolute_name: %C\n"),
1102 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_struct") == 0);
1104 CORBA::ContainedSeq_var contents
=
1105 this->repo_
->contents (CORBA::dk_all
,
1108 length
= contents
->length ();
1112 ACE_DEBUG ((LM_DEBUG
,
1113 ACE_TEXT ("\nRepository::contents::length: %d\n"),
1117 ACE_TEST_ASSERT (length
== 2);
1119 contents
= svar
->contents (CORBA::dk_all
,
1122 length
= contents
->length ();
1126 ACE_DEBUG ((LM_DEBUG
,
1127 ACE_TEXT ("StructDef::contents::length: %d\n"),
1131 ACE_TEST_ASSERT (length
== 1);
1133 for (i
= 0; i
< length
; ++i
)
1135 str
= contents
[i
]->absolute_name ();
1141 ACE_TEXT ("StructDef::contents[%d]::absolute_name: %C\n"),
1149 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_struct::my_enum") == 0);
1153 // No more found in lookup.
1157 contents
= this->repo_
->lookup_name ("my_enum",
1162 length
= contents
->length ();
1166 ACE_DEBUG ((LM_DEBUG
,
1167 ACE_TEXT ("\nRepository::lookup_name::length: %d\n"),
1171 ACE_TEST_ASSERT (length
== 2);
1173 for (i
= 0; i
< length
; ++i
)
1175 str
= contents
[i
]->absolute_name ();
1181 ACE_TEXT ("Repository::lookup_name[%d]::absolute_name: %C\n"),
1187 // Can't use ACE_TEST_ASSERT here because we don't know the order
1188 // of the results of the search.
1191 CORBA::Container::DescriptionSeq_var cont_desc
=
1192 this->repo_
->describe_contents (CORBA::dk_all
,
1196 length
= cont_desc
->length ();
1200 ACE_DEBUG ((LM_DEBUG
,
1201 ACE_TEXT ("\nRepository::describe_contents::length: %d\n"),
1205 ACE_TEST_ASSERT (length
== 2);
1207 for (i
= 0; i
< length
; ++i
)
1209 const CORBA::TypeDescription
*td
= 0;
1210 cont_desc
[i
].value
>>= td
;
1212 str
= td
->type
->id ();
1218 ACE_TEXT ("Repository::describe_contents[%d]::id: %C\n"),
1226 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_enum:1.0") == 0);
1230 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:my_struct:1.0") == 0);
1234 svar
->name ("your_struct");
1238 ACE_DEBUG ((LM_DEBUG
,
1239 ACE_TEXT ("\nStructDef::name (set)\n")));
1242 contents
= svar
->contents (CORBA::dk_all
,
1245 length
= contents
->length ();
1249 ACE_DEBUG ((LM_DEBUG
,
1250 ACE_TEXT ("StructDef::contents::length: %d\n"),
1254 ACE_TEST_ASSERT (length
== 1);
1256 const char *tmp
= "::your_struct";
1258 for (i
= 0; i
< length
; ++i
)
1260 str
= contents
[i
]->absolute_name ();
1266 ACE_TEXT ("StructDef::contents[%d]::absolute_name: %C\n"),
1272 // Whatever the scoped name now is, it must begin
1273 // with "::your_struct".
1275 ACE_OS::strncmp (str
.in (), tmp
, ACE_OS::strlen (tmp
));
1276 ACE_TEST_ASSERT (cmp_result
== 0);
1279 #if defined (ACE_NDEBUG)
1280 // ACE_TEST_ASSERT macro expands to nothing, so...
1281 ACE_UNUSED_ARG (tmp
);
1282 #endif /* ACE_NDEBUG */
1289 Admin_Client::union_test ()
1295 ACE_TEXT ("\n============== UNION TEST ==============\n\n")
1299 CORBA::EnumMemberSeq
d_members (4);
1300 d_members
.length (4);
1302 d_members
[0] = CORBA::string_dup ("ZERO");
1303 d_members
[1] = CORBA::string_dup ("ONE");
1304 d_members
[2] = CORBA::string_dup ("TWO");
1305 d_members
[3] = CORBA::string_dup ("THREE");
1307 CORBA::EnumDef_var d_var
=
1308 this->repo_
->create_enum ("IDL:disc_enum:1.0",
1313 CORBA::StructMemberSeq
s_members (1);
1314 s_members
.length (1);
1315 s_members
[0].name
= CORBA::string_dup ("string_in_struct");
1316 s_members
[0].type_def
=
1317 this->repo_
->create_string (6);
1318 s_members
[0].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1320 CORBA::StructDef_var s_var
=
1321 this->repo_
->create_struct ("IDL:struct_in_union:1.0",
1326 CORBA::UnionMemberSeq
u_members (4);
1327 u_members
.length (4);
1329 u_members
[0].name
= CORBA::string_dup ("longval");
1330 u_members
[0].type_def
=
1331 this->repo_
->get_primitive (CORBA::pk_long
);
1332 u_members
[0].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1333 CORBA::TypeCode_var d_type
= d_var
->type ();
1334 TAO_OutputCDR maker2
;
1335 maker2
.write_ulong (3); // THREE
1336 TAO_InputCDR
maker2_in (maker2
);
1337 TAO::Unknown_IDL_Type
*impl2
= 0;
1339 TAO::Unknown_IDL_Type (d_type
.in (),
1342 any2
.replace (impl2
);
1343 u_members
[0].label
= any2
;
1345 u_members
[1].name
= CORBA::string_dup ("longval");
1346 u_members
[1].type_def
=
1347 this->repo_
->get_primitive (CORBA::pk_long
);
1348 u_members
[1].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1349 TAO_OutputCDR maker0
;
1350 maker0
.write_ulong (2); // TWO
1351 TAO_InputCDR
maker0_in (maker0
);
1352 TAO::Unknown_IDL_Type
*impl0
= 0;
1354 TAO::Unknown_IDL_Type (d_type
.in (),
1357 any0
.replace (impl0
);
1358 u_members
[1].label
= any0
;
1360 u_members
[2].name
= CORBA::string_dup ("structval");
1361 u_members
[2].type_def
= CORBA::StructDef::_duplicate (s_var
.in ());
1362 u_members
[2].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1364 TAO_OutputCDR maker1
;
1365 maker1
.write_ulong (0); // ZERO
1366 TAO_InputCDR
maker1_in (maker1
);
1367 TAO::Unknown_IDL_Type
*impl1
= 0;
1369 TAO::Unknown_IDL_Type (d_type
.in (),
1372 any1
.replace (impl1
);
1373 u_members
[2].label
= any1
;
1375 u_members
[3].name
= CORBA::string_dup ("stringval");
1376 u_members
[3].type_def
=
1377 this->repo_
->create_string (17);
1378 u_members
[3].type
= CORBA::TypeCode::_duplicate (CORBA::_tc_void
);
1379 u_members
[3].label
<<= CORBA::Any::from_octet (0); // default case (ONE)
1381 CORBA::UnionDef_var u_var
=
1382 this->repo_
->create_union ("IDL:my_union:1.0",
1388 CORBA::TypeCode_var disc_tc
=
1389 u_var
->discriminator_type ();
1391 CORBA::ULong length
=
1392 disc_tc
->member_count ();
1398 ACE_TEXT ("UnionDef::discriminator_type::member_count: %d\n"),
1403 ACE_TEST_ASSERT (length
== 4);
1405 CORBA::TypeCode_var tc
= u_var
->type ();
1407 length
= tc
->member_count ();
1411 ACE_DEBUG ((LM_DEBUG
,
1412 ACE_TEXT ("UnionDef::type::member_count: %d\n"),
1416 ACE_TEST_ASSERT (length
== 3);
1418 CORBA::Long slot
= tc
->default_index ();
1422 ACE_DEBUG ((LM_DEBUG
,
1423 ACE_TEXT ("UnionDef::type::default_index: %d\n\n"),
1427 ACE_TEST_ASSERT (slot
== 2);
1429 CORBA::String_var str
;
1430 const char *tmp
= 0;
1432 for (CORBA::ULong i
= 0; i
< length
; ++i
)
1434 str
= tc
->member_name (i
);
1438 ACE_DEBUG ((LM_DEBUG
,
1439 ACE_TEXT ("UnionDef::type::member_name[%d]: %C\n"),
1444 // Multiple labels for first member shifts index by 1.
1445 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), u_members
[i
+ 1].name
) == 0);
1447 CORBA::Any_var label
= tc
->member_label (i
);
1449 TAO_InputCDR
cdr (static_cast<ACE_Message_Block
*> (0));
1450 CORBA::ULong val
= 0;
1452 TAO::Any_Impl
*impl
= label
->impl ();
1454 impl
->marshal_value (out
);
1455 TAO_InputCDR
in (out
);
1457 // If we're at the default index, it's in the label as octet 0,
1458 // so just assign the slot value to val.
1459 if (i
!= (CORBA::ULong
) slot
)
1461 in
.read_ulong (val
);
1462 tmp
= d_members
[val
];
1467 ACE_DEBUG ((LM_DEBUG
,
1468 ACE_TEXT ("UnionDef::type::member_label[%d]: %C\n"),
1470 i
== (CORBA::ULong
) slot
? "default" : tmp
));
1473 // Labels are not in order.
1477 ACE_TEST_ASSERT (val
== 3 || val
== 2);
1480 ACE_TEST_ASSERT (val
== 0);
1493 Admin_Client::exception_test ()
1499 ACE_TEXT ("\n============== EXCEPTION TEST ==============\n\n")
1503 CORBA::StructMemberSeq
members (3);
1506 members
[0].name
= CORBA::string_dup ("ub_string");
1507 members
[0].type_def
= this->repo_
->get_primitive (CORBA::pk_string
);
1509 members
[0].type_def
->type ();
1511 members
[1].name
= CORBA::string_dup ("bd_string");
1512 members
[1].type_def
= this->repo_
->create_string (5);
1513 members
[1].type
= members
[1].type_def
->type ();
1515 CORBA::EnumMemberSeq
e_members (2);
1516 e_members
.length (2);
1518 e_members
[0] = CORBA::string_dup ("ZERO");
1519 e_members
[1] = CORBA::string_dup ("ONE");
1521 members
[2].name
= CORBA::string_dup ("my_exception_enum");
1522 CORBA::EnumDef_var e_var
=
1523 this->repo_
->create_enum ("IDL:my_enum:1.0",
1528 members
[2].type_def
= CORBA::EnumDef::_duplicate (e_var
.in ());
1531 members
[2].type_def
->type ();
1533 CORBA::ExceptionDef_var exvar
=
1534 this->repo_
->create_exception ("IDL:my_exception:1.0",
1539 CORBA::TypeCode_var tc
= exvar
->type ();
1541 CORBA::ULong length
= tc
->member_count ();
1545 ACE_DEBUG ((LM_DEBUG
,
1546 ACE_TEXT ("ExceptionDef::type::member_count: %d\n"),
1550 ACE_TEST_ASSERT (length
== 3);
1552 CORBA::String_var str
;
1555 for (i
= 0; i
< length
; ++i
)
1557 str
= tc
->member_name (i
);
1561 ACE_DEBUG ((LM_DEBUG
,
1562 ACE_TEXT ("ExceptionDef::type::member_name[%d]: %C\n"),
1567 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), members
[i
].name
) == 0);
1570 CORBA::Contained::Description_var desc
=
1573 const CORBA::ExceptionDescription
*ed
= 0;
1578 ACE_DEBUG ((LM_DEBUG
,
1579 ACE_TEXT ("\nExceptionDef::describe::value::name: %C\n"),
1583 ACE_TEST_ASSERT (ACE_OS::strcmp (ed
->name
, "my_exception") == 0);
1587 ACE_DEBUG ((LM_DEBUG
,
1588 ACE_TEXT ("ExceptionDef::describe::value::id: %C\n"),
1592 ACE_TEST_ASSERT (ACE_OS::strcmp (ed
->id
, "IDL:my_exception:1.0") == 0);
1596 ACE_DEBUG ((LM_DEBUG
,
1597 ACE_TEXT ("ExceptionDef::describe::value::defined_in: %C\n"),
1598 ed
->defined_in
.in ()));
1601 ACE_TEST_ASSERT (ACE_OS::strcmp (ed
->defined_in
, "") == 0);
1605 ACE_DEBUG ((LM_DEBUG
,
1606 ACE_TEXT ("ExceptionDef::describe::value::version: %C\n"),
1607 ed
->version
.in ()));
1610 ACE_TEST_ASSERT (ACE_OS::strcmp (ed
->version
, "1.0") == 0);
1613 members
[0].name
= CORBA::string_dup ("long_mem");
1614 members
[0].type_def
= this->repo_
->get_primitive (CORBA::pk_long
);
1616 members
[0].type_def
->type ();
1618 members
[1].name
= CORBA::string_dup ("array_mem");
1619 CORBA::ArrayDef_ptr a_ptr
=
1620 this->repo_
->create_array (5,
1621 members
[0].type_def
.in ());
1622 members
[1].type_def
= a_ptr
;
1624 members
[1].type_def
->type ();
1626 exvar
->members (members
);
1630 ACE_DEBUG ((LM_DEBUG
,
1631 ACE_TEXT ("\nExceptionDef::members (set)\n\n")));
1634 CORBA::EnumMemberSeq
def_members (2);
1635 def_members
.length (2);
1637 def_members
[0] = CORBA::string_dup ("FIRST");
1638 def_members
[1] = CORBA::string_dup ("SECOND");
1640 CORBA::EnumDef_var e_def_var
= exvar
->create_enum ("IDL:my_def_enum:1.0",
1645 CORBA::StructMemberSeq_var out_members
=
1648 length
= out_members
->length ();
1651 for (i
= 0; i
< length
; ++i
)
1654 ACE_DEBUG ((LM_DEBUG
,
1655 ACE_TEXT ("ExceptionDef::members[%d]::name: %C\n"),
1657 out_members
[i
].name
.in ()));
1662 ACE_OS::strcmp (out_members
[i
].name
, "my_enum");
1663 ACE_TEST_ASSERT (cmp_result
== 0);
1668 ACE_OS::strcmp (out_members
[i
].name
, members
[i
].name
);
1669 ACE_TEST_ASSERT (cmp_result
== 0);
1677 ACE_DEBUG ((LM_DEBUG
,
1678 ACE_TEXT ("\nArrayDef::destroy\n\n")));
1681 out_members
= exvar
->members ();
1682 length
= out_members
->length ();
1684 for (i
= 0; i
< length
; ++i
)
1688 ACE_DEBUG ((LM_DEBUG
,
1689 ACE_TEXT ("ExceptionDef::members[%d]::name: %C\n"),
1691 out_members
[i
].name
.in ()));
1697 ACE_OS::strcmp (out_members
[i
].name
, "my_enum");
1698 ACE_TEST_ASSERT (cmp_result
== 0);
1703 ACE_OS::strcmp (out_members
[i
].name
, members
[i
].name
);
1704 ACE_TEST_ASSERT (cmp_result
== 0);
1708 CORBA::Contained_var fox
= this->repo_
->lookup ("::my_exception::my_enum");
1710 str
= fox
->absolute_name ();
1714 ACE_DEBUG ((LM_DEBUG
,
1715 ACE_TEXT ("\nRepository::lookup: %s\n"),
1719 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_exception::my_enum") == 0);
1721 fox
= exvar
->lookup ("my_enum");
1723 str
= fox
->absolute_name ();
1727 ACE_DEBUG ((LM_DEBUG
,
1728 ACE_TEXT ("ExceptionDef::lookup: %s\n"),
1732 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_exception::my_enum") == 0);
1734 CORBA::ContainedSeq_var contents
=
1735 this->repo_
->contents (CORBA::dk_all
,
1738 length
= contents
->length ();
1742 ACE_DEBUG ((LM_DEBUG
,
1743 ACE_TEXT ("\nRepository::contents::length: %d\n"),
1747 ACE_TEST_ASSERT (length
== 2);
1749 contents
= exvar
->contents (CORBA::dk_all
,
1752 length
= contents
->length ();
1756 ACE_DEBUG ((LM_DEBUG
,
1757 ACE_TEXT ("ExceptionDef::contents::length: %d\n"),
1761 ACE_TEST_ASSERT (length
== 1);
1763 for (i
= 0; i
< length
; ++i
)
1765 str
= contents
[i
]->absolute_name ();
1771 ACE_TEXT ("ExceptionDef::contents[%d]::absolute_name: %C\n"),
1777 // Should be only the one member.
1778 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::my_exception::my_enum") == 0);
1781 contents
= this->repo_
->lookup_name ("my_enum",
1786 length
= contents
->length ();
1790 ACE_DEBUG ((LM_DEBUG
,
1791 ACE_TEXT ("\nRepository::lookup_name::length: %d\n"),
1795 ACE_TEST_ASSERT (length
== 2);
1797 for (i
= 0; i
< length
; ++i
)
1799 str
= contents
[i
]->absolute_name ();
1805 ACE_TEXT ("Repository::lookup_name%d]::absolute_name: %C\n"),
1811 // Can't use ACE_TEST_ASSERT here - order of search results is unknown.
1814 CORBA::Container::DescriptionSeq_var cont_desc
=
1815 this->repo_
->describe_contents (CORBA::dk_all
,
1819 length
= cont_desc
->length ();
1823 ACE_DEBUG ((LM_DEBUG
,
1824 ACE_TEXT ("\nRepository::describe_contents::length: %d\n"),
1828 ACE_TEST_ASSERT (length
== 2);
1830 const CORBA::TypeDescription
*td
= 0;
1832 for (i
= 0; i
< length
; ++i
)
1834 CORBA::DefinitionKind kind
= cont_desc
[i
].kind
;
1836 if (kind
== CORBA::dk_Exception
)
1838 cont_desc
[i
].value
>>= ed
;
1839 CORBA::TypeCode_ptr tc
= ed
->type
.in ();
1841 length
= tc
->member_count ();
1845 ACE_DEBUG ((LM_DEBUG
,
1846 ACE_TEXT ("Repository::describe_contents[%d]")
1847 ACE_TEXT ("::value::type::member_count: %d\n"),
1852 ACE_TEST_ASSERT (length
== 2);
1856 ACE_DEBUG ((LM_DEBUG
,
1857 ACE_TEXT ("Repository::describe_contents[%d]")
1858 ACE_TEXT ("::value::name: %C\n"),
1863 ACE_TEST_ASSERT (ACE_OS::strcmp (ed
->name
, "my_exception") == 0);
1867 cont_desc
[i
].value
>>= td
;
1868 CORBA::TypeCode_ptr tc
= td
->type
.in ();
1870 length
= tc
->member_count ();
1874 ACE_DEBUG ((LM_DEBUG
,
1875 ACE_TEXT ("Repository::describe_contents[%d]")
1876 ACE_TEXT ("::value::type::member_count: %d\n"),
1881 ACE_TEST_ASSERT (length
== 2);
1885 ACE_DEBUG ((LM_DEBUG
,
1886 ACE_TEXT ("Repository::describe_contents[%d]")
1887 ACE_TEXT ("::value::name: %C\n"),
1892 ACE_TEST_ASSERT (ACE_OS::strcmp (td
->name
, "my_enum") == 0);
1896 exvar
->name ("your_exception");
1900 ACE_DEBUG ((LM_DEBUG
,
1901 ACE_TEXT ("\nExceptionDef::name (set)\n\n")));
1904 contents
= exvar
->contents (CORBA::dk_all
,
1907 length
= contents
->length ();
1908 const char *tmp
= "::your_exception";
1910 for (i
= 0; i
< length
; ++i
)
1912 str
= contents
[i
]->absolute_name ();
1918 ACE_TEXT ("ExceptionDef::contents[%d]::absolute_name: %C\n"),
1924 ACE_TEST_ASSERT (ACE_OS::strncmp (str
.in (), tmp
, ACE_OS::strlen (tmp
)) == 0);
1927 #if defined (ACE_NDEBUG)
1928 // ACE_TEST_ASSERT macro expands to nothing, so...
1929 ACE_UNUSED_ARG (tmp
);
1930 #endif /* ACE_NDEBUG */
1937 Admin_Client::constant_test ()
1943 ACE_TEXT ("\n============== CONSTANT TEST ==============\n\n")
1947 CORBA::IDLType_var ivar
=
1948 this->repo_
->get_primitive (CORBA::pk_string
);
1951 const char *s
= "hello";
1954 CORBA::ConstantDef_var cvar
=
1955 this->repo_
->create_constant ("IDL:my_constant:1.0",
1961 CORBA::TypeCode_var tc
= cvar
->type ();
1962 CORBA::TCKind kind
= tc
->kind ();
1966 ACE_DEBUG ((LM_DEBUG
,
1967 ACE_TEXT ("ConstantDef::type::kind: %d\n"),
1971 ACE_TEST_ASSERT (kind
== CORBA::tk_string
);
1973 CORBA::IDLType_var tdef
=
1975 CORBA::DefinitionKind def_kind
=
1980 ACE_DEBUG ((LM_DEBUG
,
1981 ACE_TEXT ("ConstantDef::type_def::def_kind: %d\n"),
1985 ACE_TEST_ASSERT (def_kind
== CORBA::dk_Primitive
);
1987 CORBA::Any_var out_any
;
1988 out_any
= cvar
->value ();
1995 ACE_DEBUG ((LM_DEBUG
,
1996 ACE_TEXT ("ConstantDef::value (string): %C\n"),
2000 ACE_TEST_ASSERT (ACE_OS::strcmp (out_s
, s
) == 0);
2002 ivar
= this->repo_
->get_primitive (CORBA::pk_double
);
2003 cvar
->type_def (ivar
.in ());
2005 CORBA::Double double_val
= -1223.42256;
2011 ACE_DEBUG ((LM_DEBUG
,
2012 ACE_TEXT ("\nConstantDef::type_def (set)\n")
2013 ACE_TEXT ("ConstantDef::value (set)\n")));
2016 out_any
= cvar
->value ();
2018 CORBA::Double out_double_val
;
2019 out_any
>>= out_double_val
;
2023 ACE_DEBUG ((LM_DEBUG
,
2024 ACE_TEXT ("ConstantDef::value (double): %.5f\n"),
2028 ACE_TEST_ASSERT (ACE::is_equal (out_double_val
, double_val
));
2030 ivar
= this->repo_
->get_primitive (CORBA::pk_short
);
2031 cvar
->type_def (ivar
.in ());
2035 ACE_DEBUG ((LM_DEBUG
,
2036 ACE_TEXT ("\nConstantDef::type_def (set)\n")
2037 ACE_TEXT ("ConstantDef::value (set)\n")));
2040 CORBA::Short short_val
= -65;
2044 out_any
= cvar
->value ();
2046 CORBA::Short out_short_val
;
2047 out_any
>>= out_short_val
;
2051 ACE_DEBUG ((LM_DEBUG
,
2052 ACE_TEXT ("ConstantDef::value (short): %hd\n"),
2056 ACE_TEST_ASSERT (out_short_val
== short_val
);
2058 ivar
= this->repo_
->get_primitive (CORBA::pk_float
);
2059 cvar
->type_def (ivar
.in ());
2063 ACE_DEBUG ((LM_DEBUG
,
2064 ACE_TEXT ("\nConstantDef::type_def (set)\n")
2065 ACE_TEXT ("ConstantDef::value (set)\n")));
2068 CORBA::Float float_val
= 2.33f
;
2072 out_any
= cvar
->value ();
2074 CORBA::Float out_float_val
;
2075 out_any
>>= out_float_val
;
2079 ACE_DEBUG ((LM_DEBUG
,
2080 ACE_TEXT ("ConstantDef::value (float): %.2f\n"),
2084 ACE_TEST_ASSERT (ACE::is_equal (out_float_val
, float_val
));
2086 ivar
= this->repo_
->get_primitive (CORBA::pk_ulonglong
);
2087 cvar
->type_def (ivar
.in ());
2091 ACE_DEBUG ((LM_DEBUG
,
2092 ACE_TEXT ("\nConstantDef::type_def (set)\n")
2093 ACE_TEXT ("ConstantDef::value (set)\n")));
2096 CORBA::ULongLong ull_val
= 1234567890;
2100 out_any
= cvar
->value ();
2102 CORBA::ULongLong out_ull_val
;
2103 out_any
>>= out_ull_val
;
2107 ACE_DEBUG ((LM_DEBUG
,
2108 ACE_TEXT ("ConstantDef::value (ulonglong): %Q\n"),
2111 ACE_TEST_ASSERT (out_ull_val
== ull_val
);
2117 Admin_Client::interface_test ()
2123 ACE_TEXT ("\n============== INTERFACE TEST ==============\n\n")
2127 CORBA::ULong i
, length
;
2129 CORBA::InterfaceDefSeq
in_bases (1);
2130 in_bases
.length (0);
2132 CORBA::InterfaceDef_var gp_ivar
=
2133 this->repo_
->create_interface ("IDL:gp_iface:1.0",
2138 CORBA::PrimitiveDef_var p_long
=
2139 this->repo_
->get_primitive (CORBA::pk_long
);
2141 CORBA::AttributeDef_var gp_attr
=
2142 gp_ivar
->create_attribute ("IDL:gp_iface/gp_attr:1.0",
2146 CORBA::ATTR_NORMAL
);
2148 in_bases
.length (1);
2149 in_bases
[0] = CORBA::InterfaceDef::_duplicate (gp_ivar
.in ());
2151 CORBA::InterfaceDef_var p_ivar
=
2152 this->repo_
->create_interface ("IDL:p_iface:1.0",
2157 CORBA::StringDef_var p_string
=
2158 this->repo_
->create_string (5);
2160 CORBA::AttributeDef_var p_attr
=
2161 p_ivar
->create_attribute ("IDL:p_iface/p_attr:1.0",
2165 CORBA::ATTR_READONLY
);
2167 const char *names
[] = {"inarg", "inoutarg", "outarg"};
2169 const CORBA::ParameterMode modes
[] =
2170 {CORBA::PARAM_IN
, CORBA::PARAM_INOUT
, CORBA::PARAM_OUT
};
2172 const char *contexts
[] = {"straw", "sticks", "bricks"};
2175 CORBA::ParDescriptionSeq
par_seq (3);
2178 CORBA::StructMemberSeq
members (0);
2181 CORBA::ExceptionDef_var ex_var
=
2182 this->repo_
->create_exception ("IDL:if_exception:1.0",
2187 CORBA::ExceptionDefSeq
get_seq (1);
2189 get_seq
[0] = CORBA::ExceptionDef::_duplicate (ex_var
.in ());
2191 CORBA::ContextIdSeq
con_seq (3);
2194 for (i
= 0; i
< length
; ++i
)
2196 par_seq
[i
].name
= names
[i
];
2197 par_seq
[i
].type_def
= CORBA::PrimitiveDef::_duplicate (p_long
.in ());
2198 par_seq
[i
].type
= p_long
->type ();
2199 par_seq
[i
].mode
= modes
[i
];
2200 con_seq
[i
] = contexts
[i
];
2203 CORBA::OperationDef_var p_op
=
2204 p_ivar
->create_operation ("IDL:p_iface/p_op:1.0",
2213 CORBA::Contained::Description_var desc
=
2216 const CORBA::OperationDescription
*od
= 0;
2221 ACE_DEBUG ((LM_DEBUG
,
2222 ACE_TEXT ("OperationDef::describe::value::")
2223 ACE_TEXT ("defined_in: %s\n"),
2224 od
->defined_in
.in ()));
2227 ACE_TEST_ASSERT (ACE_OS::strcmp (od
->defined_in
, "IDL:p_iface:1.0") == 0);
2229 CORBA::TypeCode_var result
= od
->result
;
2230 CORBA::TCKind kind
= result
->kind ();
2234 ACE_DEBUG ((LM_DEBUG
,
2235 ACE_TEXT ("OperationDef::describe::result::")
2236 ACE_TEXT ("kind: %d\n"),
2240 ACE_TEST_ASSERT (kind
== CORBA::tk_long
);
2242 length
= od
->parameters
.length ();
2246 ACE_DEBUG ((LM_DEBUG
,
2247 ACE_TEXT ("\nOperationDef::describe::parameters::")
2248 ACE_TEXT ("length: %d\n"),
2252 ACE_TEST_ASSERT (length
== 3);
2254 const char *tmp
= 0;
2256 for (i
= 0; i
< length
; ++i
)
2258 tmp
= od
->parameters
[i
].name
;
2262 ACE_DEBUG ((LM_DEBUG
,
2263 ACE_TEXT ("OperationDef::describe::parameters[%d]::")
2264 ACE_TEXT ("name: %C\n"),
2269 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, names
[i
]) == 0);
2273 ACE_DEBUG ((LM_DEBUG
,
2274 ACE_TEXT ("OperationDef::describe::parameters[%d]::")
2275 ACE_TEXT ("mode: %d\n"),
2277 od
->parameters
[i
].mode
));
2280 ACE_TEST_ASSERT (od
->parameters
[i
].mode
== modes
[i
]);
2283 CORBA::Boolean is_it
= p_ivar
->is_a ("IDL:p_iface:1.0");
2287 ACE_DEBUG ((LM_DEBUG
,
2288 ACE_TEXT ("\nInterfaceDef::is_a (same class): %hd\n"),
2292 ACE_TEST_ASSERT (is_it
== 1);
2294 is_it
= p_ivar
->is_a ("IDL:gp_iface:1.0");
2298 ACE_DEBUG ((LM_DEBUG
,
2299 ACE_TEXT ("InterfaceDef::is_a (base class): %hd\n"),
2303 ACE_TEST_ASSERT (is_it
== 1);
2305 is_it
= gp_ivar
->is_a ("IDL:p_iface:1.0");
2309 ACE_DEBUG ((LM_DEBUG
,
2310 ACE_TEXT ("InterfaceDef::is_a (derived class): %hd\n"),
2314 ACE_TEST_ASSERT (is_it
== 0);
2316 CORBA::InterfaceDef::FullInterfaceDescription_var fifd
=
2317 p_ivar
->describe_interface ();
2319 CORBA::String_var str
= fifd
->type
->id ();
2323 ACE_DEBUG ((LM_DEBUG
,
2324 ACE_TEXT ("\nInterfaceDef::describe_interface::")
2325 ACE_TEXT ("type::id: %C\n"),
2329 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "IDL:p_iface:1.0") == 0);
2331 length
= fifd
->operations
.length ();
2335 ACE_DEBUG ((LM_DEBUG
,
2336 ACE_TEXT ("\nInterfaceDef::describe_interface::")
2337 ACE_TEXT ("operations::length: %d\n"),
2341 ACE_TEST_ASSERT (length
== 1);
2343 length
= fifd
->operations
[0].contexts
.length ();
2347 ACE_DEBUG ((LM_DEBUG
,
2348 ACE_TEXT ("\nInterfaceDef::describe_interface::")
2349 ACE_TEXT ("operations[3]::contexts::length: %d\n"),
2353 ACE_TEST_ASSERT (length
== 3);
2355 for (i
= 0; i
< length
; ++i
)
2357 tmp
= fifd
->operations
[0].contexts
[i
];
2361 ACE_DEBUG ((LM_DEBUG
,
2362 ACE_TEXT ("InterfaceDef::describe_interface::")
2363 ACE_TEXT ("operations[0]::contexts[%d]: %C\n"),
2368 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, contexts
[i
]) == 0);
2371 length
= fifd
->operations
[0].exceptions
.length ();
2375 ACE_DEBUG ((LM_DEBUG
,
2376 ACE_TEXT ("\nInterfaceDef::describe_interface::")
2377 ACE_TEXT ("operations[0]::exceptions::length: %d\n"),
2381 ACE_TEST_ASSERT (length
== 1);
2383 for (i
= 0; i
< length
; ++i
)
2385 const char *tmp
= fifd
->operations
[0].exceptions
[i
].name
;
2389 ACE_DEBUG ((LM_DEBUG
,
2390 ACE_TEXT ("InterfaceDef::describe::operations[3]::")
2391 ACE_TEXT ("contexts[%d]: %C\n"),
2396 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, "if_exception") == 0);
2399 tmp
= fifd
->attributes
[0].defined_in
;
2403 ACE_DEBUG ((LM_DEBUG
,
2404 ACE_TEXT ("\nInterfaceDef::describe_interface::")
2405 ACE_TEXT ("attributes::defined_in: %C\n"),
2409 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, "IDL:gp_iface:1.0") == 0);
2411 in_bases
[0] = CORBA::InterfaceDef::_duplicate (p_ivar
.in ());
2413 CORBA::InterfaceDef_var ivar
=
2414 this->repo_
->create_interface ("IDL:iface:1.0",
2419 desc
= ivar
->describe ();
2421 const CORBA::InterfaceDescription
*ifd
= 0;
2422 desc
->value
>>= ifd
;
2424 length
= ifd
->base_interfaces
.length ();
2428 ACE_DEBUG ((LM_DEBUG
,
2429 ACE_TEXT ("\nInterfaceDef::describe::")
2430 ACE_TEXT ("base_interfaces::length: %d\n"),
2434 ACE_TEST_ASSERT (length
== 2);
2436 const char *base_iface_id
= 0;
2438 for (i
= 0; i
< length
; ++i
)
2440 base_iface_id
= ifd
->base_interfaces
[i
];
2444 ACE_DEBUG ((LM_DEBUG
,
2445 ACE_TEXT ("InterfaceDef::describe::")
2446 ACE_TEXT ("base_interfaces[%d]: %C\n"),
2452 CORBA::InterfaceDefSeq_var out_bases
=
2453 ivar
->base_interfaces ();
2455 length
= out_bases
->length ();
2459 ACE_DEBUG ((LM_DEBUG
,
2460 ACE_TEXT ("\nInterfaceDef::base_interfaces::length: %d\n"),
2464 ACE_TEST_ASSERT (length
== 2);
2466 for (i
= 0; i
< length
; ++i
)
2468 str
= out_bases
[i
]->name ();
2474 ACE_TEXT ("InterfaceDef::base_interfaces[%d]::name: %C\n"),
2481 CORBA::ContainedSeq_var contents
= ivar
->contents (CORBA::dk_all
,
2484 length
= contents
->length ();
2488 ACE_DEBUG ((LM_DEBUG
,
2489 ACE_TEXT ("\nInterfaceDef::contents::length: %d\n"),
2493 ACE_TEST_ASSERT (length
== 3);
2495 for (i
= 0; i
< length
; ++i
)
2497 str
= contents
[i
]->name ();
2501 ACE_DEBUG ((LM_DEBUG
,
2502 ACE_TEXT ("InterfaceDef::contents[%d]::name: %C\n"),
2507 CORBA::Container_var cr
=
2508 contents
[i
]->defined_in ();
2510 CORBA::Contained_var cd
=
2511 CORBA::Contained::_narrow (cr
.in ());
2517 ACE_DEBUG ((LM_DEBUG
,
2518 ACE_TEXT ("InterfaceDef::contents[%d]::")
2519 ACE_TEXT ("defined_in::name: %C\n"),
2524 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "p_iface") == 0
2525 || ACE_OS::strcmp (str
.in (), "gp_iface") == 0);
2530 gp_ivar
->destroy ();
2535 Admin_Client::move_test ()
2541 ACE_TEXT ("\n============== MOVE TEST ==============\n\n")
2545 CORBA::EnumMemberSeq
e_members (2);
2546 e_members
.length (2);
2548 e_members
[0] = CORBA::string_dup ("ZERO");
2549 e_members
[1] = CORBA::string_dup ("ONE");
2551 CORBA::EnumDef_var e_var
=
2552 this->repo_
->create_enum ("IDL:o_enum:1.0",
2557 e_members
[0] = CORBA::string_dup ("TEN");
2558 e_members
[1] = CORBA::string_dup ("ELEVEN");
2560 CORBA::EnumDef_var e_var2
=
2561 this->repo_
->create_enum ("IDL:i_enum:1.0",
2566 CORBA::StructMemberSeq
s_members (2);
2567 s_members
.length (2);
2569 const char *s_names
[] = {"s_string", "s_enum"};
2571 s_members
[0].name
= s_names
[0];
2572 s_members
[0].type_def
=
2573 this->repo_
->get_primitive (CORBA::pk_string
);
2575 s_members
[0].type_def
->type ();
2577 s_members
[1].name
= s_names
[1];
2578 s_members
[1].type_def
= CORBA::EnumDef::_duplicate (e_var2
.in ());
2580 s_members
[1].type_def
->type ();
2582 CORBA::StructDef_var s_var
=
2583 this->repo_
->create_struct ("IDL:o_struct:1.0",
2588 CORBA::UnionMemberSeq
u_members (2);
2589 u_members
.length (2);
2591 const char *u_names
[] = {"u_enum", "u_struct"};
2593 u_members
[0].name
= u_names
[0];
2594 u_members
[0].type_def
= CORBA::EnumDef::_duplicate (e_var
.in ());
2595 u_members
[0].type
= e_var
->type ();
2596 CORBA::Long label
= 0;
2599 u_members
[0].label
= any
;
2601 u_members
[1].name
= u_names
[1];
2602 u_members
[1].type_def
= CORBA::StructDef::_duplicate (s_var
.in ());
2603 u_members
[1].type
= s_var
->type ();
2606 u_members
[1].label
= any
;
2608 CORBA::PrimitiveDef_var d_var
=
2609 this->repo_
->get_primitive (CORBA::pk_long
);
2611 CORBA::UnionDef_var u_var
=
2612 this->repo_
->create_union ("IDL:the_union:1.0",
2618 CORBA::UnionMemberSeq_var out_u_members
=
2621 CORBA::ULong length
= out_u_members
->length ();
2625 ACE_DEBUG ((LM_DEBUG
,
2626 ACE_TEXT ("UnionDef::members::length: %d\n"),
2630 ACE_TEST_ASSERT (length
== 2);
2633 const char *tmp
= 0;
2635 for (i
= 0; i
< length
; ++i
)
2637 tmp
= out_u_members
[i
].name
;
2641 ACE_DEBUG ((LM_DEBUG
,
2642 ACE_TEXT ("UnionDef::members[%d]::name: %C\n"),
2647 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, u_members
[i
].name
) == 0);
2650 CORBA::ContainedSeq_var out_contents
=
2651 u_var
->contents (CORBA::dk_all
,
2654 length
= out_contents
->length ();
2658 ACE_DEBUG ((LM_DEBUG
,
2659 ACE_TEXT ("\nUnionDef::contents::length: %d\n"),
2663 ACE_TEST_ASSERT (length
== 0);
2665 e_var
->move (u_var
.in (),
2671 ACE_DEBUG ((LM_DEBUG
,
2672 ACE_TEXT ("\nEnumDef::move (into union)\n")));
2675 out_u_members
= u_var
->members ();
2677 length
= out_u_members
->length ();
2681 ACE_DEBUG ((LM_DEBUG
,
2682 ACE_TEXT ("\nUnionDef::members::length: %d\n"),
2686 ACE_TEST_ASSERT (length
== 2);
2688 for (i
= 0; i
< length
; ++i
)
2690 tmp
= out_u_members
[i
].name
;
2694 ACE_DEBUG ((LM_DEBUG
,
2695 ACE_TEXT ("UnionDef::members[%d]::name: %C\n"),
2702 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, "u_enum") == 0);
2706 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, u_members
[i
].name
) == 0);
2710 out_contents
= u_var
->contents (CORBA::dk_all
,
2713 length
= out_contents
->length ();
2717 ACE_DEBUG ((LM_DEBUG
,
2718 ACE_TEXT ("\nUnionDef::contents::length: %d\n"),
2722 ACE_TEST_ASSERT (length
== 1);
2724 CORBA::String_var str
;
2726 for (i
= 0; i
< length
; ++i
)
2728 str
= out_contents
[i
]->absolute_name ();
2734 ACE_TEXT ("UnionDef::contents[%d]::absolute_name: %C\n"),
2742 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::the_union::u_enum") == 0);
2746 e_var2
->move (s_var
.in (),
2750 s_var
->move (u_var
.in (),
2756 ACE_DEBUG ((LM_DEBUG
,
2757 ACE_TEXT ("\nEnumDef::move (into struct)\n")
2758 ACE_TEXT ("StructDef::move (into union)\n")));
2761 out_contents
= this->repo_
->contents (CORBA::dk_all
,
2764 length
= out_contents
->length ();
2768 ACE_DEBUG ((LM_DEBUG
,
2769 ACE_TEXT ("\nRepository::contents::length: %d\n"),
2773 ACE_TEST_ASSERT (length
== 1);
2775 out_u_members
= u_var
->members ();
2777 length
= out_u_members
->length ();
2781 ACE_DEBUG ((LM_DEBUG
,
2782 ACE_TEXT ("\nUnionDef::members::length: %d\n"),
2786 ACE_TEST_ASSERT (length
== 2);
2788 for (i
= 0; i
< length
; ++i
)
2790 tmp
= out_u_members
[i
].name
;
2794 ACE_DEBUG ((LM_DEBUG
,
2795 ACE_TEXT ("UnionDef::members[%d]::name: %C\n"),
2800 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, u_names
[i
]) == 0);
2803 out_contents
= u_var
->contents (CORBA::dk_all
,
2806 length
= out_contents
->length ();
2810 ACE_DEBUG ((LM_DEBUG
,
2811 ACE_TEXT ("\nUnionDef::contents::length: %d\n"),
2815 ACE_TEST_ASSERT (length
== 2);
2817 ACE_CString
scoped ("::the_union::");
2818 CORBA::StructDef_var s_tmp
;
2821 for (i
= 0; i
< length
; ++i
)
2823 str
= out_contents
[i
]->absolute_name ();
2827 ACE_DEBUG ((LM_DEBUG
,
2828 ACE_TEXT ("UnionDef::contents[%d]::absolute_name: %C\n"),
2834 ACE_OS::strcmp (str
.in (), (scoped
+ u_names
[i
]).c_str ());
2836 ACE_TEST_ASSERT (cmp_result
== 0);
2840 s_tmp
= CORBA::StructDef::_narrow (out_contents
[i
]);
2844 out_contents
= s_tmp
->contents (CORBA::dk_all
,
2847 length
= out_contents
->length ();
2851 ACE_DEBUG ((LM_DEBUG
,
2852 ACE_TEXT ("\nStructDef::contents::length: %d\n"),
2856 ACE_TEST_ASSERT (length
== 1);
2858 const char *base
= "::the_union::u_struct";
2860 for (i
= 0; i
< length
; ++i
)
2862 str
= out_contents
[i
]->absolute_name ();
2866 ACE_DEBUG ((LM_DEBUG
,
2867 ACE_TEXT ("StructDef::contents[%d]::absolute_name: %C\n"),
2873 ACE_OS::strncmp (str
.in (), base
, ACE_OS::strlen (base
));
2875 ACE_TEST_ASSERT (cmp_result
== 0);
2878 #if defined (ACE_NDEBUG)
2879 // ACE_TEST_ASSERT macro expands to nothing, so...
2880 ACE_UNUSED_ARG (base
);
2881 #endif /* ACE_NDEBUG */
2883 CORBA::StructMemberSeq_var out_s_members
=
2886 length
= out_s_members
->length ();
2890 ACE_DEBUG ((LM_DEBUG
,
2891 ACE_TEXT ("\nStructDef::members::length: %d\n"),
2895 ACE_TEST_ASSERT (length
== 2);
2897 for (i
= 0; i
< length
; ++i
)
2899 tmp
= out_s_members
[i
].name
;
2903 ACE_DEBUG ((LM_DEBUG
,
2904 ACE_TEXT ("StructDef::members[%d]::name: %C\n"),
2909 ACE_TEST_ASSERT (ACE_OS::strcmp (tmp
, s_names
[i
]) == 0);
2916 Admin_Client::module_test ()
2922 ACE_TEXT ("\n============== MODULE TEST ==============\n\n")
2926 CORBA::ModuleDef_var outer
=
2927 this->repo_
->create_module ("IDL:outer:1.0",
2931 CORBA::ModuleDef_var middle
=
2932 outer
->create_module ("IDL:outer/middle:1.0",
2936 CORBA::ModuleDef_var inner
=
2937 middle
->create_module ("IDL:outer/middle/inner:1.0",
2941 CORBA::InterfaceDefSeq
in_bases (1);
2942 in_bases
.length (0);
2944 CORBA::InterfaceDef_var p_iface
=
2945 outer
->create_interface ("IDL:p_iface:1.0",
2950 in_bases
.length (1);
2951 in_bases
[0] = CORBA::InterfaceDef::_duplicate (p_iface
.in ());
2953 CORBA::InterfaceDef_var iface
=
2954 inner
->create_interface ("IDL:iface:1.0",
2959 CORBA::PrimitiveDef_var p_void
=
2960 this->repo_
->get_primitive (CORBA::pk_void
);
2961 CORBA::PrimitiveDef_var p_long
=
2962 this->repo_
->get_primitive (CORBA::pk_long
);
2964 CORBA::AttributeDef_var attr
=
2965 p_iface
->create_attribute ("IDL:iface/attr:1.0",
2969 CORBA::ATTR_NORMAL
);
2971 CORBA::ULong length
= 3;
2974 CORBA::ParDescriptionSeq
par_seq (length
);
2975 par_seq
.length (length
);
2977 CORBA::ContextIdSeq
con_seq (length
);
2978 con_seq
.length (length
);
2980 const char *p_names
[] = {"inarg", "outarg", "inoutarg"};
2981 const char *contexts
[] = {"straw", "sticks", "bricks"};
2983 for (i
= 0; i
< length
; ++i
)
2985 par_seq
[i
].name
= p_names
[i
];
2986 par_seq
[i
].type_def
= CORBA::PrimitiveDef::_duplicate (p_long
.in ());
2987 par_seq
[i
].type
= p_long
->type ();
2988 par_seq
[i
].mode
= static_cast<CORBA::ParameterMode
> (i
);
2990 con_seq
[i
] = contexts
[i
];
2993 CORBA::StructMemberSeq
members (0);
2996 CORBA::ExceptionDef_var ex_var
=
2997 this->repo_
->create_exception ("IDL:if_exception:1.0",
3002 CORBA::ExceptionDefSeq
get_seq (1);
3004 get_seq
[0] = CORBA::ExceptionDef::_duplicate (ex_var
.in ());
3006 CORBA::OperationDef_var op
=
3007 iface
->create_operation ("IDL:iface/op:1.0",
3016 CORBA::String_var str
;
3018 CORBA::Contained_var result
=
3019 inner
->lookup ("::outer::middle::inner::iface::op");
3021 str
= result
->absolute_name ();
3027 ACE_TEXT ("ModuleDef::lookup (absolute)::absolute_name: %C\n"),
3033 ACE_OS::strcmp (str
.in (), "::outer::middle::inner::iface::op");
3035 ACE_TEST_ASSERT (cmp_result
== 0);
3037 result
= middle
->lookup ("inner::iface::op");
3039 str
= result
->absolute_name ();
3045 ACE_TEXT ("ModuleDef::lookup (relative)::absolute_name: %C\n"),
3051 ACE_OS::strcmp (str
.in (), "::outer::middle::inner::iface::op");
3053 ACE_TEST_ASSERT (cmp_result
== 0);
3055 CORBA::ContainedSeq_var cseq
=
3056 this->repo_
->lookup_name ("op",
3061 length
= cseq
->length ();
3065 ACE_DEBUG ((LM_DEBUG
,
3066 ACE_TEXT ("Repository::lookup_name::length: %d\n"),
3070 ACE_TEST_ASSERT (length
== 1);
3072 for (i
= 0; i
< length
; ++i
)
3074 str
= cseq
[i
]->absolute_name ();
3080 ACE_TEXT ("Repository::lookup_name[%d]::absolute_name: %C\n"),
3087 ACE_OS::strcmp (str
.in (), "::outer::middle::inner::iface::op");
3089 ACE_TEST_ASSERT (cmp_result
== 0);
3092 cseq
= middle
->lookup_name ("attr",
3094 CORBA::dk_Attribute
,
3097 length
= cseq
->length ();
3101 ACE_DEBUG ((LM_DEBUG
,
3102 ACE_TEXT ("Repository::lookup_name::length: %d\n"),
3106 ACE_TEST_ASSERT (length
== 1);
3108 for (i
= 0; i
< length
; ++i
)
3110 str
= cseq
[i
]->absolute_name ();
3116 ACE_TEXT ("Repository::lookup_name[%d]::absolute_name: %C\n"),
3122 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::outer::p_iface::attr") == 0);
3125 iface
->move (outer
.in (),
3131 ACE_DEBUG ((LM_DEBUG
,
3132 ACE_TEXT ("\nInterfaceDef::move (into outer module)\n")));
3135 cseq
= this->repo_
->lookup_name ("op",
3140 length
= cseq
->length ();
3144 ACE_DEBUG ((LM_DEBUG
,
3145 ACE_TEXT ("Repository::lookup_name::length: %d\n"),
3149 ACE_TEST_ASSERT (length
== 1);
3151 for (i
= 0; i
< length
; ++i
)
3153 str
= cseq
[i
]->absolute_name ();
3159 ACE_TEXT ("Repository::lookup_name[%d]::absolute_name: %C\n"),
3165 ACE_TEST_ASSERT (ACE_OS::strcmp (str
.in (), "::outer::iface::op") == 0);