diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-12-17 19:41:03 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-12-17 19:41:03 +0000 |
commit | b435f41ae8fb8619c49b8b6ed052e717b498c01d (patch) | |
tree | d1380f1a55ce3dd1615a257b84838dfa745f6579 | |
parent | 81f485dded8fb51eb9e7a153b1950feca96951a1 (diff) | |
download | ATCD-b435f41ae8fb8619c49b8b6ed052e717b498c01d.tar.gz |
ChangeLogTag: Thu Dec 17 19:37:41 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | modules/CIAO/ChangeLog | 11 | ||||
-rw-r--r-- | modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.idl | 118 | ||||
-rw-r--r-- | modules/CIAO/tests/IDL_Test/IDL3_Plus/KitchenSink.mpc | 107 |
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 + } +} |