r2corba 1.5.1-universal-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/LICENSE.jacorb +660 -0
  5. data/README +62 -0
  6. data/THANKS +54 -0
  7. data/bin/r2corba +8 -0
  8. data/bin/r2corba.bat +20 -0
  9. data/bin/ridlc +11 -0
  10. data/bin/ridlc.bat +23 -0
  11. data/bin/rins +7 -0
  12. data/bin/rins.bat +19 -0
  13. data/jacorb/lib/antlr-2.7.2.jar +0 -0
  14. data/jacorb/lib/jacorb-3.5.jar +0 -0
  15. data/jacorb/lib/jacorb-omgapi-3.5.jar +0 -0
  16. data/jacorb/lib/jacorb-services-3.5.jar +0 -0
  17. data/jacorb/lib/slf4j-api-1.7.6.jar +0 -0
  18. data/jacorb/lib/slf4j-jdk14-1.7.6.jar +0 -0
  19. data/lib/corba.rb +16 -0
  20. data/lib/corba/cbase/IORMap.rb +33 -0
  21. data/lib/corba/cbase/ORB.rb +237 -0
  22. data/lib/corba/cbase/Request.rb +134 -0
  23. data/lib/corba/cbase/Streams.rb +129 -0
  24. data/lib/corba/cbase/Stub.rb +19 -0
  25. data/lib/corba/cbase/Typecode.rb +441 -0
  26. data/lib/corba/cbase/Values.rb +129 -0
  27. data/lib/corba/cbase/exception.rb +66 -0
  28. data/lib/corba/cbase/poa.rb +23 -0
  29. data/lib/corba/cbase/policies.rb +78 -0
  30. data/lib/corba/cbase/post_require.rb +14 -0
  31. data/lib/corba/cbase/require.rb +28 -0
  32. data/lib/corba/cmds/base.rb +85 -0
  33. data/lib/corba/cmds/test.rb +30 -0
  34. data/lib/corba/common/Any.rb +91 -0
  35. data/lib/corba/common/IDL.rb +104 -0
  36. data/lib/corba/common/ORB.rb +368 -0
  37. data/lib/corba/common/Object.rb +208 -0
  38. data/lib/corba/common/Request.rb +20 -0
  39. data/lib/corba/common/Servant.rb +108 -0
  40. data/lib/corba/common/Struct.rb +22 -0
  41. data/lib/corba/common/Stub.rb +79 -0
  42. data/lib/corba/common/Typecode.rb +1121 -0
  43. data/lib/corba/common/Union.rb +56 -0
  44. data/lib/corba/common/Values.rb +92 -0
  45. data/lib/corba/common/const.rb +22 -0
  46. data/lib/corba/common/exception.rb +68 -0
  47. data/lib/corba/common/require.rb +27 -0
  48. data/lib/corba/common/version.rb +22 -0
  49. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  50. data/lib/corba/idl/CosNamingC.rb +461 -0
  51. data/lib/corba/idl/CosNamingS.rb +309 -0
  52. data/lib/corba/idl/IDL.rb +21 -0
  53. data/lib/corba/idl/IORTable.pidl +62 -0
  54. data/lib/corba/idl/MessagingC.rb +904 -0
  55. data/lib/corba/idl/POAC.rb +930 -0
  56. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  57. data/lib/corba/idl/r2c_orb.rb +572 -0
  58. data/lib/corba/idl/require.rb +20 -0
  59. data/lib/corba/jbase/Any.rb +273 -0
  60. data/lib/corba/jbase/IORMap.rb +36 -0
  61. data/lib/corba/jbase/ORB.rb +112 -0
  62. data/lib/corba/jbase/Object.rb +99 -0
  63. data/lib/corba/jbase/Request.rb +226 -0
  64. data/lib/corba/jbase/Servant.rb +248 -0
  65. data/lib/corba/jbase/ServerRequest.rb +128 -0
  66. data/lib/corba/jbase/Streams.rb +671 -0
  67. data/lib/corba/jbase/Stub.rb +38 -0
  68. data/lib/corba/jbase/Typecode.rb +520 -0
  69. data/lib/corba/jbase/Values.rb +173 -0
  70. data/lib/corba/jbase/exception.rb +106 -0
  71. data/lib/corba/jbase/poa.rb +229 -0
  72. data/lib/corba/jbase/policies.rb +300 -0
  73. data/lib/corba/jbase/post_require.rb +14 -0
  74. data/lib/corba/jbase/require.rb +89 -0
  75. data/lib/corba/naming.rb +14 -0
  76. data/lib/corba/naming_service.rb +15 -0
  77. data/lib/corba/poa.rb +15 -0
  78. data/lib/corba/policies.rb +18 -0
  79. data/lib/corba/require.rb +17 -0
  80. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  81. data/lib/corba/svcs/ins/ins.rb +526 -0
  82. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  83. data/lib/ridlbe/ruby/config.rb +336 -0
  84. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  85. data/lib/ridlbe/ruby/require.rb +16 -0
  86. data/lib/ridlbe/ruby/walker.rb +1582 -0
  87. data/mkrf_conf_bingem.rb +151 -0
  88. data/rakelib/bin.rake +80 -0
  89. data/rakelib/bin.rb +146 -0
  90. data/rakelib/build.rake +87 -0
  91. data/rakelib/config.rake +52 -0
  92. data/rakelib/config.rb +544 -0
  93. data/rakelib/gem.rake +236 -0
  94. data/rakelib/gem.rb +146 -0
  95. data/rakelib/package.rake +26 -0
  96. data/rakelib/test.rake +23 -0
  97. data/test/BiDirectional/Test.idl +34 -0
  98. data/test/BiDirectional/client.rb +132 -0
  99. data/test/BiDirectional/run_test.rb +68 -0
  100. data/test/BiDirectional/server.ior +1 -0
  101. data/test/BiDirectional/server.rb +169 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  105. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  106. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  107. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  108. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  109. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  110. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  111. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  112. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  113. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  114. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  115. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  116. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  117. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  118. data/test/Collocation/Diamond.idl +39 -0
  119. data/test/Collocation/run_test.rb +52 -0
  120. data/test/Collocation/test.rb +195 -0
  121. data/test/Connect_Timeout/Test.idl +27 -0
  122. data/test/Connect_Timeout/client.rb +111 -0
  123. data/test/Connect_Timeout/run_test.rb +52 -0
  124. data/test/DII/Test.idl +27 -0
  125. data/test/DII/client.rb +115 -0
  126. data/test/DII/run_test.rb +69 -0
  127. data/test/DII/server.ior +1 -0
  128. data/test/DII/server.rb +95 -0
  129. data/test/DSI/Test.idl +27 -0
  130. data/test/DSI/client.rb +66 -0
  131. data/test/DSI/run_test.rb +69 -0
  132. data/test/DSI/server.ior +1 -0
  133. data/test/DSI/server.rb +106 -0
  134. data/test/Exceptions/Test.idl +48 -0
  135. data/test/Exceptions/client.rb +118 -0
  136. data/test/Exceptions/run_test.rb +69 -0
  137. data/test/Exceptions/server.ior +1 -0
  138. data/test/Exceptions/server.rb +131 -0
  139. data/test/Hello/Test.idl +27 -0
  140. data/test/Hello/client.rb +78 -0
  141. data/test/Hello/gateway.ior +1 -0
  142. data/test/Hello/run_test.rb +71 -0
  143. data/test/Hello/server.rb +95 -0
  144. data/test/IDL_Test/Test.idl +113 -0
  145. data/test/IDL_Test/Test_inc.idl +17 -0
  146. data/test/IDL_Test/client.rb +102 -0
  147. data/test/IDL_Test/run_test.rb +69 -0
  148. data/test/IDL_Test/server.ior +1 -0
  149. data/test/IDL_Test/server.rb +99 -0
  150. data/test/IORMap/Test.idl +27 -0
  151. data/test/IORMap/client.rb +73 -0
  152. data/test/IORMap/run_test.rb +69 -0
  153. data/test/IORMap/server.ior +1 -0
  154. data/test/IORMap/server.rb +114 -0
  155. data/test/IORTable/Test.idl +27 -0
  156. data/test/IORTable/client.rb +75 -0
  157. data/test/IORTable/run_test.rb +69 -0
  158. data/test/IORTable/server.ior +0 -0
  159. data/test/IORTable/server.rb +130 -0
  160. data/test/Implicit_Conversion/Test.idl +31 -0
  161. data/test/Implicit_Conversion/client.rb +110 -0
  162. data/test/Implicit_Conversion/run_test.rb +69 -0
  163. data/test/Implicit_Conversion/server.ior +1 -0
  164. data/test/Implicit_Conversion/server.rb +99 -0
  165. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  166. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  167. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  168. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  169. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  170. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  171. data/test/Multi_Threading/Simple/Test.idl +27 -0
  172. data/test/Multi_Threading/Simple/client.rb +93 -0
  173. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  174. data/test/Multi_Threading/Simple/server.ior +1 -0
  175. data/test/Multi_Threading/Simple/server.rb +118 -0
  176. data/test/Multi_Threading/Threads/Test.idl +31 -0
  177. data/test/Multi_Threading/Threads/client.rb +80 -0
  178. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  179. data/test/Multi_Threading/Threads/server.ior +1 -0
  180. data/test/Multi_Threading/Threads/server.rb +119 -0
  181. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  182. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  183. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  184. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  185. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  186. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  187. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  188. data/test/Nil/Test.idl +27 -0
  189. data/test/Nil/run_test.rb +52 -0
  190. data/test/Nil/test.rb +78 -0
  191. data/test/OBV/AbstractInterface/client.rb +179 -0
  192. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  193. data/test/OBV/AbstractInterface/server.ior +1 -0
  194. data/test/OBV/AbstractInterface/server.rb +149 -0
  195. data/test/OBV/AbstractInterface/test.idl +53 -0
  196. data/test/OBV/Custom/OBV.idl +18 -0
  197. data/test/OBV/Custom/OBV_impl.rb +40 -0
  198. data/test/OBV/Custom/client.rb +86 -0
  199. data/test/OBV/Custom/run_test.rb +69 -0
  200. data/test/OBV/Custom/server.ior +1 -0
  201. data/test/OBV/Custom/server.rb +100 -0
  202. data/test/OBV/Simple/OBV.idl +15 -0
  203. data/test/OBV/Simple/OBV_impl.rb +26 -0
  204. data/test/OBV/Simple/client.rb +86 -0
  205. data/test/OBV/Simple/run_test.rb +69 -0
  206. data/test/OBV/Simple/server.ior +1 -0
  207. data/test/OBV/Simple/server.rb +100 -0
  208. data/test/OBV/Simple_Event/Event.idl +15 -0
  209. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  210. data/test/OBV/Simple_Event/client.rb +86 -0
  211. data/test/OBV/Simple_Event/run_test.rb +69 -0
  212. data/test/OBV/Simple_Event/server.ior +1 -0
  213. data/test/OBV/Simple_Event/server.rb +100 -0
  214. data/test/OBV/Supports/client.rb +116 -0
  215. data/test/OBV/Supports/run_test.rb +69 -0
  216. data/test/OBV/Supports/server.ior +1 -0
  217. data/test/OBV/Supports/server.rb +103 -0
  218. data/test/OBV/Supports/supports.idl +33 -0
  219. data/test/OBV/Supports/supports_impl.rb +57 -0
  220. data/test/OBV/Tree/client.rb +116 -0
  221. data/test/OBV/Tree/run_test.rb +69 -0
  222. data/test/OBV/Tree/server.ior +1 -0
  223. data/test/OBV/Tree/server.rb +117 -0
  224. data/test/OBV/Tree/test.idl +32 -0
  225. data/test/OBV/Truncatable/Extra.idl +27 -0
  226. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  227. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  228. data/test/OBV/Truncatable/client.rb +279 -0
  229. data/test/OBV/Truncatable/run_test.rb +69 -0
  230. data/test/OBV/Truncatable/server.ior +1 -0
  231. data/test/OBV/Truncatable/server.rb +89 -0
  232. data/test/OBV/ValueBox/client.rb +497 -0
  233. data/test/OBV/ValueBox/run_test.rb +69 -0
  234. data/test/OBV/ValueBox/server.ior +1 -0
  235. data/test/OBV/ValueBox/server.rb +271 -0
  236. data/test/OBV/ValueBox/valuebox.idl +101 -0
  237. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  238. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  239. data/test/OBV/ValueBox/vb_union.idl +21 -0
  240. data/test/Object/Test.idl +27 -0
  241. data/test/Object/client.rb +112 -0
  242. data/test/Object/run_test.rb +69 -0
  243. data/test/Object/server.ior +1 -0
  244. data/test/Object/server.rb +126 -0
  245. data/test/POA/Test.idl +27 -0
  246. data/test/POA/run_test.rb +52 -0
  247. data/test/POA/test.rb +112 -0
  248. data/test/Param_Test/Test.idl +182 -0
  249. data/test/Param_Test/client.rb +277 -0
  250. data/test/Param_Test/run_test.rb +69 -0
  251. data/test/Param_Test/server.ior +1 -0
  252. data/test/Param_Test/server.rb +296 -0
  253. data/test/Performance/Simple/Test.idl +27 -0
  254. data/test/Performance/Simple/client.rb +90 -0
  255. data/test/Performance/Simple/run_test.rb +69 -0
  256. data/test/Performance/Simple/server.ior +1 -0
  257. data/test/Performance/Simple/server.rb +95 -0
  258. data/test/Policies/Test.idl +27 -0
  259. data/test/Policies/run_test.rb +52 -0
  260. data/test/Policies/test.rb +144 -0
  261. data/test/Timeout/client.rb +207 -0
  262. data/test/Timeout/run_test.rb +69 -0
  263. data/test/Timeout/server.ior +1 -0
  264. data/test/Timeout/server.rb +109 -0
  265. data/test/Timeout/test.idl +19 -0
  266. data/test/lib/assert.rb +43 -0
  267. data/test/lib/test.rb +542 -0
  268. data/test/test.log +20 -0
  269. data/test/test2.log +5000 -0
  270. data/test/test_runner.rb +193 -0
  271. metadata +349 -0
