summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-12-17 19:41:03 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-12-17 19:41:03 +0000
commitb435f41ae8fb8619c49b8b6ed052e717b498c01d (patch)
treed1380f1a55ce3dd1615a257b84838dfa745f6579
parent81f485dded8fb51eb9e7a153b1950feca96951a1 (diff)
downloadATCD-b435f41ae8fb8619c49b8b6ed052e717b498c01d.tar.gz
ChangeLogTag: Thu Dec 17 19:37:41 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--modules/CIAO/ChangeLog11
-rw-r--r--modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.idl118
-rw-r--r--modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.mpc107
3 files changed, 236 insertions, 0 deletions
diff --git a/modules/CIAO/ChangeLog b/modules/CIAO/ChangeLog
index 63d8c0bfaf9..3ba090af1ed 100644
--- a/modules/CIAO/ChangeLog
+++ b/modules/CIAO/ChangeLog
@@ -1,3 +1,14 @@
+Thu Dec 17 19:37:41 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/IDL3_Plus/KitchenSink.mpc:
+ * tests/IDL_Test/IDL3_Plus/KitchenSink.idl:
+
+ New test in new directory (IDL3_Plus) to test IDL3+
+ constructs, specifically template-related ones.
+ TAO_IDL supports IDL3+ only in the front
+ end currently, this test will be more meaningful as
+ back end support is added.
+
Mon Nov 23 20:39:24 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
* tools/IDL3_to_IDL2/checking_visitor.h:
diff --git a/modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.idl b/modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.idl
new file mode 100644
index 00000000000..3b0b7b4cda0
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.idl
@@ -0,0 +1,118 @@
+// $Id$
+/**
+ * @file KitchenSink.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests TAO_IDL generation of CIAO servant, executor IDL
+ * and executor implementation stencil for a variety of
+ * IDL3+ constructs.
+ */
+
+#include <Components.idl>
+
+module mod
+{
+ valuetype future_key : Components::PrimaryKeyBase
+ {
+ public string info;
+ };
+};
+
+interface iface
+{
+ exception iface_excep {};
+};
+
+eventtype ev
+{
+};
+
+typedef sequence<iface> ifaceSeq;
+
+module second<exception X, typename W>
+{
+ typedef short sho;
+
+ valuetype pkey : Components::PrimaryKeyBase
+ {
+ public long id_key;
+ };
+};
+
+module Ast<typename T,
+ eventtype E,
+ exception S,
+ valuetype V,
+ sequence<T> TSeq,
+ const unsigned long M>
+{
+ interface Foo : T
+ {
+ attribute T Foo_Attr;
+
+ void Foo_Op (in TSeq inarg) raises (S);
+ };
+
+ alias second<T, S> second_ref;
+
+ valuetype VT_T : V supports T
+ {
+ };
+
+ porttype PT_T
+ {
+ provides iface iface_facet;
+ uses multiple T T_Recep;
+ };
+
+ component Comp_T
+ {
+ uses multiple T Comp_T_Recep;
+ mirrorport PT_T Comp_T_Mirror_Port;
+ provides T Comp_T_Facet;
+ emits E Comp_T_Emit;
+
+ // Tests unique lookup mechanism for types referenced
+ // from an aliased template module.
+ attribute second_ref::sho sho_attr;
+ };
+
+ home Comp_T_Home manages Comp_T primarykey second_ref::pkey
+ {
+ factory create_Comp_T (in TSeq inarg);
+ finder find_Comp_T (in T inarg);
+ };
+
+ // TAO IDL compiler uses the same code for both component
+ // and home 'supports' constructs, so we test it here
+ // where there is no conflict with the port interfaces.
+ home Comp_T_Home_2 supports T manages Comp_T primarykey V
+ {
+ };
+
+ connector Conn_T
+ {
+ port PT_T Conn_T_Port;
+ provides T Conn_T_Facet;
+ };
+
+ const unsigned long Ast_Const = M;
+ const unsigned long LC = 7;
+ typedef sequence<T, M> AnotherTSeq;
+
+ struct boo
+ {
+ T T_field;
+ };
+
+ typedef T T_array[M][Ast_Const][LC];
+};
+
+module Ast<iface,
+ ev,
+ iface::iface_excep,
+ mod::future_key,
+ ifaceSeq,
+ 101>
+ Ast_Inst;
+
diff --git a/modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.mpc b/modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.mpc
new file mode 100644
index 00000000000..c957432b52c
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.mpc
@@ -0,0 +1,107 @@
+// $Id$
+
+project(KitchenSink_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Gex \
+ -Wb,stub_export_macro=KITCHENSINK_STUB_Export \
+ -Wb,stub_export_include=KitchenSink_stub_export.h \
+ -Wb,skel_export_macro=KITCHENSINK_SVNT_Export \
+ -Wb,skel_export_include=KitchenSink_svnt_export.h \
+ -Wb,svnt_export_macro=KITCHENSINK_SVNT_Export \
+ -Wb,svnt_export_include=KitchenSink_svnt_export.h \
+ -Wb,exec_export_macro=KITCHENSINK_EXEC_Export \
+ -Wb,exec_export_include=KitchenSink_exec_export.h
+
+ IDL_Files {
+ KitchenSink.idl
+ }
+}
+
+project(KitchenSink_lem_gen) : ciaoidldefaults {
+ after += KitchenSink_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=KITCHENSINK_EXEC_Export \
+ -Wb,export_include=KitchenSink_exec_export.h \
+ -SS
+
+ IDL_Files {
+ KitchenSinkE.idl
+ }
+}
+
+project(KitchenSink_stub) : ccm_stub {
+ after += KitchenSink_idl_gen
+
+ sharedname = KitchenSink_stub
+ dynamicflags = KITCHENSINK_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ KitchenSinkC.cpp
+ }
+
+ Header_Files {
+ KitchenSinkC.h
+ KitchenSink_stub_export.h
+ }
+
+ Inline_Files {
+ KitchenSinkC.inl
+ }
+}
+
+project(KitchenSink_exec) : ciao_executor {
+ after += KitchenSink_lem_gen KitchenSink_stub
+ sharedname = KitchenSink_exec
+ libs += KitchenSink_stub
+
+ dynamicflags = KITCHENSINK_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ KitchenSinkEC.cpp
+ KitchenSink_exec.cpp
+ }
+
+ Header_Files {
+ KitchenSinkEC.h
+ KitchenSink_exec.h
+ KitchenSink_exec_export.h
+ }
+
+ Inline_Files {
+ KitchenSinkEC.inl
+ }
+}
+
+
+project(KitchenSink_svnt) : ciao_servant {
+ after += KitchenSink_exec
+ sharedname = KitchenSink_svnt
+ libs += KitchenSink_exec \
+ KitchenSink_stub
+
+ dynamicflags = KITCHENSINK_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ KitchenSinkS.cpp
+ KitchenSink_svnt.cpp
+ }
+
+ Header_Files {
+ KitchenSinkS.h
+ KitchenSink_svnt.h
+ KitchenSink_svnt_export.h
+ }
+
+ Inline_Files {
+ KitchenSinkS.inl
+ }
+}