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.
- checksums.yaml +7 -0
- data/CHANGES +159 -0
- data/LICENSE +59 -0
- data/README +62 -0
- data/THANKS +52 -0
- data/bin/r2corba +8 -0
- data/bin/r2corba.bat +20 -0
- data/bin/ridlc +11 -0
- data/bin/ridlc.bat +23 -0
- data/bin/rins +7 -0
- data/bin/rins.bat +19 -0
- data/ext/.keep +0 -0
- data/lib/corba/cbase/IORMap.rb +33 -0
- data/lib/corba/cbase/ORB.rb +231 -0
- data/lib/corba/cbase/Request.rb +134 -0
- data/lib/corba/cbase/Streams.rb +129 -0
- data/lib/corba/cbase/Stub.rb +19 -0
- data/lib/corba/cbase/Typecode.rb +441 -0
- data/lib/corba/cbase/Values.rb +129 -0
- data/lib/corba/cbase/exception.rb +66 -0
- data/lib/corba/cbase/poa.rb +23 -0
- data/lib/corba/cbase/policies.rb +78 -0
- data/lib/corba/cbase/post_require.rb +14 -0
- data/lib/corba/cbase/require.rb +28 -0
- data/lib/corba/cmds/base.rb +85 -0
- data/lib/corba/cmds/test.rb +30 -0
- data/lib/corba/common/Any.rb +91 -0
- data/lib/corba/common/IDL.rb +104 -0
- data/lib/corba/common/ORB.rb +368 -0
- data/lib/corba/common/Object.rb +208 -0
- data/lib/corba/common/Request.rb +20 -0
- data/lib/corba/common/Servant.rb +108 -0
- data/lib/corba/common/Struct.rb +22 -0
- data/lib/corba/common/Stub.rb +79 -0
- data/lib/corba/common/Typecode.rb +1121 -0
- data/lib/corba/common/Union.rb +56 -0
- data/lib/corba/common/Values.rb +92 -0
- data/lib/corba/common/const.rb +22 -0
- data/lib/corba/common/exception.rb +68 -0
- data/lib/corba/common/require.rb +27 -0
- data/lib/corba/common/version.rb +22 -0
- data/lib/corba/idl/BiDirPolicyC.rb +63 -0
- data/lib/corba/idl/CosNamingC.rb +461 -0
- data/lib/corba/idl/CosNamingS.rb +309 -0
- data/lib/corba/idl/IDL.rb +21 -0
- data/lib/corba/idl/IORTable.pidl +62 -0
- data/lib/corba/idl/IORTableC.rb +117 -0
- data/lib/corba/idl/MessagingC.rb +904 -0
- data/lib/corba/idl/POAC.rb +930 -0
- data/lib/corba/idl/TAO_Ext.pidl +46 -0
- data/lib/corba/idl/TAO_ExtC.rb +179 -0
- data/lib/corba/idl/r2c_orb.rb +572 -0
- data/lib/corba/idl/require.rb +20 -0
- data/lib/corba/jbase/Any.rb +273 -0
- data/lib/corba/jbase/IORMap.rb +36 -0
- data/lib/corba/jbase/ORB.rb +99 -0
- data/lib/corba/jbase/Object.rb +98 -0
- data/lib/corba/jbase/Request.rb +226 -0
- data/lib/corba/jbase/Servant.rb +247 -0
- data/lib/corba/jbase/ServerRequest.rb +128 -0
- data/lib/corba/jbase/Streams.rb +671 -0
- data/lib/corba/jbase/Stub.rb +38 -0
- data/lib/corba/jbase/Typecode.rb +520 -0
- data/lib/corba/jbase/Values.rb +173 -0
- data/lib/corba/jbase/exception.rb +106 -0
- data/lib/corba/jbase/poa.rb +229 -0
- data/lib/corba/jbase/policies.rb +300 -0
- data/lib/corba/jbase/post_require.rb +14 -0
- data/lib/corba/jbase/require.rb +86 -0
- data/lib/corba/naming.rb +14 -0
- data/lib/corba/naming_service.rb +15 -0
- data/lib/corba/poa.rb +15 -0
- data/lib/corba/policies.rb +18 -0
- data/lib/corba/require.rb +17 -0
- data/lib/corba/svcs/ins/cos_naming.rb +426 -0
- data/lib/corba/svcs/ins/ins.rb +526 -0
- data/lib/corba/svcs/ins/naming_service.rb +119 -0
- data/lib/corba.rb +16 -0
- data/lib/ridlbe/ruby/config.rb +336 -0
- data/lib/ridlbe/ruby/orb.pidlc +0 -0
- data/lib/ridlbe/ruby/require.rb +16 -0
- data/lib/ridlbe/ruby/walker.rb +1582 -0
- data/mkrf_conf_bingem.rb +101 -0
- data/rakelib/bin.rake +80 -0
- data/rakelib/bin.rb +146 -0
- data/rakelib/build.rake +87 -0
- data/rakelib/config.rake +52 -0
- data/rakelib/config.rb +450 -0
- data/rakelib/ext.rake +242 -0
- data/rakelib/ext.rb +308 -0
- data/rakelib/ext_r2tao.rb +232 -0
- data/rakelib/gem.rake +212 -0
- data/rakelib/gem.rb +146 -0
- data/rakelib/package.rake +26 -0
- data/rakelib/test.rake +23 -0
- data/test/BiDirectional/Test.idl +34 -0
- data/test/BiDirectional/client.rb +132 -0
- data/test/BiDirectional/run_test.rb +68 -0
- data/test/BiDirectional/server.ior +1 -0
- data/test/BiDirectional/server.rb +169 -0
- data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
- data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
- data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
- data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
- data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
- data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
- data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
- data/test/Collocation/Diamond.idl +39 -0
- data/test/Collocation/run_test.rb +52 -0
- data/test/Collocation/test.rb +195 -0
- data/test/Connect_Timeout/Test.idl +27 -0
- data/test/Connect_Timeout/client.rb +111 -0
- data/test/Connect_Timeout/run_test.rb +52 -0
- data/test/DII/Test.idl +27 -0
- data/test/DII/client.rb +115 -0
- data/test/DII/run_test.rb +69 -0
- data/test/DII/server.ior +1 -0
- data/test/DII/server.rb +95 -0
- data/test/DSI/Test.idl +27 -0
- data/test/DSI/client.rb +66 -0
- data/test/DSI/run_test.rb +69 -0
- data/test/DSI/server.ior +1 -0
- data/test/DSI/server.rb +106 -0
- data/test/Exceptions/Test.idl +48 -0
- data/test/Exceptions/client.rb +118 -0
- data/test/Exceptions/run_test.rb +69 -0
- data/test/Exceptions/server.ior +1 -0
- data/test/Exceptions/server.rb +131 -0
- data/test/Hello/Test.idl +27 -0
- data/test/Hello/client.rb +78 -0
- data/test/Hello/run_test.rb +71 -0
- data/test/Hello/server.rb +95 -0
- data/test/IDL_Test/Test.idl +113 -0
- data/test/IDL_Test/Test_inc.idl +17 -0
- data/test/IDL_Test/client.rb +102 -0
- data/test/IDL_Test/run_test.rb +69 -0
- data/test/IDL_Test/server.ior +1 -0
- data/test/IDL_Test/server.rb +99 -0
- data/test/IORMap/Test.idl +27 -0
- data/test/IORMap/client.rb +73 -0
- data/test/IORMap/run_test.rb +69 -0
- data/test/IORMap/server.ior +1 -0
- data/test/IORMap/server.rb +114 -0
- data/test/IORTable/Test.idl +27 -0
- data/test/IORTable/client.rb +75 -0
- data/test/IORTable/run_test.rb +69 -0
- data/test/IORTable/server.ior +1 -0
- data/test/IORTable/server.rb +130 -0
- data/test/Implicit_Conversion/Test.idl +31 -0
- data/test/Implicit_Conversion/client.rb +110 -0
- data/test/Implicit_Conversion/run_test.rb +69 -0
- data/test/Implicit_Conversion/server.ior +1 -0
- data/test/Implicit_Conversion/server.rb +99 -0
- data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
- data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
- data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
- data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
- data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
- data/test/Multi_Threading/Simple/Test.idl +27 -0
- data/test/Multi_Threading/Simple/client.rb +88 -0
- data/test/Multi_Threading/Simple/run_test.rb +69 -0
- data/test/Multi_Threading/Simple/server.ior +1 -0
- data/test/Multi_Threading/Simple/server.rb +118 -0
- data/test/Multi_Threading/Threads/Test.idl +31 -0
- data/test/Multi_Threading/Threads/client.rb +80 -0
- data/test/Multi_Threading/Threads/run_test.rb +76 -0
- data/test/Multi_Threading/Threads/server.ior +1 -0
- data/test/Multi_Threading/Threads/server.rb +119 -0
- data/test/Multi_Threading/Threads/watchdog.ior +1 -0
- data/test/Multi_Threading/Threads/watchdog.rb +87 -0
- data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
- data/test/Multiple_Servant_Interfaces/client.rb +70 -0
- data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
- data/test/Multiple_Servant_Interfaces/server.ior +1 -0
- data/test/Multiple_Servant_Interfaces/server.rb +102 -0
- data/test/Nil/Test.idl +27 -0
- data/test/Nil/run_test.rb +52 -0
- data/test/Nil/test.rb +78 -0
- data/test/OBV/AbstractInterface/client.rb +179 -0
- data/test/OBV/AbstractInterface/run_test.rb +69 -0
- data/test/OBV/AbstractInterface/server.ior +1 -0
- data/test/OBV/AbstractInterface/server.rb +149 -0
- data/test/OBV/AbstractInterface/test.idl +53 -0
- data/test/OBV/Custom/OBV.idl +18 -0
- data/test/OBV/Custom/OBV_impl.rb +40 -0
- data/test/OBV/Custom/client.rb +86 -0
- data/test/OBV/Custom/run_test.rb +69 -0
- data/test/OBV/Custom/server.ior +1 -0
- data/test/OBV/Custom/server.rb +100 -0
- data/test/OBV/Simple/OBV.idl +15 -0
- data/test/OBV/Simple/OBV_impl.rb +26 -0
- data/test/OBV/Simple/client.rb +86 -0
- data/test/OBV/Simple/run_test.rb +69 -0
- data/test/OBV/Simple/server.ior +1 -0
- data/test/OBV/Simple/server.rb +100 -0
- data/test/OBV/Simple_Event/Event.idl +15 -0
- data/test/OBV/Simple_Event/Event_impl.rb +26 -0
- data/test/OBV/Simple_Event/client.rb +86 -0
- data/test/OBV/Simple_Event/run_test.rb +69 -0
- data/test/OBV/Simple_Event/server.ior +1 -0
- data/test/OBV/Simple_Event/server.rb +100 -0
- data/test/OBV/Supports/client.rb +116 -0
- data/test/OBV/Supports/run_test.rb +69 -0
- data/test/OBV/Supports/server.ior +1 -0
- data/test/OBV/Supports/server.rb +103 -0
- data/test/OBV/Supports/supports.idl +33 -0
- data/test/OBV/Supports/supports_impl.rb +57 -0
- data/test/OBV/Tree/client.rb +116 -0
- data/test/OBV/Tree/run_test.rb +69 -0
- data/test/OBV/Tree/server.ior +1 -0
- data/test/OBV/Tree/server.rb +117 -0
- data/test/OBV/Tree/test.idl +32 -0
- data/test/OBV/Truncatable/Extra.idl +27 -0
- data/test/OBV/Truncatable/Truncatable.idl +105 -0
- data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
- data/test/OBV/Truncatable/client.rb +279 -0
- data/test/OBV/Truncatable/run_test.rb +69 -0
- data/test/OBV/Truncatable/server.ior +1 -0
- data/test/OBV/Truncatable/server.rb +89 -0
- data/test/OBV/ValueBox/client.rb +497 -0
- data/test/OBV/ValueBox/run_test.rb +69 -0
- data/test/OBV/ValueBox/server.ior +1 -0
- data/test/OBV/ValueBox/server.rb +271 -0
- data/test/OBV/ValueBox/valuebox.idl +101 -0
- data/test/OBV/ValueBox/vb_basic.idl +75 -0
- data/test/OBV/ValueBox/vb_struct.idl +68 -0
- data/test/OBV/ValueBox/vb_union.idl +21 -0
- data/test/Object/Test.idl +27 -0
- data/test/Object/client.rb +103 -0
- data/test/Object/run_test.rb +69 -0
- data/test/Object/server.ior +1 -0
- data/test/Object/server.rb +126 -0
- data/test/POA/Test.idl +27 -0
- data/test/POA/run_test.rb +52 -0
- data/test/POA/test.rb +112 -0
- data/test/Param_Test/Test.idl +182 -0
- data/test/Param_Test/client.rb +277 -0
- data/test/Param_Test/run_test.rb +69 -0
- data/test/Param_Test/server.ior +1 -0
- data/test/Param_Test/server.rb +296 -0
- data/test/Performance/Simple/Test.idl +27 -0
- data/test/Performance/Simple/client.rb +90 -0
- data/test/Performance/Simple/run_test.rb +69 -0
- data/test/Performance/Simple/server.ior +1 -0
- data/test/Performance/Simple/server.rb +95 -0
- data/test/Policies/Test.idl +27 -0
- data/test/Policies/run_test.rb +52 -0
- data/test/Policies/test.rb +144 -0
- data/test/Timeout/client.rb +207 -0
- data/test/Timeout/run_test.rb +69 -0
- data/test/Timeout/server.ior +1 -0
- data/test/Timeout/server.rb +109 -0
- data/test/Timeout/test.idl +19 -0
- data/test/lib/assert.rb +43 -0
- data/test/lib/test.rb +542 -0
- data/test/test_runner.rb +193 -0
- 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
|
+
};
|