@@ -0,0 +1,32 @@
1
+ /*--------------------------------------------------------------------
2
+ * Author: Martin Corino
3
+ *
4
+ * This program is free software; you can redistribute it and/or
5
+ * modify it under the terms of the R2CORBA LICENSE which is
6
+ * included with this program.
7
+ *
8
+ * Copyright (c) Remedy IT Expertise BV
9
+ * Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ *--------------------------------------------------------------------*/
11
+
12
+ valuetype BaseNode
13
+ {
14
+ public BaseNode left;
15
+ public BaseNode right;
16
+ };
17
+
18
+ valuetype StringNode : BaseNode
19
+ {
20
+ public string name;
21
+ };
22
+
23
+ valuetype TreeController
24
+ {
25
+ public BaseNode root;
26
+ };
27
+
28
+ interface passer
29
+ {
30
+ void pass_tree (out TreeController outarg);
31
+ oneway void shutdown ();
32
+ };
@@ -0,0 +1,27 @@
1
+ /*--------------------------------------------------------------------
2
+ * Author: Martin Corino
3
+ *
4
+ * This program is free software; you can redistribute it and/or
5
+ * modify it under the terms of the R2CORBA LICENSE which is
6
+ * included with this program.
7
+ *
8
+ * Copyright (c) Remedy IT Expertise BV
9
+ * Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ *--------------------------------------------------------------------*/
11
+
12
+ // This file contains extra valuetypes which are unknown by the test
13
+ // server. We should be able to pass these values and have the server
14
+ // truncate them to the most derived known type.
15
+
16
+ #include "Truncatable.idl"
17
+
18
+ module OBV_TruncatableTest
19
+ {
20
+ //
21
+ // Base valuetype.
22
+ //
23
+ valuetype Extra1 : truncatable TValue1
24
+ {
25
+ public unsigned long edata1;
26
+ };
27
+ };
@@ -0,0 +1,105 @@
1
+ /*--------------------------------------------------------------------
2
+ * Author: Martin Corino
3
+ *
4
+ * This program is free software; you can redistribute it and/or
5
+ * modify it under the terms of the R2CORBA LICENSE which is
6
+ * included with this program.
7
+ *
8
+ * Copyright (c) Remedy IT Expertise BV
9
+ * Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ *--------------------------------------------------------------------*/
11
+
12
+ // This file contains few valuetypes to show and test truncatable feature of
13
+ // valuetype.
14
+
15
+ module OBV_TruncatableTest
16
+ {
17
+ // Base valuetype.
18
+ valuetype BaseValue
19
+ {
20
+ public unsigned long basic_data;
21
+ };
22
+
23
+ // Valuetype with one-level truncatable inheritence.
24
+ valuetype TValue1 : truncatable BaseValue
25
+ {
26
+ public unsigned long data1;
27
+ };
28
+
29
+ //
30
+ // Valuetype with multi-level truncatable inheritence.
31
+ //
32
+ valuetype TValue2 : truncatable TValue1
33
+ {
34
+ public unsigned long data2;
35
+ };
36
+
37
+ //
38
+ // Valuetype with multi-level inheritence, but not all truncatable.
39
+ //
40
+ valuetype TValue3 : TValue1
41
+ {
42
+ public unsigned long data3;
43
+ };
44
+
45
+ //
46
+ // An valuetype nested in a valuetype.
47
+ //
48
+ valuetype NestedValue
49
+ {
50
+ public long data;
51
+ };
52
+
53
+ //
54
+ // Truncatable valuetype with nested valuetype.
55
+ //
56
+ valuetype TValue4 : truncatable BaseValue
57
+ {
58
+ public NestedValue nv4;
59
+ public unsigned long data4;
60
+ };
61
+
62
+ //
63
+ // More complex truncatable valuetype.
64
+ //
65
+ valuetype TValue5 : truncatable TValue4
66
+ {
67
+ public string str1;
68
+ public unsigned long data5;
69
+ public NestedValue nv5;
70
+ public string str2;
71
+ };
72
+
73
+ //
74
+ // No data valuetype with truncatable parent.
75
+ valuetype TValue6 : truncatable BaseValue
76
+ {
77
+ };
78
+
79
+ //
80
+ // Interface to pass valuetypes.
81
+ //
82
+ interface Test
83
+ {
84
+
85
+ //NOTE: the "desc" parameter helps verify that truncated values are skipped properly.
86
+ // the output is "<id>: <input desc>"
87
+ void op1 (in string id, in BaseValue iv, out BaseValue ov, inout string desc);
88
+ void op2 (in TValue1 iv, in string id, out TValue1 ov, inout string desc);
89
+ void op3 (in string id, in TValue4 iv, out TValue4 ov, inout string desc);
90
+ BaseValue op4 (in string id,
91
+ in TValue1 iv1,
92
+ in short x,
93
+ in TValue4 iv2,
94
+ in TValue4 iv3,
95
+ in TValue1 iv4,
96
+ inout string desc);
97
+
98
+ void op5 (in any val, in string id, out TValue1 ov, inout string desc);
99
+
100
+ // Shutdown the romote ORB
101
+ oneway void shutdown ();
102
+
103
+ };
104
+
105
+ };
@@ -0,0 +1,86 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # This program is free software; you can redistribute it and/or
6
+ # modify it under the terms of the R2CORBA LICENSE which is
7
+ # included with this program.
8
+ #
9
+ # Copyright (c) Remedy IT Expertise BV
10
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
11
+ #--------------------------------------------------------------------
12
+
13
+ class Test_impl < POA::OBV_TruncatableTest::Test
14
+ def initialize(orb)
15
+ @orb_ = orb
16
+ end
17
+
18
+ def op1(id, iv, desc)
19
+ tmp = "#{id}: #{desc}"
20
+ desc = tmp
21
+
22
+ ov = ::OBV_TruncatableTest::BaseValue.new
23
+ ov.basic_data = iv.basic_data
24
+ [ov, desc]
25
+ end
26
+
27
+ def op2(iv, id, desc)
28
+ tmp = "#{id}: #{desc}"
29
+ desc = tmp
30
+
31
+ ov = ::OBV_TruncatableTest::TValue1.new
32
+ ov.basic_data = iv.basic_data
33
+ ov.data1 = iv.data1
34
+ [ov, desc]
35
+ end
36
+
37
+ def op3(id, iv, desc)
38
+ tmp = "#{id}: #{desc}"
39
+ desc = tmp
40
+
41
+ ov = ::OBV_TruncatableTest::TValue4.new
42
+ nv = ::OBV_TruncatableTest::NestedValue.new
43
+ nv.data = iv.nv4.data
44
+ ov.basic_data = iv.basic_data
45
+ ov.nv4 = nv
46
+ ov.data4 = iv.data4
47
+ [ov, desc]
48
+ end
49
+
50
+ def op4(id, iv1, x, iv2, iv3, iv4, desc)
51
+ tmp = "#{id}: #{desc}"
52
+ desc = tmp
53
+
54
+ ov = ::OBV_TruncatableTest::BaseValue.new
55
+
56
+ total = x * (iv1.basic_data + iv2.basic_data +
57
+ iv3.basic_data + iv4.basic_data)
58
+ ov.basic_data = total
59
+
60
+ [ov, desc]
61
+ end
62
+
63
+ def op5(val, id, desc)
64
+ ov = ::OBV_TruncatableTest::TValue1.new
65
+ iv = nil
66
+ target = CORBA::Any.value_for_any(val)
67
+ if (target.nil?)
68
+ STDERR.puts "server:Test_impl::op5 extract failed\n"
69
+ ov.basic_data = 101
70
+ ov.data1 = 10101
71
+ else
72
+ iv = target
73
+ tmp = "#{id}: #{desc}"
74
+ desc = tmp
75
+
76
+ ov.basic_data = iv.basic_data
77
+ ov.data1 = iv.data1
78
+ end
79
+ [ov, desc]
80
+ end
81
+
82
+ def shutdown()
83
+ @orb_.shutdown
84
+ end
85
+
86
+ end
@@ -0,0 +1,279 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # This program is free software; you can redistribute it and/or
6
+ # modify it under the terms of the R2CORBA LICENSE which is
7
+ # included with this program.
8
+ #
9
+ # Copyright (c) Remedy IT Expertise BV
10
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'optparse'
14
+ require 'lib/assert.rb'
15
+ include TestUtil::Assertions
16
+
17
+ OPTIONS = {
18
+ :use_implement => false,
19
+ :orb_debuglevel => 0,
20
+ :iorfile => 'file://server.ior'
21
+ }
22
+
23
+ ARGV.options do |opts|
24
+ script_name = File.basename($0)
25
+ opts.banner = "Usage: ruby #{script_name} [options]"
26
+
27
+ opts.separator ""
28
+
29
+ opts.on("--k IORFILE",
30
+ "Set IOR.",
31
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
32
+ opts.on("--d LVL",
33
+ "Set ORBDebugLevel value.",
34
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
35
+ opts.on("--use-implement",
36
+ "Load IDL through CORBA.implement() instead of precompiled code.",
37
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
38
+
39
+ opts.separator ""
40
+
41
+ opts.on("-h", "--help",
42
+ "Show this help message.") { puts opts; exit }
43
+
44
+ opts.parse!
45
+ end
46
+
47
+ if OPTIONS[:use_implement]
48
+ require 'corba'
49
+ CORBA.implement('Extra.idl', OPTIONS)
50
+ else
51
+ require 'ExtraC'
52
+ end
53
+
54
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
55
+
56
+ begin
57
+ # make sure valuetype factories are registered
58
+ OBV_TruncatableTest::BaseValueFactory.get_factory(orb)
59
+ OBV_TruncatableTest::TValue1Factory.get_factory(orb)
60
+ OBV_TruncatableTest::TValue2Factory.get_factory(orb)
61
+ OBV_TruncatableTest::TValue3Factory.get_factory(orb)
62
+ OBV_TruncatableTest::TValue4Factory.get_factory(orb)
63
+ OBV_TruncatableTest::TValue5Factory.get_factory(orb)
64
+ OBV_TruncatableTest::NestedValueFactory.get_factory(orb)
65
+
66
+ obj = orb.string_to_object(OPTIONS[:iorfile])
67
+
68
+ tester = OBV_TruncatableTest::Test._narrow(obj)
69
+
70
+ assert_not 'Object reference is nil.', CORBA::is_nil(tester)
71
+
72
+ if defined?(JRUBY_VERSION)
73
+ STDERR.puts "Skipping. Value type truncation currently not properly supported by JacORB!"
74
+ tester.shutdown
75
+ exit 0
76
+ end
77
+
78
+ # 1.
79
+ v1 = OBV_TruncatableTest::TValue1.new
80
+ v1.basic_data = 9
81
+ v1.data1 = 99
82
+
83
+ desc = "A<-tB, truncate B to A"
84
+ STDERR.print "Case 1: #{desc}: "
85
+
86
+ ov1, odesc = tester.op1("case1", v1, desc)
87
+
88
+ assert '\nERROR: tester.op1 desc FAILED', odesc == "case1: #{desc}"
89
+ assert '\nERROR: tester.op1 ov FAILED' , v1.basic_data == ov1.basic_data
90
+
91
+ STDERR.puts 'passed'
92
+
93
+ # 2.
94
+ v2 = OBV_TruncatableTest::TValue2.new
95
+ v2.basic_data = 9
96
+ v2.data1 = 99
97
+ v2.data2 = 99 * 2
98
+
99
+ desc = "A<-tB<-tC, truncate C to A"
100
+ STDERR.print "Case 2: #{desc}: "
101
+
102
+ ov2, odesc = tester.op1("case2", v2, desc)
103
+
104
+ assert '\nERROR: tester.op1 - 2 desc FAILED', odesc == "case2: #{desc}"
105
+ assert '\nERROR: tester.op1 - 2 ov FAILED' , v2.basic_data == ov2.basic_data
106
+ STDERR.puts 'passed'
107
+
108
+ desc = "A<-tB<-tC, truncate C to B"
109
+ STDERR.print "Case 2b: #{desc}: "
110
+
111
+ otv1, odesc = tester.op2(v2, "case2b", desc)
112
+
113
+ assert '\nERROR: tester.op2 - 2b desc FAILED', odesc == "case2b: #{desc}"
114
+ assert '\nERROR: tester.op2 - 2b otv1 FAILED' , v2.basic_data == otv1.basic_data
115
+ assert '\nERROR: tester.op2 - 2b otv1 FAILED' , v2.data1 == otv1.data1
116
+ STDERR.puts 'passed'
117
+
118
+ # 3.
119
+ itv1b = OBV_TruncatableTest::TValue1.new
120
+ itv1b.basic_data = 7
121
+ itv1b.data1 = 8
122
+
123
+ desc = "A<-tB, truncatable but no truncation"
124
+ STDERR.print "Case 3: #{desc}: "
125
+
126
+ otv1b, odesc = tester.op2(itv1b, "case3", desc)
127
+
128
+ assert '\nERROR: tester.op2 - 3 desc FAILED', odesc == "case3: #{desc}"
129
+ assert '\nERROR: tester.op2 - 3 otv1b FAILED' , itv1b.basic_data == otv1b.basic_data
130
+ assert '\nERROR: tester.op2 - 3 otv1b FAILED' , itv1b.data1 == otv1b.data1
131
+ STDERR.puts 'passed'
132
+
133
+ # 4.
134
+ v3 = OBV_TruncatableTest::TValue3.new
135
+ v3.basic_data = 9
136
+ v3.data1 = 99
137
+ v3.data3 = (99 * 3)
138
+
139
+ begin
140
+ desc = "A<-tB<-C, try truncate C to A, MARSHAL exception"
141
+ STDERR.print "Case 4: #{desc}: "
142
+ ov3, odesc = tester.op1("case4", v3, desc)
143
+ STDERR.puts 'failed'
144
+ rescue CORBA::MARSHAL
145
+ STDERR.puts 'passed'
146
+ end
147
+
148
+ # 5.
149
+ nv = OBV_TruncatableTest::NestedValue.new
150
+ nv.data = 2
151
+
152
+ v5 = OBV_TruncatableTest::TValue5.new
153
+
154
+ v5.basic_data = 9
155
+ v5.nv4 = nv
156
+ v5.data4 = (99 * 4)
157
+ v5.str1 = "str1"
158
+ v5.data5 = (99 * 5)
159
+ v5.nv5 = nv
160
+ v5.str2 = "str2"
161
+
162
+ desc = "A<-tB<-tC, B & C have nested value type, truncate C to A"
163
+ STDERR.print "Case 5: #{desc}: "
164
+ ov5, odesc = tester.op1("case5", v5, desc)
165
+
166
+ assert '\nERROR: tester.op1 - 5 desc FAILED', odesc == "case5: #{desc}"
167
+ assert '\nERROR: tester.op1 - 5 ov5 FAILED' , v5.basic_data == ov5.basic_data
168
+ STDERR.puts 'passed'
169
+
170
+ desc = "A<-tB<-tC, B & C have nested value type, truncate C to B"
171
+ STDERR.print "Case 5b: #{desc}: "
172
+ otv4, odesc = tester.op3("case5b", v5, desc)
173
+
174
+ assert '\nERROR: tester.op3 - 5b desc FAILED', odesc == "case5b: #{desc}"
175
+ assert '\nERROR: tester.op3 - 5b otv4 FAILED' , v5.basic_data == otv4.basic_data
176
+ assert '\nERROR: tester.op3 - 5b otv4.nv4 FAILED' , v5.nv4.data == otv4.nv4.data
177
+ assert '\nERROR: tester.op3 - 5b otv4.data4 FAILED' , v5.data4 == otv4.data4
178
+ STDERR.puts 'passed'
179
+
180
+ # 6.
181
+ iv = OBV_TruncatableTest::TValue6.new
182
+ iv.basic_data = 9
183
+
184
+ desc = "A<-tB, B has no data, truncate B to A"
185
+ STDERR.print "Case 6: #{desc}: "
186
+ ov, odesc = tester.op1("case6", iv, desc)
187
+
188
+ assert '\nERROR: tester.op1 - 6 desc FAILED', odesc == "case6: #{desc}"
189
+ assert '\nERROR: tester.op1 - 6 ov FAILED' , iv.basic_data == ov.basic_data
190
+ STDERR.puts 'passed'
191
+
192
+ # 7.
193
+ v1 = OBV_TruncatableTest::TValue1.new
194
+ v1.basic_data = 8
195
+ v1.data1 = 88
196
+
197
+ v4 = OBV_TruncatableTest::TValue1.new
198
+ v4.basic_data = 9
199
+ v4.data1 = 99
200
+
201
+ nv = OBV_TruncatableTest::NestedValue.new
202
+ nv.data = 2
203
+
204
+ v2 = OBV_TruncatableTest::TValue4.new
205
+ v2.basic_data = 7
206
+ v2.nv4 = nv
207
+ v2.data4 = 77
208
+
209
+ v3 = OBV_TruncatableTest::TValue4.new
210
+ v3.basic_data = 6
211
+ v3.nv4 = nv
212
+ v3.data4 = 66
213
+
214
+ desc = "multiple IN truncatable valuetype parameters"+
215
+ " and return truncatable valuetype"
216
+ STDERR.print "Case 7: #{desc}: "
217
+ ov, odesc = tester.op4("case7", v1, 5, v2, v3, v4, desc)
218
+
219
+ assert '\nERROR: tester.op4 - 7 desc FAILED', odesc == "case7: #{desc}"
220
+ total = 5 * (v1.basic_data + v2.basic_data +
221
+ v3.basic_data + v4.basic_data)
222
+ assert '\nERROR: tester.op4 - 7 ov FAILED' , total == ov.basic_data
223
+ STDERR.puts 'passed'
224
+
225
+ # 8.
226
+ v1 = OBV_TruncatableTest::Extra1.new
227
+ v1.basic_data = 9
228
+ v1.data1 = 99
229
+ v1.edata1 = 1234
230
+
231
+ desc = "A<-tB, truncate unknown B to A"
232
+ STDERR.print "Case 8: #{desc}: "
233
+ ov1, odesc = tester.op2(v1, "case8", desc)
234
+
235
+ assert '\nERROR: tester.op2 - 8 desc FAILED', odesc == "case8: #{desc}"
236
+ assert '\nERROR: tester.op2 - 8 ov1 FAILED' , v1.basic_data == ov1.basic_data &&
237
+ v1.data1 == ov1.data1
238
+ STDERR.puts 'passed'
239
+
240
+ # 9.
241
+ v1 = OBV_TruncatableTest::TValue1.new
242
+ v1.basic_data = 9
243
+ v1.data1 = 99
244
+
245
+ a = CORBA::Any.to_any(v1)
246
+ desc = "A<-tB, known truncatable via Any"
247
+ STDERR.print "Case 9: #{desc}: "
248
+ ov1, odesc = tester.op5(a, "case9", desc)
249
+
250
+ assert '\nERROR: tester.op5 - 9 desc FAILED', odesc == "case9: #{desc}"
251
+ assert '\nERROR: tester.op5 - 9 ov1 FAILED' , v1.basic_data == ov1.basic_data &&
252
+ v1.data1 == ov1.data1
253
+ STDERR.puts 'passed'
254
+
255
+ # 10.
256
+ v1 = OBV_TruncatableTest::Extra1.new
257
+ v1.basic_data = 9
258
+ v1.data1 = 99
259
+ v1.edata1 = 1234
260
+
261
+ a = CORBA::Any.to_any(v1)
262
+ desc = "A<-tB, unknown truncatable via Any"
263
+ STDERR.print "Case 10: #{desc}: "
264
+ ov1, odesc = tester.op5(a, "case10", desc)
265
+
266
+ assert '\nERROR: tester.op5 - 10 desc FAILED', odesc == "case10: #{desc}"
267
+ assert '\nERROR: tester.op5 - 10 ov1 FAILED' , v1.basic_data == ov1.basic_data &&
268
+ v1.data1 == ov1.data1
269
+ STDERR.puts 'passed'
270
+
271
+ # shutdown tester service
272
+
273
+ tester.shutdown()
274
+
275
+ ensure
276
+
277
+ orb.destroy()
278
+
279
+ end