r2corba 1.6.1-x64-mingw-ucrt

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 (237) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +62 -0
  5. data/THANKS +54 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/r2corba.bat +20 -0
  8. data/bin/ridlc +11 -0
  9. data/bin/ridlc.bat +23 -0
  10. data/bin/rins +7 -0
  11. data/bin/rins.bat +19 -0
  12. data/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +32 -0
  14. data/lib/corba/cbase/ORB.rb +239 -0
  15. data/lib/corba/cbase/Request.rb +133 -0
  16. data/lib/corba/cbase/Streams.rb +128 -0
  17. data/lib/corba/cbase/Stub.rb +18 -0
  18. data/lib/corba/cbase/Typecode.rb +440 -0
  19. data/lib/corba/cbase/Values.rb +130 -0
  20. data/lib/corba/cbase/exception.rb +67 -0
  21. data/lib/corba/cbase/poa.rb +22 -0
  22. data/lib/corba/cbase/policies.rb +77 -0
  23. data/lib/corba/cbase/post_require.rb +13 -0
  24. data/lib/corba/cbase/require.rb +36 -0
  25. data/lib/corba/cmds/base.rb +84 -0
  26. data/lib/corba/cmds/test.rb +29 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +100 -0
  29. data/lib/corba/common/ORB.rb +367 -0
  30. data/lib/corba/common/Object.rb +211 -0
  31. data/lib/corba/common/Request.rb +19 -0
  32. data/lib/corba/common/Servant.rb +107 -0
  33. data/lib/corba/common/Struct.rb +21 -0
  34. data/lib/corba/common/Stub.rb +78 -0
  35. data/lib/corba/common/Typecode.rb +1147 -0
  36. data/lib/corba/common/Union.rb +60 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +21 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +34 -0
  41. data/lib/corba/common/version.rb +21 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +62 -0
  43. data/lib/corba/idl/CosNamingC.rb +460 -0
  44. data/lib/corba/idl/CosNamingS.rb +308 -0
  45. data/lib/corba/idl/IDL.rb +20 -0
  46. data/lib/corba/idl/IORTable.pidl +61 -0
  47. data/lib/corba/idl/IORTableC.rb +116 -0
  48. data/lib/corba/idl/MessagingC.rb +903 -0
  49. data/lib/corba/idl/POAC.rb +929 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +45 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +178 -0
  52. data/lib/corba/idl/r2c_orb.rb +571 -0
  53. data/lib/corba/idl/require.rb +19 -0
  54. data/lib/corba/jbase/Any.rb +274 -0
  55. data/lib/corba/jbase/IORMap.rb +35 -0
  56. data/lib/corba/jbase/ORB.rb +111 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +225 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +127 -0
  61. data/lib/corba/jbase/Streams.rb +734 -0
  62. data/lib/corba/jbase/Stub.rb +37 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +174 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +228 -0
  67. data/lib/corba/jbase/policies.rb +299 -0
  68. data/lib/corba/jbase/post_require.rb +13 -0
  69. data/lib/corba/jbase/require.rb +92 -0
  70. data/lib/corba/naming.rb +13 -0
  71. data/lib/corba/naming_service.rb +14 -0
  72. data/lib/corba/poa.rb +14 -0
  73. data/lib/corba/policies.rb +17 -0
  74. data/lib/corba/require.rb +16 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +432 -0
  76. data/lib/corba/svcs/ins/ins.rb +525 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +118 -0
  78. data/lib/corba.rb +15 -0
  79. data/lib/ridlbe/ruby/config.rb +340 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +15 -0
  82. data/lib/ridlbe/ruby/walker.rb +1605 -0
  83. data/mkrf_conf_bingem.rb +149 -0
  84. data/rakelib/bin.rake +79 -0
  85. data/rakelib/bin.rb +145 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +51 -0
  88. data/rakelib/config.rb +542 -0
  89. data/rakelib/ext.rake +183 -0
  90. data/rakelib/ext.rb +277 -0
  91. data/rakelib/ext_r2tao.rb +208 -0
  92. data/rakelib/gem.rake +251 -0
  93. data/rakelib/gem.rb +145 -0
  94. data/rakelib/package.rake +25 -0
  95. data/rakelib/test.rake +22 -0
  96. data/test/BiDirectional/Test.idl +33 -0
  97. data/test/BiDirectional/client.rb +131 -0
  98. data/test/BiDirectional/run_test.rb +67 -0
  99. data/test/BiDirectional/server.rb +167 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
  104. data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
  105. data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
  106. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
  107. data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
  108. data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
  109. data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
  110. data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
  111. data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
  112. data/test/Collocation/Diamond.idl +38 -0
  113. data/test/Collocation/run_test.rb +51 -0
  114. data/test/Collocation/test.rb +201 -0
  115. data/test/Connect_Timeout/Test.idl +26 -0
  116. data/test/Connect_Timeout/client.rb +109 -0
  117. data/test/Connect_Timeout/run_test.rb +51 -0
  118. data/test/DII/Test.idl +26 -0
  119. data/test/DII/client.rb +114 -0
  120. data/test/DII/run_test.rb +68 -0
  121. data/test/DII/server.rb +94 -0
  122. data/test/DSI/Test.idl +26 -0
  123. data/test/DSI/client.rb +65 -0
  124. data/test/DSI/run_test.rb +68 -0
  125. data/test/DSI/server.rb +105 -0
  126. data/test/Exceptions/Test.idl +47 -0
  127. data/test/Exceptions/client.rb +117 -0
  128. data/test/Exceptions/run_test.rb +68 -0
  129. data/test/Exceptions/server.rb +130 -0
  130. data/test/Hello/Test.idl +26 -0
  131. data/test/Hello/client.rb +77 -0
  132. data/test/Hello/run_test.rb +70 -0
  133. data/test/Hello/server.rb +94 -0
  134. data/test/IDL_Test/Test.idl +116 -0
  135. data/test/IDL_Test/Test_inc.idl +17 -0
  136. data/test/IDL_Test/client.rb +103 -0
  137. data/test/IDL_Test/run_test.rb +68 -0
  138. data/test/IDL_Test/server.rb +103 -0
  139. data/test/IORMap/Test.idl +26 -0
  140. data/test/IORMap/client.rb +72 -0
  141. data/test/IORMap/run_test.rb +68 -0
  142. data/test/IORMap/server.rb +113 -0
  143. data/test/IORTable/Test.idl +26 -0
  144. data/test/IORTable/client.rb +74 -0
  145. data/test/IORTable/run_test.rb +68 -0
  146. data/test/IORTable/server.rb +129 -0
  147. data/test/Implicit_Conversion/Test.idl +30 -0
  148. data/test/Implicit_Conversion/client.rb +112 -0
  149. data/test/Implicit_Conversion/run_test.rb +68 -0
  150. data/test/Implicit_Conversion/server.rb +98 -0
  151. data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
  152. data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
  153. data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
  154. data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
  155. data/test/Multi_Threading/Simple/Test.idl +26 -0
  156. data/test/Multi_Threading/Simple/client.rb +92 -0
  157. data/test/Multi_Threading/Simple/run_test.rb +68 -0
  158. data/test/Multi_Threading/Simple/server.rb +117 -0
  159. data/test/Multi_Threading/Threads/Test.idl +27 -0
  160. data/test/Multi_Threading/Threads/client.rb +77 -0
  161. data/test/Multi_Threading/Threads/run_test.rb +75 -0
  162. data/test/Multi_Threading/Threads/server.rb +116 -0
  163. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  164. data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
  165. data/test/Multiple_Servant_Interfaces/client.rb +69 -0
  166. data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
  167. data/test/Multiple_Servant_Interfaces/server.rb +101 -0
  168. data/test/Nil/Test.idl +26 -0
  169. data/test/Nil/run_test.rb +51 -0
  170. data/test/Nil/test.rb +80 -0
  171. data/test/OBV/AbstractInterface/client.rb +178 -0
  172. data/test/OBV/AbstractInterface/run_test.rb +68 -0
  173. data/test/OBV/AbstractInterface/server.rb +149 -0
  174. data/test/OBV/AbstractInterface/test.idl +52 -0
  175. data/test/OBV/Custom/OBV.idl +18 -0
  176. data/test/OBV/Custom/OBV_impl.rb +41 -0
  177. data/test/OBV/Custom/client.rb +85 -0
  178. data/test/OBV/Custom/run_test.rb +68 -0
  179. data/test/OBV/Custom/server.rb +99 -0
  180. data/test/OBV/Simple/OBV.idl +15 -0
  181. data/test/OBV/Simple/OBV_impl.rb +26 -0
  182. data/test/OBV/Simple/client.rb +85 -0
  183. data/test/OBV/Simple/run_test.rb +68 -0
  184. data/test/OBV/Simple/server.rb +99 -0
  185. data/test/OBV/Simple_Event/Event.idl +15 -0
  186. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  187. data/test/OBV/Simple_Event/client.rb +85 -0
  188. data/test/OBV/Simple_Event/run_test.rb +68 -0
  189. data/test/OBV/Simple_Event/server.rb +99 -0
  190. data/test/OBV/Supports/client.rb +115 -0
  191. data/test/OBV/Supports/run_test.rb +68 -0
  192. data/test/OBV/Supports/server.rb +102 -0
  193. data/test/OBV/Supports/supports.idl +32 -0
  194. data/test/OBV/Supports/supports_impl.rb +59 -0
  195. data/test/OBV/Tree/client.rb +115 -0
  196. data/test/OBV/Tree/run_test.rb +68 -0
  197. data/test/OBV/Tree/server.rb +116 -0
  198. data/test/OBV/Tree/test.idl +31 -0
  199. data/test/OBV/Truncatable/Extra.idl +26 -0
  200. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  201. data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
  202. data/test/OBV/Truncatable/client.rb +278 -0
  203. data/test/OBV/Truncatable/run_test.rb +68 -0
  204. data/test/OBV/Truncatable/server.rb +88 -0
  205. data/test/OBV/ValueBox/client.rb +497 -0
  206. data/test/OBV/ValueBox/run_test.rb +68 -0
  207. data/test/OBV/ValueBox/server.rb +271 -0
  208. data/test/OBV/ValueBox/valuebox.idl +101 -0
  209. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  210. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  211. data/test/OBV/ValueBox/vb_union.idl +21 -0
  212. data/test/Object/Test.idl +26 -0
  213. data/test/Object/client.rb +111 -0
  214. data/test/Object/run_test.rb +68 -0
  215. data/test/Object/server.rb +125 -0
  216. data/test/POA/Test.idl +27 -0
  217. data/test/POA/run_test.rb +51 -0
  218. data/test/POA/test.rb +111 -0
  219. data/test/Param_Test/Test.idl +182 -0
  220. data/test/Param_Test/client.rb +276 -0
  221. data/test/Param_Test/run_test.rb +68 -0
  222. data/test/Param_Test/server.rb +295 -0
  223. data/test/Performance/Simple/Test.idl +26 -0
  224. data/test/Performance/Simple/client.rb +89 -0
  225. data/test/Performance/Simple/run_test.rb +68 -0
  226. data/test/Performance/Simple/server.rb +94 -0
  227. data/test/Policies/Test.idl +26 -0
  228. data/test/Policies/run_test.rb +51 -0
  229. data/test/Policies/test.rb +142 -0
  230. data/test/Timeout/client.rb +206 -0
  231. data/test/Timeout/run_test.rb +68 -0
  232. data/test/Timeout/server.rb +108 -0
  233. data/test/Timeout/test.idl +18 -0
  234. data/test/lib/assert.rb +41 -0
  235. data/test/lib/test.rb +546 -0
  236. data/test/test_runner.rb +191 -0
  237. metadata +318 -0
