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,101 @@
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('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
47
+ else
48
+ require 'TestS.rb'
49
+ end
50
+
51
+ class MyHello < PortableServer::Servant
52
+ include POA::Test::Hello
53
+ include POA::Test::Hello_2
54
+
55
+ def initialize(orb)
56
+ @orb = orb
57
+ end
58
+
59
+ def get_string()
60
+ 'Hello there!'
61
+ end
62
+
63
+ def get_string_2()
64
+ 'Hello there! (2nd edition)'
65
+ end
66
+
67
+ def shutdown()
68
+ @orb.shutdown()
69
+ end
70
+ end # of servant MyHello
71
+
72
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
73
+
74
+ obj = orb.resolve_initial_references('RootPOA')
75
+
76
+ root_poa = PortableServer::POA._narrow(obj)
77
+
78
+ poa_man = root_poa.the_POAManager
79
+
80
+ poa_man.activate
81
+
82
+ hello_srv = MyHello.new(orb)
83
+
84
+ hello_obj = hello_srv._this()
85
+
86
+ hello_ior = orb.object_to_string(hello_obj)
87
+
88
+ open(OPTIONS[:iorfile], 'w') { |io|
89
+ io.write hello_ior
90
+ }
91
+
92
+ Signal.trap('INT') do
93
+ puts 'SIGINT - shutting down ORB...'
94
+ orb.shutdown()
95
+ end
96
+
97
+ if Signal.list.has_key?('USR2')
98
+ Signal.trap('USR2', 'EXIT')
99
+ end
100
+
101
+ orb.run
data/test/Nil/Test.idl ADDED
@@ -0,0 +1,26 @@
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
+ *--------------------------------------------------------------------*/
10
+
11
+ /// Put the interfaces in a module, to avoid global namespace pollution
12
+ module Test
13
+ {
14
+ /// A very simple interface
15
+ interface Hello
16
+ {
17
+ /// Return a simple string
18
+ string get_string ();
19
+
20
+ /// A method to shutdown the ORB
21
+ /**
22
+ * This method is used to simplify the test shutdown process
23
+ */
24
+ oneway void shutdown ();
25
+ };
26
+ };
@@ -0,0 +1,51 @@
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
+ clt = Test.new
44
+
45
+ if !clt.run('test.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
46
+ exit(255)
47
+ end
48
+
49
+ exrc = clt.wait(400)
50
+
51
+ exit(exrc)
data/test/Nil/test.rb ADDED
@@ -0,0 +1,80 @@
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
+ :ior => 'foo'
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 IOR',
29
+ 'Set IOR.',
30
+ "Default: 'corbaname::foo'") { |v| OPTIONS[:ior] = 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/poa'
48
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
49
+ else
50
+ require 'TestS.rb'
51
+ end
52
+
53
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
54
+
55
+ begin
56
+ begin
57
+ tmp = orb.string_to_object(OPTIONS[:ior])
58
+
59
+ assert 'No Nil object reference returned on invalid IOR', CORBA.is_nil(tmp)
60
+
61
+ assert 'No Nil object returned on invalid IOR', tmp.nil?
62
+ rescue CORBA::INV_OBJREF
63
+ tmp = nil
64
+ end
65
+
66
+ assert 'No Nil object reference returned on #_narrow of nil', CORBA.is_nil(Test::Hello._narrow(tmp))
67
+
68
+ assert 'No Nil object returned on #_narrow of nil', Test::Hello._narrow(tmp).nil?
69
+
70
+ o = orb.resolve_initial_references('RootPOA')
71
+
72
+ rootpoa = PortableServer::POA._narrow(o)
73
+
74
+ assert_not 'Failed to resolve RootPOA', CORBA.is_nil(rootpoa) || !rootpoa.is_a?(PortableServer::POA)
75
+
76
+ assert 'Not nil returned for RootPOA.the_parent', CORBA.is_nil(rootpoa.the_parent) && rootpoa.the_parent.nil?
77
+
78
+ ensure
79
+ orb.destroy()
80
+ end
@@ -0,0 +1,178 @@
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
+ TEST_ALL = 0
17
+ TEST_STATE = 1
18
+ TEST_OPERATION = 2
19
+ TEST_EXCEPTION = 3
20
+
21
+ OPTIONS = {
22
+ :use_implement => false,
23
+ :orb_debuglevel => 0,
24
+ :iorfile => 'file://server.ior',
25
+ :test => TEST_ALL
26
+ }
27
+
28
+ ARGV.options do |opts|
29
+ script_name = File.basename($0)
30
+ opts.banner = "Usage: ruby #{script_name} [options]"
31
+
32
+ opts.separator ''
33
+
34
+ opts.on('--k IORFILE',
35
+ 'Set IOR.',
36
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile] = v }
37
+ opts.on('--d LVL',
38
+ 'Set ORBDebugLevel value.',
39
+ 'Default: 0') { |v| OPTIONS[:orb_debuglevel] = v }
40
+ opts.on('--use-implement',
41
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
42
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
43
+
44
+ opts.separator ''
45
+
46
+ opts.on('-h', '--help',
47
+ 'Show this help message.') { puts opts; exit }
48
+
49
+ opts.parse!
50
+ end
51
+
52
+ if OPTIONS[:use_implement]
53
+ require 'corba'
54
+ CORBA.implement('test.idl', OPTIONS)
55
+ else
56
+ require 'testC'
57
+ end
58
+
59
+ def dump_node(node, indent)
60
+ return if node.nil?
61
+
62
+ if $VERBOSE
63
+ STDERR.print ' ' * indent
64
+
65
+ if node.is_a?(StringNode)
66
+ STDERR.puts("#{node} <StringNode> #{node.name}")
67
+ else
68
+ STDERR.puts("#{node} <BaseNode> #{node.name}")
69
+ end
70
+ end
71
+
72
+ dump_node(node.left, indent + 1)
73
+ dump_node(node.right, indent + 1)
74
+ end
75
+
76
+ def dump_tree(tc)
77
+ if $VERBOSE
78
+ STDERR.puts "start tree dump #{tc}"
79
+ end
80
+
81
+ dump_node(tc.root, 1)
82
+
83
+ if $VERBOSE
84
+ STDERR.puts "end tree dump #{tc}"
85
+ end
86
+ end
87
+
88
+ def test_state(abs)
89
+ raise CORBA::BAD_PARAM.new unless abs.is_a?(TreeController)
90
+ dump_tree(abs)
91
+ end
92
+
93
+ def test_operation(abs)
94
+ retval = abs.base_op('base_op')
95
+ if $VERBOSE
96
+ STDERR.puts retval
97
+ end
98
+
99
+ concrete = Foo::_narrow(abs)
100
+
101
+ retval = concrete.foo_op('foo_op')
102
+ if $VERBOSE
103
+ STDERR.puts retval
104
+ end
105
+
106
+ retval = concrete.base_op('base_op')
107
+ if $VERBOSE
108
+ STDERR.puts retval
109
+ end
110
+ end
111
+
112
+ def test_exception(abs)
113
+ begin
114
+ retval = abs.base_op('bad_name')
115
+ if $VERBOSE
116
+ STDERR.puts retval
117
+ end
118
+ rescue BadInput => ex
119
+ if $VERBOSE
120
+ STDERR.puts ex.to_s
121
+ end
122
+ end
123
+ end
124
+
125
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
126
+
127
+ begin
128
+ obj = orb.string_to_object(OPTIONS[:iorfile])
129
+
130
+ assert_not 'Object reference is nil.', CORBA::is_nil(obj)
131
+
132
+ passer = Passer._narrow(obj)
133
+
134
+ if OPTIONS[:test] == TEST_STATE || OPTIONS[:test] == TEST_ALL
135
+ # make sure valuetype factories are registered
136
+ BaseNodeFactory.get_factory(orb)
137
+ StringNodeFactory.get_factory(orb)
138
+ TreeControllerFactory.get_factory(orb)
139
+
140
+ package = passer.pass_state()
141
+ if CORBA::is_nil(package)
142
+ STDERR.puts "ERROR: passer.pass_state returned nil 'out' arg (#{package})"
143
+ end
144
+
145
+ test_state(package)
146
+ end
147
+
148
+ if OPTIONS[:test] != TEST_STATE
149
+ package = passer.pass_ops()
150
+ if CORBA::is_nil(package)
151
+ STDERR.puts "ERROR: passer.pass_ops returned nil 'out' arg (#{package})"
152
+ end
153
+ end
154
+
155
+ if OPTIONS[:test] == TEST_OPERATION || OPTIONS[:test] == TEST_ALL
156
+ test_operation(package)
157
+ end
158
+
159
+ if OPTIONS[:test] == TEST_EXCEPTION || OPTIONS[:test] == TEST_ALL
160
+ test_exception(package)
161
+ end
162
+
163
+ if OPTIONS[:test] == TEST_ALL
164
+ package = passer.pass_nil()
165
+ unless CORBA::is_nil(package)
166
+ STDERR.puts "ERROR: passer.pass_state did NOT return nil 'out' arg (#{package})"
167
+ end
168
+ end
169
+
170
+ # shutdown passer service
171
+
172
+ passer.shutdown()
173
+
174
+ ensure
175
+
176
+ orb.destroy()
177
+
178
+ 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,149 @@
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('test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
47
+ else
48
+ require 'testS'
49
+ end
50
+
51
+ class Foo_i < POA::Foo
52
+ def base_op (inarg)
53
+ if inarg == 'base_op'
54
+ return 'good'
55
+ end
56
+ raise BadInput.new('expected "base_op"')
57
+ end
58
+
59
+ def foo_op (inarg)
60
+ if inarg == 'foo_op'
61
+ return 'good'
62
+ end
63
+ raise BadInput.new('expected "foo_op"')
64
+ end
65
+ end
66
+
67
+ class Passer_i < POA::Passer
68
+ def initialize(orb, poa)
69
+ @orb = orb
70
+ @poa = poa
71
+ end
72
+
73
+ def pass_ops ()
74
+ foo = Foo_i.new
75
+
76
+ objid = @poa.activate_object(foo)
77
+
78
+ object = @poa.id_to_reference(objid)
79
+
80
+ [Foo::_narrow(object)]
81
+ end
82
+
83
+ def pass_state ()
84
+ tc = TreeController.new
85
+
86
+ # Create the root node.
87
+ sn = StringNode.new
88
+ sn.name = 'RootNode'
89
+ tc.root = sn
90
+
91
+ # Create the left leaf.
92
+ l_dummy = StringNode.new
93
+ l_dummy.name = 'LeftNode'
94
+ sn.left = l_dummy
95
+
96
+ # Create the right leaf.
97
+ r_dummy = StringNode.new
98
+ r_dummy.name = 'RightNode'
99
+ sn.right = r_dummy
100
+
101
+ [tc]
102
+ end
103
+
104
+ def pass_nil ()
105
+ [nil]
106
+ end
107
+
108
+ def shutdown ()
109
+ @orb.shutdown()
110
+ end
111
+ end # of servant Passer_i
112
+
113
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
114
+
115
+ # make sure valuetype factories are registered
116
+ BaseNodeFactory.get_factory(orb)
117
+ StringNodeFactory.get_factory(orb)
118
+ TreeControllerFactory.get_factory(orb)
119
+
120
+ obj = orb.resolve_initial_references('RootPOA')
121
+
122
+ root_poa = PortableServer::POA._narrow(obj)
123
+
124
+ poa_man = root_poa.the_POAManager
125
+
126
+ poa_man.activate
127
+
128
+ passer = Passer_i.new(orb, root_poa)
129
+
130
+ obj = passer._this()
131
+
132
+ ior = orb.object_to_string(obj)
133
+
134
+ open(OPTIONS[:iorfile], 'w') { |io|
135
+ io.write ior
136
+ }
137
+
138
+ Signal.trap('INT') do
139
+ puts 'SIGINT - shutting down ORB...'
140
+ orb.shutdown()
141
+ end
142
+
143
+ if Signal.list.has_key?('USR2')
144
+ Signal.trap('USR2', 'EXIT')
145
+ end
146
+
147
+ orb.run
148
+
149
+ exit 0
@@ -0,0 +1,52 @@
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
+ *--------------------------------------------------------------------*/
10
+
11
+ exception BadInput
12
+ {
13
+ string message;
14
+ };
15
+
16
+ abstract interface base
17
+ {
18
+ string base_op (in string inarg)
19
+ raises (BadInput);
20
+ };
21
+
22
+ interface foo : base
23
+ {
24
+ string foo_op (in string inarg)
25
+ raises (BadInput);
26
+ };
27
+
28
+ interface passer
29
+ {
30
+ void pass_ops (out base outarg);
31
+ void pass_state (out base outarg);
32
+ void pass_nil (out base outarg);
33
+ oneway void shutdown ();
34
+ };
35
+
36
+ valuetype BaseNode
37
+ {
38
+ public BaseNode left;
39
+ public BaseNode right;
40
+ };
41
+
42
+ valuetype StringNode : BaseNode
43
+ {
44
+ public string name;
45
+ };
46
+
47
+ valuetype TreeController supports base
48
+ {
49
+ public BaseNode root;
50
+ };
51
+
52
+