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,52 @@
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
+ clt = Test.new
45
+
46
+ if !clt.run('test.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
47
+ exit(255)
48
+ end
49
+
50
+ exrc = clt.wait(400)
51
+
52
+ exit(exrc)
@@ -0,0 +1,112 @@
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'
15
+ include TestUtil::Assertions
16
+
17
+ OPTIONS = {
18
+ :use_implement => false,
19
+ :orb_debuglevel => 0,
20
+ :iorfile => '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("--o IORFILE",
30
+ "Set IOR filename.",
31
+ "Default: '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/poa'
49
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
50
+ else
51
+ require 'TestS.rb'
52
+ end
53
+
54
+ class MyHello < POA::Test::Hello
55
+ def initialize(orb)
56
+ @orb = orb
57
+ end
58
+
59
+ def get_string()
60
+ "Hello there!"
61
+ end
62
+
63
+ def shutdown()
64
+ @orb.shutdown()
65
+ end
66
+ end #of servant MyHello
67
+
68
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
69
+
70
+ begin
71
+ obj = orb.resolve_initial_references('RootPOA')
72
+
73
+ rootpoa = PortableServer::POA._narrow(obj)
74
+
75
+ assert_not 'Failed to resolve RootPOA', CORBA.is_nil(rootpoa) || !rootpoa.is_a?(PortableServer::POA)
76
+
77
+ poaman = rootpoa.the_POAManager
78
+
79
+ assert_not 'Failed to resolve the_POAManager', CORBA.is_nil(poaman) || !poaman.is_a?(PortableServer::POAManager)
80
+
81
+ childpoa = rootpoa.create_POA('childPOA', poaman, [])
82
+
83
+ assert_not 'Failed to create child POA', CORBA.is_nil(childpoa) || !childpoa.is_a?(PortableServer::POA)
84
+
85
+ assert 'POAManager state should have been HOLDING', poaman.get_state == PortableServer::POAManager::HOLDING
86
+
87
+ poaman.activate
88
+
89
+ assert_except('No PortableServer::POA::AdapterNonExistent exception thrown on rootpoa.find_POA(\'non-existent-poa\')',
90
+ PortableServer::POA::AdapterNonExistent) { rootpoa.find_POA('non-existent-poa', true) }
91
+
92
+ childpoa = rootpoa.find_POA('childPOA', true)
93
+
94
+ hello_srv = MyHello.new(orb)
95
+
96
+ assert_except('childpoa.servant_to_id should have thrown ServantNotActive',
97
+ PortableServer::POA::ServantNotActive) { childpoa.servant_to_id(hello_srv) }
98
+
99
+ id = childpoa.activate_object(hello_srv)
100
+
101
+ assert 'object ids returned from #activate_object and #servant_to_id not equal', id == childpoa.servant_to_id(hello_srv)
102
+
103
+ poaman.deactivate(true, true)
104
+
105
+ assert 'POAManager state should have been INACTIVE', poaman.get_state == PortableServer::POAManager::INACTIVE
106
+
107
+ assert_except('poaman.activate should have thrown AdapterInactive',
108
+ PortableServer::POAManager::AdapterInactive) { poaman.activate }
109
+
110
+ ensure
111
+ orb.destroy
112
+ end
@@ -0,0 +1,182 @@
1
+
2
+ #include "orb.idl"
3
+
4
+ #pragma prefix "Remedy"
5
+
6
+ module Types
7
+ {
8
+
9
+ typedef string TString;
10
+
11
+ };
12
+
13
+ /// Put the interfaces in a module, to avoid global namespace pollution
14
+ module Test
15
+ {
16
+ interface Hello;
17
+
18
+ const long long max_longlong = 0x7fffffffffffffff;
19
+ const long long min_longlong = -0x8000000000000000;
20
+
21
+ const unsigned long long max_ulonglong = 0xffffffffffffffff;
22
+ const unsigned long long min_ulonglong = 0;
23
+
24
+ const long max_long = 0x7fffffff;
25
+ const long min_long = -0x80000000;
26
+
27
+ const unsigned long max_ulong = 0xffffffff;
28
+ const unsigned long min_ulong = 0;
29
+
30
+ const short max_short = 0x7fff;
31
+ const short min_short = -0x8000;
32
+
33
+ const unsigned short max_ushort = 0xffff;
34
+ const unsigned short min_ushort = 0;
35
+
36
+ const octet max_octet = 0xff;
37
+ const octet min_octet = 0;
38
+
39
+ typedef short TShort;
40
+ typedef unsigned long TULong;
41
+ typedef string TString;
42
+ typedef Test::TString TString2;
43
+ typedef Types::TString TString3;
44
+ typedef string<128> TString128;
45
+ typedef any TMyAny;
46
+ typedef ::CORBA::StringSeq TStringSeq;
47
+
48
+ const long myConst = 32;
49
+ const octet myOctet = 243;
50
+ const char myChar = 'A';
51
+ const wchar myWChar = L'a';
52
+ const string myString = "ABC";
53
+ const wstring myWString = L"abc\u1234";
54
+
55
+ const short DIM1 = 3;
56
+ typedef long TLongCube[DIM1][3][4];
57
+
58
+ enum test_enum
59
+ {
60
+ TE_ZEROTH,
61
+ TE_FIRST,
62
+ TE_SECOND,
63
+ TE_THIRD,
64
+ TE_FOURTH
65
+ };
66
+
67
+ struct S1
68
+ {
69
+ long m_one;
70
+ double m_two;
71
+ string m_three;
72
+ struct S2 {
73
+ boolean m_b;
74
+ } m_four;
75
+ test_enum m_five;
76
+ };
77
+
78
+ struct S3;
79
+
80
+ typedef sequence<S3> TS3Seq;
81
+ typedef sequence<TS3Seq> TS3SeqSeq;
82
+
83
+ struct S3
84
+ {
85
+ TS3Seq m_seq;
86
+ boolean m_has_more;
87
+ };
88
+
89
+ typedef sequence<S1> S1Seq;
90
+
91
+ typedef sequence<double> TDoubleSeq;
92
+
93
+ typedef sequence<TShort, 10> TShortSeq;
94
+
95
+ typedef test_enum TSWitch;
96
+
97
+ union U1 switch(TSWitch)
98
+ {
99
+ case TE_ZEROTH: long m_l;
100
+ case TE_FIRST:
101
+ case TE_SECOND: string m_str;
102
+ default: boolean m_bool;
103
+ };
104
+
105
+ union U2 switch( enum SWITCH_T { ONE, TWO, THREE })
106
+ {
107
+ case ONE: long l_;
108
+ case TWO: boolean b_;
109
+ case THREE: string s_;
110
+ };
111
+
112
+ union U3 switch(boolean)
113
+ {
114
+ case TRUE: long lval;
115
+ };
116
+
117
+ union U4 switch(TSWitch)
118
+ {
119
+ case TE_ZEROTH: long m_l;
120
+ case TE_FIRST:
121
+ case TE_SECOND: string m_str;
122
+ };
123
+
124
+ /// A very simple interface
125
+ interface Hello
126
+ {
127
+ readonly attribute long long max_LongLong;
128
+ readonly attribute long long min_LongLong;
129
+
130
+ readonly attribute unsigned long long max_ULongLong;
131
+ readonly attribute unsigned long long min_ULongLong;
132
+
133
+ readonly attribute long max_Long;
134
+ readonly attribute long min_Long;
135
+
136
+ readonly attribute unsigned long max_ULong;
137
+ readonly attribute unsigned long min_ULong;
138
+
139
+ readonly attribute short max_Short;
140
+ readonly attribute short min_Short;
141
+
142
+ readonly attribute unsigned short max_UShort;
143
+ readonly attribute unsigned short min_UShort;
144
+
145
+ readonly attribute octet max_Octet;
146
+ readonly attribute octet min_Octet;
147
+
148
+ TString2 get_string();
149
+
150
+ attribute TString3 _Message;
151
+
152
+ attribute TShortSeq Numbers;
153
+
154
+ readonly attribute TDoubleSeq list_of_doubles;
155
+
156
+ attribute S1Seq StructSeq;
157
+
158
+ attribute TLongCube theCube;
159
+
160
+ attribute any AnyValue;
161
+
162
+ readonly attribute Hello selfref;
163
+
164
+ attribute any S3Value;
165
+
166
+ attribute U1 UnionValue;
167
+
168
+ attribute U2 UnionValue2;
169
+
170
+ attribute U3 UnionValue3;
171
+
172
+ attribute U4 UnionValue4;
173
+
174
+ long run_test(in TString instr, inout string inoutstr, out string outstr);
175
+
176
+ /// A method to shutdown the ORB
177
+ /**
178
+ * This method is used to simplify the test shutdown process
179
+ */
180
+ oneway void shutdown ();
181
+ };
182
+ };
@@ -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