@@ -0,0 +1,278 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ require 'optparse'
13
+ require 'lib/assert.rb'
14
+ include TestUtil::Assertions
15
+
16
+ OPTIONS = {
17
+ :use_implement => false,
18
+ :orb_debuglevel => 0,
19
+ :iorfile => 'file://server.ior'
20
+ }
21
+
22
+ ARGV.options do |opts|
23
+ script_name = File.basename($0)
24
+ opts.banner = "Usage: ruby #{script_name} [options]"
25
+
26
+ opts.separator ''
27
+
28
+ opts.on('--k IORFILE',
29
+ 'Set IOR.',
30
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile] = v }
31
+ opts.on('--d LVL',
32
+ 'Set ORBDebugLevel value.',
33
+ 'Default: 0') { |v| OPTIONS[:orb_debuglevel] = v }
34
+ opts.on('--use-implement',
35
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
36
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
37
+
38
+ opts.separator ''
39
+
40
+ opts.on('-h', '--help',
41
+ 'Show this help message.') { puts opts; exit }
42
+
43
+ opts.parse!
44
+ end
45
+
46
+ if OPTIONS[:use_implement]
47
+ require 'corba'
48
+ CORBA.implement('Extra.idl', OPTIONS)
49
+ else
50
+ require 'ExtraC'
51
+ end
52
+
53
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
54
+
55
+ begin
56
+ # make sure valuetype factories are registered
57
+ OBV_TruncatableTest::BaseValueFactory.get_factory(orb)
58
+ OBV_TruncatableTest::TValue1Factory.get_factory(orb)
59
+ OBV_TruncatableTest::TValue2Factory.get_factory(orb)
60
+ OBV_TruncatableTest::TValue3Factory.get_factory(orb)
61
+ OBV_TruncatableTest::TValue4Factory.get_factory(orb)
62
+ OBV_TruncatableTest::TValue5Factory.get_factory(orb)
63
+ OBV_TruncatableTest::NestedValueFactory.get_factory(orb)
64
+
65
+ obj = orb.string_to_object(OPTIONS[:iorfile])
66
+
67
+ tester = OBV_TruncatableTest::Test._narrow(obj)
68
+
69
+ assert_not 'Object reference is nil.', CORBA::is_nil(tester)
70
+
71
+ if defined?(JRUBY_VERSION)
72
+ STDERR.puts 'Skipping. Value type truncation currently not properly supported by JacORB!'
73
+ tester.shutdown
74
+ exit 0
75
+ end
76
+
77
+ # 1.
78
+ v1 = OBV_TruncatableTest::TValue1.new
79
+ v1.basic_data = 9
80
+ v1.data1 = 99
81
+
82
+ desc = 'A<-tB, truncate B to A'
83
+ STDERR.print "Case 1: #{desc}: "
84
+
85
+ ov1, odesc = tester.op1('case1', v1, desc)
86
+
87
+ assert '\nERROR: tester.op1 desc FAILED', odesc == "case1: #{desc}"
88
+ assert '\nERROR: tester.op1 ov FAILED', v1.basic_data == ov1.basic_data
89
+
90
+ STDERR.puts 'passed'
91
+
92
+ # 2.
93
+ v2 = OBV_TruncatableTest::TValue2.new
94
+ v2.basic_data = 9
95
+ v2.data1 = 99
96
+ v2.data2 = 99 * 2
97
+
98
+ desc = 'A<-tB<-tC, truncate C to A'
99
+ STDERR.print "Case 2: #{desc}: "
100
+
101
+ ov2, odesc = tester.op1('case2', v2, desc)
102
+
103
+ assert '\nERROR: tester.op1 - 2 desc FAILED', odesc == "case2: #{desc}"
104
+ assert '\nERROR: tester.op1 - 2 ov FAILED', v2.basic_data == ov2.basic_data
105
+ STDERR.puts 'passed'
106
+
107
+ desc = 'A<-tB<-tC, truncate C to B'
108
+ STDERR.print "Case 2b: #{desc}: "
109
+
110
+ otv1, odesc = tester.op2(v2, 'case2b', desc)
111
+
112
+ assert '\nERROR: tester.op2 - 2b desc FAILED', odesc == "case2b: #{desc}"
113
+ assert '\nERROR: tester.op2 - 2b otv1 FAILED', v2.basic_data == otv1.basic_data
114
+ assert '\nERROR: tester.op2 - 2b otv1 FAILED', v2.data1 == otv1.data1
115
+ STDERR.puts 'passed'
116
+
117
+ # 3.
118
+ itv1b = OBV_TruncatableTest::TValue1.new
119
+ itv1b.basic_data = 7
120
+ itv1b.data1 = 8
121
+
122
+ desc = 'A<-tB, truncatable but no truncation'
123
+ STDERR.print "Case 3: #{desc}: "
124
+
125
+ otv1b, odesc = tester.op2(itv1b, 'case3', desc)
126
+
127
+ assert '\nERROR: tester.op2 - 3 desc FAILED', odesc == "case3: #{desc}"
128
+ assert '\nERROR: tester.op2 - 3 otv1b FAILED', itv1b.basic_data == otv1b.basic_data
129
+ assert '\nERROR: tester.op2 - 3 otv1b FAILED', itv1b.data1 == otv1b.data1
130
+ STDERR.puts 'passed'
131
+
132
+ # 4.
133
+ v3 = OBV_TruncatableTest::TValue3.new
134
+ v3.basic_data = 9
135
+ v3.data1 = 99
136
+ v3.data3 = (99 * 3)
137
+
138
+ begin
139
+ desc = 'A<-tB<-C, try truncate C to A, MARSHAL exception'
140
+ STDERR.print "Case 4: #{desc}: "
141
+ ov3, odesc = tester.op1('case4', v3, desc)
142
+ STDERR.puts 'failed'
143
+ rescue CORBA::MARSHAL
144
+ STDERR.puts 'passed'
145
+ end
146
+
147
+ # 5.
148
+ nv = OBV_TruncatableTest::NestedValue.new
149
+ nv.data = 2
150
+
151
+ v5 = OBV_TruncatableTest::TValue5.new
152
+
153
+ v5.basic_data = 9
154
+ v5.nv4 = nv
155
+ v5.data4 = (99 * 4)
156
+ v5.str1 = 'str1'
157
+ v5.data5 = (99 * 5)
158
+ v5.nv5 = nv
159
+ v5.str2 = 'str2'
160
+
161
+ desc = 'A<-tB<-tC, B & C have nested value type, truncate C to A'
162
+ STDERR.print "Case 5: #{desc}: "
163
+ ov5, odesc = tester.op1('case5', v5, desc)
164
+
165
+ assert '\nERROR: tester.op1 - 5 desc FAILED', odesc == "case5: #{desc}"
166
+ assert '\nERROR: tester.op1 - 5 ov5 FAILED', v5.basic_data == ov5.basic_data
167
+ STDERR.puts 'passed'
168
+
169
+ desc = 'A<-tB<-tC, B & C have nested value type, truncate C to B'
170
+ STDERR.print "Case 5b: #{desc}: "
171
+ otv4, odesc = tester.op3('case5b', v5, desc)
172
+
173
+ assert '\nERROR: tester.op3 - 5b desc FAILED', odesc == "case5b: #{desc}"
174
+ assert '\nERROR: tester.op3 - 5b otv4 FAILED', v5.basic_data == otv4.basic_data
175
+ assert '\nERROR: tester.op3 - 5b otv4.nv4 FAILED', v5.nv4.data == otv4.nv4.data
176
+ assert '\nERROR: tester.op3 - 5b otv4.data4 FAILED', v5.data4 == otv4.data4
177
+ STDERR.puts 'passed'
178
+
179
+ # 6.
180
+ iv = OBV_TruncatableTest::TValue6.new
181
+ iv.basic_data = 9
182
+
183
+ desc = 'A<-tB, B has no data, truncate B to A'
184
+ STDERR.print "Case 6: #{desc}: "
185
+ ov, odesc = tester.op1('case6', iv, desc)
186
+
187
+ assert '\nERROR: tester.op1 - 6 desc FAILED', odesc == "case6: #{desc}"
188
+ assert '\nERROR: tester.op1 - 6 ov FAILED', iv.basic_data == ov.basic_data
189
+ STDERR.puts 'passed'
190
+
191
+ # 7.
192
+ v1 = OBV_TruncatableTest::TValue1.new
193
+ v1.basic_data = 8
194
+ v1.data1 = 88
195
+
196
+ v4 = OBV_TruncatableTest::TValue1.new
197
+ v4.basic_data = 9
198
+ v4.data1 = 99
199
+
200
+ nv = OBV_TruncatableTest::NestedValue.new
201
+ nv.data = 2
202
+
203
+ v2 = OBV_TruncatableTest::TValue4.new
204
+ v2.basic_data = 7
205
+ v2.nv4 = nv
206
+ v2.data4 = 77
207
+
208
+ v3 = OBV_TruncatableTest::TValue4.new
209
+ v3.basic_data = 6
210
+ v3.nv4 = nv
211
+ v3.data4 = 66
212
+
213
+ desc = 'multiple IN truncatable valuetype parameters' +
214
+ ' and return truncatable valuetype'
215
+ STDERR.print "Case 7: #{desc}: "
216
+ ov, odesc = tester.op4('case7', v1, 5, v2, v3, v4, desc)
217
+
218
+ assert '\nERROR: tester.op4 - 7 desc FAILED', odesc == "case7: #{desc}"
219
+ total = 5 * (v1.basic_data + v2.basic_data +
220
+ v3.basic_data + v4.basic_data)
221
+ assert '\nERROR: tester.op4 - 7 ov FAILED', total == ov.basic_data
222
+ STDERR.puts 'passed'
223
+
224
+ # 8.
225
+ v1 = OBV_TruncatableTest::Extra1.new
226
+ v1.basic_data = 9
227
+ v1.data1 = 99
228
+ v1.edata1 = 1234
229
+
230
+ desc = 'A<-tB, truncate unknown B to A'
231
+ STDERR.print "Case 8: #{desc}: "
232
+ ov1, odesc = tester.op2(v1, 'case8', desc)
233
+
234
+ assert '\nERROR: tester.op2 - 8 desc FAILED', odesc == "case8: #{desc}"
235
+ assert '\nERROR: tester.op2 - 8 ov1 FAILED', v1.basic_data == ov1.basic_data &&
236
+ v1.data1 == ov1.data1
237
+ STDERR.puts 'passed'
238
+
239
+ # 9.
240
+ v1 = OBV_TruncatableTest::TValue1.new
241
+ v1.basic_data = 9
242
+ v1.data1 = 99
243
+
244
+ a = CORBA::Any.to_any(v1)
245
+ desc = 'A<-tB, known truncatable via Any'
246
+ STDERR.print "Case 9: #{desc}: "
247
+ ov1, odesc = tester.op5(a, 'case9', desc)
248
+
249
+ assert '\nERROR: tester.op5 - 9 desc FAILED', odesc == "case9: #{desc}"
250
+ assert '\nERROR: tester.op5 - 9 ov1 FAILED', v1.basic_data == ov1.basic_data &&
251
+ v1.data1 == ov1.data1
252
+ STDERR.puts 'passed'
253
+
254
+ # 10.
255
+ v1 = OBV_TruncatableTest::Extra1.new
256
+ v1.basic_data = 9
257
+ v1.data1 = 99
258
+ v1.edata1 = 1234
259
+
260
+ a = CORBA::Any.to_any(v1)
261
+ desc = 'A<-tB, unknown truncatable via Any'
262
+ STDERR.print "Case 10: #{desc}: "
263
+ ov1, odesc = tester.op5(a, 'case10', desc)
264
+
265
+ assert '\nERROR: tester.op5 - 10 desc FAILED', odesc == "case10: #{desc}"
266
+ assert '\nERROR: tester.op5 - 10 ov1 FAILED', v1.basic_data == ov1.basic_data &&
267
+ v1.data1 == ov1.data1
268
+ STDERR.puts 'passed'
269
+
270
+ # shutdown tester service
271
+
272
+ tester.shutdown()
273
+
274
+ ensure
275
+
276
+ orb.destroy()
277
+
278
+ end
@@ -0,0 +1,68 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ OPTIONS = {
13
+ :debug_opt => '',
14
+ :use_implement => '--use-implement'
15
+ }
16
+
17
+ require 'optparse'
18
+
19
+ ARGV.options do |opts|
20
+ script_name = File.basename($0)
21
+ opts.banner = "Usage: ruby #{script_name} [options]"
22
+
23
+ opts.separator ''
24
+
25
+ opts.on('-d',
26
+ 'Run with debugging output.',
27
+ 'Default: false') { OPTIONS[:debug_opt] = '--d 10' }
28
+ opts.on('--use-stubs',
29
+ 'Use stubs generated by RIDL.',
30
+ 'Default: false (uses embedded IDL)') { OPTIONS[:use_implement] = '' }
31
+
32
+ opts.separator ''
33
+
34
+ opts.on('-h', '--help',
35
+ 'Show this help message.') { puts opts; exit }
36
+
37
+ opts.parse!
38
+ end
39
+
40
+ require 'lib/test.rb'
41
+ include TestUtil
42
+
43
+ ior_file = 'server.ior'
44
+
45
+ TestUtil.remove_file(ior_file)
46
+
47
+ srv = Test.new
48
+
49
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
50
+
51
+ TestUtil.wait_for_file(ior_file, 400)
52
+
53
+ clt = Test.new
54
+
55
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
56
+ srv.kill(100)
57
+ exit(255)
58
+ end
59
+
60
+ exrc = clt.wait(400)
61
+
62
+ if exrc == 0
63
+ srv.wait(400)
64
+ else
65
+ srv.wait_term(400)
66
+ end
67
+
68
+ exit(exrc)
@@ -0,0 +1,88 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ require 'optparse'
13
+
14
+ OPTIONS = {
15
+ :use_implement => false,
16
+ :orb_debuglevel => 0,
17
+ :iorfile => 'server.ior'
18
+ }
19
+
20
+ ARGV.options do |opts|
21
+ script_name = File.basename($0)
22
+ opts.banner = "Usage: ruby #{script_name} [options]"
23
+
24
+ opts.separator ''
25
+
26
+ opts.on('--o IORFILE',
27
+ 'Set IOR filename.',
28
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile] = v }
29
+ opts.on('--d LVL',
30
+ 'Set ORBDebugLevel value.',
31
+ 'Default: 0') { |v| OPTIONS[:orb_debuglevel] = v }
32
+ opts.on('--use-implement',
33
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
34
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
35
+
36
+ opts.separator ''
37
+
38
+ opts.on('-h', '--help',
39
+ 'Show this help message.') { puts opts; exit }
40
+
41
+ opts.parse!
42
+ end
43
+
44
+ if OPTIONS[:use_implement]
45
+ require 'corba/poa'
46
+ CORBA.implement('Truncatable.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
47
+ else
48
+ require 'TruncatableS'
49
+ end
50
+
51
+ require 'Truncatable_impl'
52
+
53
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
54
+
55
+ # make sure valuetype factories are registered
56
+ OBV_TruncatableTest::BaseValueFactory.get_factory(orb)
57
+ OBV_TruncatableTest::TValue1Factory.get_factory(orb)
58
+ OBV_TruncatableTest::TValue4Factory.get_factory(orb)
59
+ OBV_TruncatableTest::NestedValueFactory.get_factory(orb)
60
+
61
+ obj = orb.resolve_initial_references('RootPOA')
62
+
63
+ root_poa = PortableServer::POA._narrow(obj)
64
+
65
+ poa_man = root_poa.the_POAManager
66
+
67
+ poa_man.activate
68
+
69
+ tester = Test_impl.new(orb)
70
+
71
+ obj = tester._this()
72
+
73
+ ior = orb.object_to_string(obj)
74
+
75
+ open(OPTIONS[:iorfile], 'w') { |io|
76
+ io.write ior
77
+ }
78
+
79
+ Signal.trap('INT') do
80
+ puts 'SIGINT - shutting down ORB...'
81
+ orb.shutdown()
82
+ end
83
+
84
+ if Signal.list.has_key?('USR2')
85
+ Signal.trap('USR2', 'EXIT')
86
+ end
87
+
88
+ orb.run