r2corba 1.4.1-x86-mingw32

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 (267) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +159 -0
  3. data/LICENSE +59 -0
  4. data/README +62 -0
  5. data/THANKS +52 -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 +33 -0
  14. data/lib/corba/cbase/ORB.rb +231 -0
  15. data/lib/corba/cbase/Request.rb +134 -0
  16. data/lib/corba/cbase/Streams.rb +129 -0
  17. data/lib/corba/cbase/Stub.rb +19 -0
  18. data/lib/corba/cbase/Typecode.rb +441 -0
  19. data/lib/corba/cbase/Values.rb +129 -0
  20. data/lib/corba/cbase/exception.rb +66 -0
  21. data/lib/corba/cbase/poa.rb +23 -0
  22. data/lib/corba/cbase/policies.rb +78 -0
  23. data/lib/corba/cbase/post_require.rb +14 -0
  24. data/lib/corba/cbase/require.rb +28 -0
  25. data/lib/corba/cmds/base.rb +85 -0
  26. data/lib/corba/cmds/test.rb +30 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +104 -0
  29. data/lib/corba/common/ORB.rb +368 -0
  30. data/lib/corba/common/Object.rb +208 -0
  31. data/lib/corba/common/Request.rb +20 -0
  32. data/lib/corba/common/Servant.rb +108 -0
  33. data/lib/corba/common/Struct.rb +22 -0
  34. data/lib/corba/common/Stub.rb +79 -0
  35. data/lib/corba/common/Typecode.rb +1121 -0
  36. data/lib/corba/common/Union.rb +56 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +22 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +27 -0
  41. data/lib/corba/common/version.rb +22 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  43. data/lib/corba/idl/CosNamingC.rb +461 -0
  44. data/lib/corba/idl/CosNamingS.rb +309 -0
  45. data/lib/corba/idl/IDL.rb +21 -0
  46. data/lib/corba/idl/IORTable.pidl +62 -0
  47. data/lib/corba/idl/IORTableC.rb +117 -0
  48. data/lib/corba/idl/MessagingC.rb +904 -0
  49. data/lib/corba/idl/POAC.rb +930 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +179 -0
  52. data/lib/corba/idl/r2c_orb.rb +572 -0
  53. data/lib/corba/idl/require.rb +20 -0
  54. data/lib/corba/jbase/Any.rb +273 -0
  55. data/lib/corba/jbase/IORMap.rb +36 -0
  56. data/lib/corba/jbase/ORB.rb +99 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +226 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +128 -0
  61. data/lib/corba/jbase/Streams.rb +671 -0
  62. data/lib/corba/jbase/Stub.rb +38 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +173 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +229 -0
  67. data/lib/corba/jbase/policies.rb +300 -0
  68. data/lib/corba/jbase/post_require.rb +14 -0
  69. data/lib/corba/jbase/require.rb +86 -0
  70. data/lib/corba/naming.rb +14 -0
  71. data/lib/corba/naming_service.rb +15 -0
  72. data/lib/corba/poa.rb +15 -0
  73. data/lib/corba/policies.rb +18 -0
  74. data/lib/corba/require.rb +17 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  76. data/lib/corba/svcs/ins/ins.rb +526 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  78. data/lib/corba.rb +16 -0
  79. data/lib/ridlbe/ruby/config.rb +336 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +16 -0
  82. data/lib/ridlbe/ruby/walker.rb +1582 -0
  83. data/mkrf_conf_bingem.rb +101 -0
  84. data/rakelib/bin.rake +80 -0
  85. data/rakelib/bin.rb +146 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +52 -0
  88. data/rakelib/config.rb +450 -0
  89. data/rakelib/ext.rake +242 -0
  90. data/rakelib/ext.rb +308 -0
  91. data/rakelib/ext_r2tao.rb +232 -0
  92. data/rakelib/gem.rake +212 -0
  93. data/rakelib/gem.rb +146 -0
  94. data/rakelib/package.rake +26 -0
  95. data/rakelib/test.rake +23 -0
  96. data/test/BiDirectional/Test.idl +34 -0
  97. data/test/BiDirectional/client.rb +132 -0
  98. data/test/BiDirectional/run_test.rb +68 -0
  99. data/test/BiDirectional/server.ior +1 -0
  100. data/test/BiDirectional/server.rb +169 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  105. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  106. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  107. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  108. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  109. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  110. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  111. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  112. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  113. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  114. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  115. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  116. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  117. data/test/Collocation/Diamond.idl +39 -0
  118. data/test/Collocation/run_test.rb +52 -0
  119. data/test/Collocation/test.rb +195 -0
  120. data/test/Connect_Timeout/Test.idl +27 -0
  121. data/test/Connect_Timeout/client.rb +111 -0
  122. data/test/Connect_Timeout/run_test.rb +52 -0
  123. data/test/DII/Test.idl +27 -0
  124. data/test/DII/client.rb +115 -0
  125. data/test/DII/run_test.rb +69 -0
  126. data/test/DII/server.ior +1 -0
  127. data/test/DII/server.rb +95 -0
  128. data/test/DSI/Test.idl +27 -0
  129. data/test/DSI/client.rb +66 -0
  130. data/test/DSI/run_test.rb +69 -0
  131. data/test/DSI/server.ior +1 -0
  132. data/test/DSI/server.rb +106 -0
  133. data/test/Exceptions/Test.idl +48 -0
  134. data/test/Exceptions/client.rb +118 -0
  135. data/test/Exceptions/run_test.rb +69 -0
  136. data/test/Exceptions/server.ior +1 -0
  137. data/test/Exceptions/server.rb +131 -0
  138. data/test/Hello/Test.idl +27 -0
  139. data/test/Hello/client.rb +78 -0
  140. data/test/Hello/run_test.rb +71 -0
  141. data/test/Hello/server.rb +95 -0
  142. data/test/IDL_Test/Test.idl +113 -0
  143. data/test/IDL_Test/Test_inc.idl +17 -0
  144. data/test/IDL_Test/client.rb +102 -0
  145. data/test/IDL_Test/run_test.rb +69 -0
  146. data/test/IDL_Test/server.ior +1 -0
  147. data/test/IDL_Test/server.rb +99 -0
  148. data/test/IORMap/Test.idl +27 -0
  149. data/test/IORMap/client.rb +73 -0
  150. data/test/IORMap/run_test.rb +69 -0
  151. data/test/IORMap/server.ior +1 -0
  152. data/test/IORMap/server.rb +114 -0
  153. data/test/IORTable/Test.idl +27 -0
  154. data/test/IORTable/client.rb +75 -0
  155. data/test/IORTable/run_test.rb +69 -0
  156. data/test/IORTable/server.ior +1 -0
  157. data/test/IORTable/server.rb +130 -0
  158. data/test/Implicit_Conversion/Test.idl +31 -0
  159. data/test/Implicit_Conversion/client.rb +110 -0
  160. data/test/Implicit_Conversion/run_test.rb +69 -0
  161. data/test/Implicit_Conversion/server.ior +1 -0
  162. data/test/Implicit_Conversion/server.rb +99 -0
  163. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  164. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  165. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  166. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  167. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  168. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  169. data/test/Multi_Threading/Simple/Test.idl +27 -0
  170. data/test/Multi_Threading/Simple/client.rb +88 -0
  171. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  172. data/test/Multi_Threading/Simple/server.ior +1 -0
  173. data/test/Multi_Threading/Simple/server.rb +118 -0
  174. data/test/Multi_Threading/Threads/Test.idl +31 -0
  175. data/test/Multi_Threading/Threads/client.rb +80 -0
  176. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  177. data/test/Multi_Threading/Threads/server.ior +1 -0
  178. data/test/Multi_Threading/Threads/server.rb +119 -0
  179. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  180. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  181. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  182. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  183. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  184. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  185. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  186. data/test/Nil/Test.idl +27 -0
  187. data/test/Nil/run_test.rb +52 -0
  188. data/test/Nil/test.rb +78 -0
  189. data/test/OBV/AbstractInterface/client.rb +179 -0
  190. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  191. data/test/OBV/AbstractInterface/server.ior +1 -0
  192. data/test/OBV/AbstractInterface/server.rb +149 -0
  193. data/test/OBV/AbstractInterface/test.idl +53 -0
  194. data/test/OBV/Custom/OBV.idl +18 -0
  195. data/test/OBV/Custom/OBV_impl.rb +40 -0
  196. data/test/OBV/Custom/client.rb +86 -0
  197. data/test/OBV/Custom/run_test.rb +69 -0
  198. data/test/OBV/Custom/server.ior +1 -0
  199. data/test/OBV/Custom/server.rb +100 -0
  200. data/test/OBV/Simple/OBV.idl +15 -0
  201. data/test/OBV/Simple/OBV_impl.rb +26 -0
  202. data/test/OBV/Simple/client.rb +86 -0
  203. data/test/OBV/Simple/run_test.rb +69 -0
  204. data/test/OBV/Simple/server.ior +1 -0
  205. data/test/OBV/Simple/server.rb +100 -0
  206. data/test/OBV/Simple_Event/Event.idl +15 -0
  207. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  208. data/test/OBV/Simple_Event/client.rb +86 -0
  209. data/test/OBV/Simple_Event/run_test.rb +69 -0
  210. data/test/OBV/Simple_Event/server.ior +1 -0
  211. data/test/OBV/Simple_Event/server.rb +100 -0
  212. data/test/OBV/Supports/client.rb +116 -0
  213. data/test/OBV/Supports/run_test.rb +69 -0
  214. data/test/OBV/Supports/server.ior +1 -0
  215. data/test/OBV/Supports/server.rb +103 -0
  216. data/test/OBV/Supports/supports.idl +33 -0
  217. data/test/OBV/Supports/supports_impl.rb +57 -0
  218. data/test/OBV/Tree/client.rb +116 -0
  219. data/test/OBV/Tree/run_test.rb +69 -0
  220. data/test/OBV/Tree/server.ior +1 -0
  221. data/test/OBV/Tree/server.rb +117 -0
  222. data/test/OBV/Tree/test.idl +32 -0
  223. data/test/OBV/Truncatable/Extra.idl +27 -0
  224. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  225. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  226. data/test/OBV/Truncatable/client.rb +279 -0
  227. data/test/OBV/Truncatable/run_test.rb +69 -0
  228. data/test/OBV/Truncatable/server.ior +1 -0
  229. data/test/OBV/Truncatable/server.rb +89 -0
  230. data/test/OBV/ValueBox/client.rb +497 -0
  231. data/test/OBV/ValueBox/run_test.rb +69 -0
  232. data/test/OBV/ValueBox/server.ior +1 -0
  233. data/test/OBV/ValueBox/server.rb +271 -0
  234. data/test/OBV/ValueBox/valuebox.idl +101 -0
  235. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  236. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  237. data/test/OBV/ValueBox/vb_union.idl +21 -0
  238. data/test/Object/Test.idl +27 -0
  239. data/test/Object/client.rb +103 -0
  240. data/test/Object/run_test.rb +69 -0
  241. data/test/Object/server.ior +1 -0
  242. data/test/Object/server.rb +126 -0
  243. data/test/POA/Test.idl +27 -0
  244. data/test/POA/run_test.rb +52 -0
  245. data/test/POA/test.rb +112 -0
  246. data/test/Param_Test/Test.idl +182 -0
  247. data/test/Param_Test/client.rb +277 -0
  248. data/test/Param_Test/run_test.rb +69 -0
  249. data/test/Param_Test/server.ior +1 -0
  250. data/test/Param_Test/server.rb +296 -0
  251. data/test/Performance/Simple/Test.idl +27 -0
  252. data/test/Performance/Simple/client.rb +90 -0
  253. data/test/Performance/Simple/run_test.rb +69 -0
  254. data/test/Performance/Simple/server.ior +1 -0
  255. data/test/Performance/Simple/server.rb +95 -0
  256. data/test/Policies/Test.idl +27 -0
  257. data/test/Policies/run_test.rb +52 -0
  258. data/test/Policies/test.rb +144 -0
  259. data/test/Timeout/client.rb +207 -0
  260. data/test/Timeout/run_test.rb +69 -0
  261. data/test/Timeout/server.ior +1 -0
  262. data/test/Timeout/server.rb +109 -0
  263. data/test/Timeout/test.idl +19 -0
  264. data/test/lib/assert.rb +43 -0
  265. data/test/lib/test.rb +542 -0
  266. data/test/test_runner.rb +193 -0
  267. metadata +342 -0
@@ -0,0 +1,277 @@
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('Test.idl', OPTIONS)
50
+ else
51
+ require 'TestC.rb'
52
+ end
53
+
54
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
55
+
56
+ begin
57
+
58
+ obj = orb.string_to_object(OPTIONS[:iorfile])
59
+
60
+ hello_obj = Test::Hello._narrow(obj)
61
+
62
+ ## integer max/min values test
63
+
64
+ [ :max_LongLong,
65
+ :min_LongLong,
66
+ :max_ULongLong,
67
+ :min_ULongLong,
68
+ :max_Long,
69
+ :min_Long,
70
+ :max_ULong,
71
+ :min_ULong,
72
+ :max_Short,
73
+ :min_Short,
74
+ :max_UShort,
75
+ :min_UShort,
76
+ :max_Octet,
77
+ :min_Octet ].each do |att|
78
+ att_val = hello_obj.send(att)
79
+ assert "ERROR: value of attribute #{att} (#{att_val}) does not match expected value #{Test.const_get(att.to_s.capitalize)}", Test.const_get(att.to_s.capitalize) == att_val
80
+ end
81
+
82
+ ## string test
83
+
84
+ str = hello_obj.get_string()
85
+
86
+ msg = hello_obj.message
87
+
88
+ hello_obj.message = str
89
+
90
+ assert "ERROR setting message attribute", str == hello_obj.message
91
+
92
+ ## sequence test
93
+
94
+ nums = hello_obj.numbers
95
+
96
+ begin
97
+ hello_obj.numbers = (0...11).to_a.collect { |i| i*3 }
98
+ rescue CORBA::MARSHAL => ex
99
+ ## expected exception since sequence can hold max. 10 elements
100
+ end
101
+
102
+ assert "ERROR numbers attribute changed while it shouldn't", nums == hello_obj.numbers
103
+
104
+ hello_obj.numbers = nums.collect { |i| i*3 }
105
+
106
+ assert_not "ERROR numbers attribute did not change while it should have", nums == hello_obj.numbers
107
+
108
+ doubles_list = hello_obj.list_of_doubles
109
+
110
+ puts doubles_list.inspect
111
+
112
+ ## (sequence of) struct test
113
+
114
+ svseq = hello_obj.structSeq
115
+
116
+ svseq.each { |sv|
117
+ sv.m_one += 1
118
+ sv.m_two += 1.03
119
+ sv.m_three.upcase!
120
+ sv.m_four.m_b = TRUE
121
+ sv.m_five = Test::TE_FIRST
122
+ }
123
+
124
+ hello_obj.structSeq = svseq
125
+
126
+ ix = 0
127
+ assert_not "ERROR setting attribute structSeq" do
128
+ hello_obj.structSeq.any? { |sv|
129
+ sv2 = svseq[ix]
130
+ ix += 1
131
+ sv.m_one != sv2.m_one ||
132
+ sv.m_two != sv2.m_two ||
133
+ sv.m_three != sv2.m_three ||
134
+ sv.m_four.m_b != sv2.m_four.m_b ||
135
+ sv.m_five != sv2.m_five
136
+ }
137
+ end
138
+
139
+ ## array test
140
+
141
+ cube = hello_obj.theCube
142
+
143
+ cube2 = cube.collect { |plane|
144
+ plane.collect { |row|
145
+ row.collect { |elem|
146
+ (elem / 3) + (elem % 3)
147
+ }
148
+ }
149
+ }
150
+
151
+ hello_obj.theCube = cube2
152
+
153
+ assert_not "ERROR setting attribute theCube" do
154
+ cube2 != hello_obj.theCube || cube == hello_obj.theCube
155
+ end
156
+
157
+ ## objref test
158
+
159
+ self_obj = hello_obj.selfref
160
+
161
+ assert "ERROR with attribute selfref", self_obj.message == hello_obj.message
162
+
163
+ ## Any test
164
+
165
+ any = hello_obj.anyValue
166
+
167
+ hello_obj.anyValue = 1
168
+
169
+ assert_not "ERROR with attribute anyValue" do
170
+ any == hello_obj.anyValue || 1 == hello_obj.anyValue
171
+ end
172
+
173
+ hello_obj.anyValue = 2
174
+
175
+ assert_not "ERROR with attribute anyValue" do
176
+ any == hello_obj.anyValue || 2 == hello_obj.anyValue
177
+ end
178
+
179
+ hello_obj.anyValue = 3
180
+
181
+ assert_not "ERROR with attribute anyValue" do
182
+ any == hello_obj.anyValue || 3 == hello_obj.anyValue
183
+ end
184
+
185
+ ## union test
186
+
187
+ uv1 = hello_obj.unionValue
188
+
189
+ uv2 = uv1.class.new
190
+ uv2.m_l = 1234
191
+
192
+ hello_obj.unionValue = uv2
193
+
194
+ assert_not "ERROR with attribute unionValue" do
195
+ uv1._disc == hello_obj.unionValue._disc || uv1._value == hello_obj.unionValue._value
196
+ end
197
+
198
+ uv21 = hello_obj.unionValue2
199
+
200
+ uv22 = uv21.class.new
201
+ uv22.s_ = 'bye bye'
202
+
203
+ hello_obj.unionValue2 = uv22
204
+
205
+ assert_not "ERROR with attribute unionValue2" do
206
+ uv21._disc == hello_obj.unionValue2._disc || uv21._value == hello_obj.unionValue2._value
207
+ end
208
+
209
+ assert_not "ERROR with attribute unionValue2" do
210
+ uv21._disc == hello_obj.unionValue2._disc || uv21._value == hello_obj.unionValue2._value
211
+ end
212
+
213
+ uv3 = hello_obj.unionValue3
214
+
215
+ assert_except "ERROR with attribute unionValue3", CORBA::BAD_PARAM do
216
+ uv3._disc = FALSE
217
+ end
218
+
219
+ uv3._default # set implicit default
220
+
221
+ assert "ERROR with implicit default union U3" do
222
+ uv3._disc == false
223
+ end
224
+
225
+ hello_obj.unionValue3 = uv3
226
+
227
+ assert "ERROR with implicit default attribute unionValue3" do
228
+ hello_obj.unionValue3._disc == false
229
+ end
230
+
231
+ uv4 = hello_obj.unionValue4
232
+
233
+ assert_except "ERROR with attribute unionValue4", CORBA::BAD_PARAM do
234
+ uv4._disc = Test::TE_THIRD
235
+ end
236
+
237
+ uv4._default # set implicit default
238
+
239
+ assert "ERROR with implicit default union U4" do
240
+ uv4._disc == Test::TE_THIRD
241
+ end
242
+
243
+ hello_obj.unionValue4 = uv4
244
+
245
+ assert "ERROR with implicit default attribute unionValue4" do
246
+ hello_obj.unionValue4._disc == Test::TE_THIRD
247
+ end
248
+
249
+ ## recursive struct test
250
+
251
+ s3val = hello_obj.s3Value
252
+
253
+ s3 = s3val.m_seq.shift
254
+ s3val.m_seq.first.m_seq << s3
255
+ s3val.m_seq.first.m_has_more = true
256
+
257
+ hello_obj.s3Value = s3val
258
+
259
+ assert_not "ERROR with attribute s3Value" do
260
+ s3val.m_seq.size != hello_obj.s3Value.m_seq.size || s3val.m_seq.first.m_has_more != hello_obj.s3Value.m_seq.first.m_has_more
261
+ end
262
+
263
+ ## in, inout, out test
264
+
265
+ reslen, resinoutstr, resoutstr = hello_obj.run_test(instr = Test::TString.new("This is instr"), inoutstr = "This is inoutstr")
266
+
267
+ assert_not "ERROR with run_test" do
268
+ reslen != resoutstr.size || resinoutstr != instr || resoutstr != (instr+inoutstr)
269
+ end
270
+
271
+ hello_obj.shutdown()
272
+
273
+ ensure
274
+
275
+ orb.destroy()
276
+
277
+ end
@@ -0,0 +1,69 @@
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
+ OPTIONS = {
14
+ :debug_opt => '',
15
+ :use_implement => '--use-implement'
16
+ }
17
+
18
+ require 'optparse'
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("-d",
27
+ "Run with debugging output.",
28
+ "Default: false") { OPTIONS[:debug_opt] = '--d 10' }
29
+ opts.on("--use-stubs",
30
+ "Use stubs generated by RIDL.",
31
+ "Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
32
+
33
+ opts.separator ""
34
+
35
+ opts.on("-h", "--help",
36
+ "Show this help message.") { puts opts; exit }
37
+
38
+ opts.parse!
39
+ end
40
+
41
+ require 'lib/test.rb'
42
+ include TestUtil
43
+
44
+ ior_file = 'server.ior'
45
+
46
+ TestUtil.remove_file(ior_file)
47
+
48
+ srv = Test.new
49
+
50
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
51
+
52
+ TestUtil.wait_for_file(ior_file, 400)
53
+
54
+ clt = Test.new
55
+
56
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
57
+ srv.kill(100)
58
+ exit(255)
59
+ end
60
+
61
+ exrc = clt.wait(400)
62
+
63
+ if exrc ==0
64
+ srv.wait(400)
65
+ else
66
+ srv.wait_term(400)
67
+ end
68
+
69
+ exit(exrc)
@@ -0,0 +1 @@
1
+ IOR:010000001a00000049444c3a52656d6564792f546573742f48656c6c6f3a312e3000000001000000000000006c000000010102000d0000003137322e31362e372e323438000005061b00000014010f00525354a5fe0452cb280c000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
@@ -0,0 +1,296 @@
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
+
15
+ OPTIONS = {
16
+ :use_implement => false,
17
+ :orb_debuglevel => 0,
18
+ :iorfile => 'server.ior'
19
+ }
20
+
21
+ ARGV.options do |opts|
22
+ script_name = File.basename($0)
23
+ opts.banner = "Usage: ruby #{script_name} [options]"
24
+
25
+ opts.separator ""
26
+
27
+ opts.on("--o IORFILE",
28
+ "Set IOR filename.",
29
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
30
+ opts.on("--d LVL",
31
+ "Set ORBDebugLevel value.",
32
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
33
+ opts.on("--use-implement",
34
+ "Load IDL through CORBA.implement() instead of precompiled code.",
35
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
36
+
37
+ opts.separator ""
38
+
39
+ opts.on("-h", "--help",
40
+ "Show this help message.") { puts opts; exit }
41
+
42
+ opts.parse!
43
+ end
44
+
45
+ if OPTIONS[:use_implement]
46
+ require 'corba/poa'
47
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
48
+ else
49
+ require 'TestS.rb'
50
+ end
51
+
52
+ class MyHello < POA::Test::Hello
53
+
54
+ def initialize(orb)
55
+ @orb = orb
56
+ @msg = 'message'
57
+ @nums = Test::TShortSeq.new((0...10).collect { |i| i*2 })
58
+ s1 = Test::S1.new
59
+ s1.m_one = 123
60
+ s1.m_two = 2.54
61
+ s1.m_three = "field three"
62
+ s1.m_four = Test::S1::S2.new
63
+ s1.m_four.m_b = false
64
+ s1.m_five = ::Test::TE_ZEROTH
65
+ @s1seq = Test::S1Seq.new << s1
66
+ @cube = Test::TLongCube.new((0...3).collect {|x|
67
+ (0...3).collect {|y|
68
+ (0...4).collect {|z| x+(y*10)+(z*100) }
69
+ }
70
+ })
71
+ @anysel = 0
72
+ @s3 = Test::S3.new
73
+ @s3.m_has_more = true
74
+ @s3.m_seq = []
75
+ s3_ = Test::S3.new
76
+ s3_.m_has_more = false
77
+ @s3.m_seq << s3_
78
+ s3_ = Test::S3.new
79
+ s3_.m_has_more = false
80
+ @s3.m_seq << s3_
81
+ @u1 = Test::U1.new
82
+ @u1._disc = Test::TE_FIRST
83
+ @u1.m_str = "Hello world!"
84
+ @u2 = Test::U2.new
85
+ @u2._disc = Test::U2::ONE
86
+ @u2.l_ = 12345
87
+ @u3 = Test::U3.new
88
+ @u3._disc = TRUE
89
+ @u3.lval = 123456
90
+ @u4 = Test::U4.new
91
+ @u4._disc = Test::TE_FIRST
92
+ @u4.m_str = "Hello world!"
93
+ @nex = 0
94
+ end
95
+
96
+ def max_LongLong()
97
+ Test::Max_longlong
98
+ end #of attribute get_Max_LongLong
99
+
100
+ def min_LongLong()
101
+ Test::Min_longlong
102
+ end #of attribute get_Min_LongLong
103
+
104
+ def max_ULongLong()
105
+ Test::Max_ulonglong
106
+ end #of attribute get_Max_ULongLong
107
+
108
+ def min_ULongLong()
109
+ Test::Min_ulonglong
110
+ end #of attribute get_Min_ULongLong
111
+
112
+ def max_Long()
113
+ Test::Max_long
114
+ end #of attribute get_Max_Long
115
+
116
+ def min_Long()
117
+ Test::Min_long
118
+ end #of attribute get_Min_Long
119
+
120
+ def max_ULong()
121
+ Test::Max_ulong
122
+ end #of attribute get_Max_ULong
123
+
124
+ def min_ULong()
125
+ Test::Min_ulong
126
+ end #of attribute get_Min_ULong
127
+
128
+ def max_Short()
129
+ Test::Max_short
130
+ end #of attribute get_Max_Short
131
+
132
+ def min_Short()
133
+ Test::Min_short
134
+ end #of attribute get_Min_Short
135
+
136
+ def max_UShort()
137
+ Test::Max_ushort
138
+ end #of attribute get_Max_UShort
139
+
140
+ def min_UShort()
141
+ Test::Min_ushort
142
+ end #of attribute get_Min_UShort
143
+
144
+ def max_Octet()
145
+ Test::Max_octet
146
+ end #of attribute get_Max_Octet
147
+
148
+ def min_Octet()
149
+ Test::Min_octet
150
+ end #of attribute get_Min_Octet
151
+
152
+ def get_string()
153
+ "Hello there!"
154
+ end
155
+
156
+ def message()
157
+ @msg
158
+ end #of attribute get_message
159
+
160
+ def message=(val)
161
+ @msg = val.to_s
162
+ end #of attribute set_message
163
+
164
+ def numbers()
165
+ @nums
166
+ end #of attribute get_numbers
167
+
168
+ def numbers=(val)
169
+ @nums = val
170
+ end #of attribute set_numbers
171
+
172
+ def list_of_doubles()
173
+ [1.0, 1.1, 1.2, 1.3]
174
+ end #of attribute get_numbers
175
+
176
+ def structSeq()
177
+ @s1seq
178
+ end #of attribute get_structSeq
179
+
180
+ def structSeq=(val)
181
+ @s1seq = val
182
+ end #of attribute set_structSeq
183
+
184
+ def theCube()
185
+ @cube
186
+ end #of attribute get_theCube
187
+
188
+ def theCube=(val)
189
+ @cube = val
190
+ end #of attribute set_theCube
191
+
192
+ def anyValue()
193
+ case @anysel
194
+ when 1
195
+ @cube
196
+ when 2
197
+ @s1seq
198
+ when 3
199
+ CORBA::Any.to_any([1,2,3,4,5], CORBA::TypeCode::Sequence.new(CORBA._tc_long))
200
+ else
201
+ @anysel
202
+ end
203
+ end #of attribute get_anyValue
204
+
205
+ def anyValue=(val)
206
+ @anysel = val.to_i
207
+ end #of attribute set_anyValue
208
+
209
+ def selfref()
210
+ self._this
211
+ end #of attribute get_selfref
212
+
213
+ def s3Value()
214
+ @s3
215
+ end #of attribute get_s3Value
216
+
217
+ def s3Value=(val)
218
+ @s3 = val
219
+ end #of attribute set_s3Value
220
+
221
+ def unionValue()
222
+ @u1
223
+ end #of attribute get_unionValue
224
+
225
+ def unionValue=(val)
226
+ @u1 = val
227
+ end #of attribute set_unionValue
228
+
229
+ def unionValue2()
230
+ @u2
231
+ end #of attribute get_unionValue2
232
+
233
+ def unionValue2=(val)
234
+ @u2 = val
235
+ end #of attribute set_unionValue2
236
+
237
+ def unionValue3()
238
+ @u3
239
+ end #of attribute get_unionValue3
240
+
241
+ def unionValue3=(val)
242
+ @u3 = val
243
+ end #of attribute set_unionValue3
244
+
245
+ def unionValue4()
246
+ @u4
247
+ end #of attribute get_unionValue4
248
+
249
+ def unionValue4=(val)
250
+ @u4 = val
251
+ end #of attribute set_unionValue4
252
+
253
+ def run_test(instr, inoutstr)
254
+ outstr = instr + inoutstr
255
+ inoutstr = instr
256
+ [outstr.size, inoutstr, outstr]
257
+ end
258
+
259
+ def shutdown()
260
+ @orb.shutdown()
261
+ end
262
+ end #of servant Hello
263
+
264
+
265
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
266
+
267
+ obj = orb.resolve_initial_references('RootPOA')
268
+
269
+ root_poa = PortableServer::POA._narrow(obj)
270
+
271
+ poa_man = root_poa.the_POAManager
272
+
273
+ poa_man.activate
274
+
275
+ hello_srv = MyHello.new(orb)
276
+
277
+ hello_oid = root_poa.activate_object(hello_srv)
278
+
279
+ hello_obj = root_poa.id_to_reference(hello_oid)
280
+
281
+ hello_ior = orb.object_to_string(hello_obj)
282
+
283
+ open(OPTIONS[:iorfile], 'w') { |io|
284
+ io.write hello_ior
285
+ }
286
+
287
+ Signal.trap('INT') do
288
+ puts "SIGINT - shutting down ORB..."
289
+ orb.shutdown()
290
+ end
291
+
292
+ if Signal.list.has_key?('USR2')
293
+ Signal.trap('USR2', 'EXIT')
294
+ end
295
+
296
+ orb.run
@@ -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
+ /// Put the interfaces in a module, to avoid global namespace pollution
13
+ module Test
14
+ {
15
+ /// A very simple interface
16
+ interface Hello
17
+ {
18
+ /// Send some data round
19
+ long do_test (in long count, inout string data);
20
+
21
+ /// A method to shutdown the ORB
22
+ /**
23
+ * This method is used to simplify the test shutdown process
24
+ */
25
+ oneway void shutdown ();
26
+ };
27
+ };