sapnwrfc 0.23-i686-linux → 0.24-i686-linux
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +28 -0
- data/README.rdoc +72 -0
- data/ext/nwsaprfc/nwsaprfc.so +0 -0
- data/lib/sapnwrfc.rb +8 -6
- data/lib/sapnwrfc/base.rb +3 -1
- data/lib/sapnwrfc/config.rb +1 -0
- data/lib/sapnwrfc/connection.rb +1 -0
- data/lib/sapnwrfc/functions.rb +1 -0
- data/lib/sapnwrfc/parameters.rb +1 -0
- data/lib/sapnwrfc/server.rb +1 -0
- data/lib/sapnwrfc/version.rb +3 -0
- data/test/sap.yml +11 -0
- data/test/test_attributes.rb +52 -0
- data/test/test_call.rb +128 -0
- data/test/test_changing.rb +81 -0
- data/test/test_config.rb +44 -0
- data/test/test_connect.rb +108 -0
- data/test/test_data.rb +165 -0
- data/test/test_deep.rb +162 -0
- data/test/test_functions.rb +67 -0
- data/test/test_logger.rb +65 -0
- data/test/test_sflight.rb +71 -0
- data/test/testregister.rb +87 -0
- data/test/testregister2.rb +88 -0
- data/test/testsuite.rb +33 -0
- metadata +40 -10
data/test/test_config.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + '/lib')
|
2
|
+
$:.unshift(File.dirname(__FILE__) + '/ext/nwsaprfc')
|
3
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
4
|
+
$:.unshift(File.dirname(__FILE__) + '/../ext/nwsaprfc')
|
5
|
+
|
6
|
+
require 'sapnwrfc'
|
7
|
+
|
8
|
+
$TEST_FILE = 'test/alternate_sap.yml'
|
9
|
+
|
10
|
+
require 'test/unit'
|
11
|
+
require 'test/unit/assertions'
|
12
|
+
|
13
|
+
class SAPConfigTest < Test::Unit::TestCase
|
14
|
+
|
15
|
+
|
16
|
+
def setup
|
17
|
+
FileUtils.cp('./test/sap.yml', 'sap.yml')
|
18
|
+
SAPNW::Base.load_config
|
19
|
+
#SAP_LOGGER.warn "program: #{$0}\n"
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_BASIC_00010_Config_Loaded
|
23
|
+
assert( SAPNW::Base.config.length >= 5 )
|
24
|
+
assert( SAPNW::Base.config['ashost'].length > 3)
|
25
|
+
assert( SAPNW::Base.config['sysnr'].length == 2 )
|
26
|
+
assert( SAPNW::Base.config['client'].length == 3 )
|
27
|
+
assert( SAPNW::Base.config['user'].length >= 2 )
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_BASIC_00020_Alternate_Config
|
31
|
+
SAPNW::Base.config_location = $TEST_FILE
|
32
|
+
assert( config = SAPNW::Base.load_config )
|
33
|
+
#$stderr.print "config length: #{config.length}\n"
|
34
|
+
assert( config.length >= 5 )
|
35
|
+
assert( SAPNW::Base.config.length >= 5 )
|
36
|
+
assert( SAPNW::Base.config['ashost'].length > 3)
|
37
|
+
assert( SAPNW::Base.config['sysnr'].length == 2 )
|
38
|
+
assert( SAPNW::Base.config['client'].length == 3 )
|
39
|
+
assert( SAPNW::Base.config['user'].length >= 2 )
|
40
|
+
end
|
41
|
+
|
42
|
+
def teardown
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
$:.unshift(File.dirname(__FILE__) + '/lib')
|
3
|
+
$:.unshift(File.dirname(__FILE__) + '/ext/nwsaprfc')
|
4
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
5
|
+
$:.unshift(File.dirname(__FILE__) + '/../ext/nwsaprfc')
|
6
|
+
|
7
|
+
require 'sapnwrfc'
|
8
|
+
|
9
|
+
$TEST_FILE = ENV.has_key?('SAP_YML') ? ENV['SAP_YML'] : 'sap.yml'
|
10
|
+
|
11
|
+
require 'test/unit'
|
12
|
+
require 'test/unit/assertions'
|
13
|
+
|
14
|
+
class SAPConnectTest < Test::Unit::TestCase
|
15
|
+
def setup
|
16
|
+
#SAP_LOGGER.warn "Current DIR: #{Dir.pwd}\n"
|
17
|
+
if FileTest.exists?($TEST_FILE)
|
18
|
+
SAPNW::Base.config_location = $TEST_FILE
|
19
|
+
else
|
20
|
+
SAPNW::Base.config_location = 'test/' + $TEST_FILE
|
21
|
+
end
|
22
|
+
SAPNW::Base.load_config
|
23
|
+
#SAP_LOGGER.warn "program: #{$0}\n"
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_BASIC_00010_Basic_Connect
|
27
|
+
conn = nil
|
28
|
+
begin
|
29
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
30
|
+
assert(conn.close)
|
31
|
+
#assert(conn = SAPNW::Base.rfc_connect(:user => 'developer', :passwd => 'developer'))
|
32
|
+
#assert(conn.close)
|
33
|
+
rescue SAPNW::RFC::ConnectionException => e
|
34
|
+
SAP_LOGGER.warn "ConnectionException ERROR: #{e.inspect} - #{e.error.inspect}\n"
|
35
|
+
end
|
36
|
+
SAP_LOGGER.warn "end of test 1\n"
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_BASIC_00015_Basic_Connect_Ping
|
40
|
+
conn = nil
|
41
|
+
begin
|
42
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
43
|
+
assert(conn.ping)
|
44
|
+
assert(conn.close)
|
45
|
+
assert(!conn.ping)
|
46
|
+
#assert(conn = SAPNW::Base.rfc_connect(:user => 'developer', :passwd => 'developer'))
|
47
|
+
#assert(conn.close)
|
48
|
+
rescue SAPNW::RFC::ConnectionException => e
|
49
|
+
SAP_LOGGER.warn "ConnectionException ERROR: #{e.inspect} - #{e.error.inspect}\n"
|
50
|
+
end
|
51
|
+
SAP_LOGGER.warn "end of test 1\n"
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_BASIC_00020_Connection_Out_Of_Scope
|
55
|
+
5.times do
|
56
|
+
conn = nil
|
57
|
+
begin
|
58
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
59
|
+
rescue SAPNW::RFC::ConnectionException => e
|
60
|
+
SAP_LOGGER.warn "ConnectionException ERROR: #{e.inspect} - #{e.error.inspect}\n"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
GC.start
|
64
|
+
SAP_LOGGER.warn "end of test 2\n"
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_BASIC_00030_Volume_Connections
|
68
|
+
50.times do
|
69
|
+
conn = nil
|
70
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
71
|
+
end
|
72
|
+
GC.start
|
73
|
+
SAP_LOGGER.warn "end of test 3.1\n"
|
74
|
+
50.times do
|
75
|
+
conn = nil
|
76
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
77
|
+
end
|
78
|
+
GC.start
|
79
|
+
SAP_LOGGER.warn "end of test 3.2\n"
|
80
|
+
50.times do
|
81
|
+
conn = nil
|
82
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
83
|
+
end
|
84
|
+
GC.start
|
85
|
+
SAP_LOGGER.warn "end of test 3.3\n"
|
86
|
+
50.times do
|
87
|
+
conn = nil
|
88
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
89
|
+
end
|
90
|
+
GC.start
|
91
|
+
SAP_LOGGER.warn "end of test 3.4\n"
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_BASIC_00040_Volume_Connections_With_Close
|
95
|
+
99.times do
|
96
|
+
conn = nil
|
97
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
98
|
+
assert(conn.close)
|
99
|
+
end
|
100
|
+
SAP_LOGGER.warn "end of test 4\n"
|
101
|
+
GC.start
|
102
|
+
sleep(5)
|
103
|
+
GC.start
|
104
|
+
end
|
105
|
+
|
106
|
+
def teardown
|
107
|
+
end
|
108
|
+
end
|
data/test/test_data.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
$KCODE = 'u'
|
3
|
+
$:.unshift(File.dirname(__FILE__) + '/lib')
|
4
|
+
$:.unshift(File.dirname(__FILE__) + '/ext/nwsaprfc')
|
5
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
6
|
+
$:.unshift(File.dirname(__FILE__) + '/../ext/nwsaprfc')
|
7
|
+
|
8
|
+
require 'sapnwrfc'
|
9
|
+
|
10
|
+
$ITER = 5
|
11
|
+
$INNER = 5
|
12
|
+
$TEST_FILE = ENV.has_key?('SAP_YML') ? ENV['SAP_YML'] : 'sap.yml'
|
13
|
+
|
14
|
+
require 'test/unit'
|
15
|
+
require 'test/unit/assertions'
|
16
|
+
|
17
|
+
class SAPDataTest < Test::Unit::TestCase
|
18
|
+
def setup
|
19
|
+
#SAP_LOGGER.warn "Current DIR: #{Dir.pwd}\n"
|
20
|
+
if FileTest.exists?($TEST_FILE)
|
21
|
+
SAPNW::Base.config_location = $TEST_FILE
|
22
|
+
else
|
23
|
+
SAPNW::Base.config_location = 'test/' + $TEST_FILE
|
24
|
+
end
|
25
|
+
SAPNW::Base.load_config
|
26
|
+
#SAP_LOGGER.warn "program: #{$0}\n"
|
27
|
+
begin
|
28
|
+
conn = SAPNW::Base.rfc_connect
|
29
|
+
fd = conn.discover("Z_TEST_DATA")
|
30
|
+
@skip = nil
|
31
|
+
rescue SAPNW::RFC::ConnectionException => e
|
32
|
+
SAP_LOGGER.warn "Z_TEST_DATA: cant find fuction module - bypass tests (#{e.error.inspect})"
|
33
|
+
@skipp = true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_BASIC_00010_Test_Data
|
38
|
+
unless @skip
|
39
|
+
$ITER.to_i.times do |iter|
|
40
|
+
begin
|
41
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
42
|
+
attrib = conn.connection_attributes
|
43
|
+
SAP_LOGGER.debug "Connection Attributes: #{attrib.inspect}\n"
|
44
|
+
fd = conn.discover("Z_TEST_DATA")
|
45
|
+
assert(fd.name == "Z_TEST_DATA")
|
46
|
+
f = fd.new_function_call
|
47
|
+
assert(f.name == "Z_TEST_DATA")
|
48
|
+
f.CHAR = "German: öäüÖÄÜß"
|
49
|
+
f.INT1 = 123
|
50
|
+
f.INT2 = 1234
|
51
|
+
f.INT4 = 123456
|
52
|
+
f.FLOAT = 123456.00
|
53
|
+
f.NUMC = '12345'
|
54
|
+
f.DATE = '20060709'
|
55
|
+
f.TIME = '200607'
|
56
|
+
f.BCD = 200607.123
|
57
|
+
f.ISTRUCT = { 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' }
|
58
|
+
f.DATA = [{ 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' }]
|
59
|
+
#SAP_LOGGER.warn "FunctionCall: #{f.inspect}\n"
|
60
|
+
#SAP_LOGGER.warn "FunctionCall PROGRAM_NAME: #{f.PROGRAM_NAME.value}/#{f.parameters['PROGRAM_NAME'].type}\n"
|
61
|
+
begin
|
62
|
+
f.invoke
|
63
|
+
rescue SAPNW::RFC::FunctionCallException => e
|
64
|
+
SAP_LOGGER.warn "FunctionCallException on iter #{iter}: #{e.error.inspect}\n"
|
65
|
+
raise "gone"
|
66
|
+
end
|
67
|
+
f.RESULT.each do |row|
|
68
|
+
SAP_LOGGER.debug "row: #{row.inspect}"
|
69
|
+
end
|
70
|
+
f.DATA.each do |row|
|
71
|
+
SAP_LOGGER.debug "row: #{row.inspect}"
|
72
|
+
end
|
73
|
+
|
74
|
+
SAP_LOGGER.debug "ECHAR: #{f.ECHAR}"
|
75
|
+
SAP_LOGGER.debug "EINT1: #{f.EINT1}"
|
76
|
+
SAP_LOGGER.debug "EINT2: #{f.EINT2}"
|
77
|
+
SAP_LOGGER.debug "EINT4: #{f.EINT4}"
|
78
|
+
SAP_LOGGER.debug "EFLOAT: #{f.EFLOAT}"
|
79
|
+
SAP_LOGGER.debug "ENUMC: #{f.ENUMC}"
|
80
|
+
SAP_LOGGER.debug "EDATE: #{f.EDATE}"
|
81
|
+
SAP_LOGGER.debug "ETIME: #{f.ETIME}"
|
82
|
+
SAP_LOGGER.debug "EBCD: #{f.EBCD}"
|
83
|
+
|
84
|
+
SAP_LOGGER.debug "ESTRUCT: #{f.ESTRUCT.inspect}"
|
85
|
+
#assert(conn.close)
|
86
|
+
rescue SAPNW::RFC::ConnectionException => e
|
87
|
+
SAP_LOGGER.warn "ConnectionException ERROR: #{e.inspect} - #{e.error.inspect}\n"
|
88
|
+
end
|
89
|
+
GC.start unless iter % 50
|
90
|
+
end
|
91
|
+
GC.start
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_BASIC_00020_Test_Data
|
96
|
+
unless @skip
|
97
|
+
begin
|
98
|
+
$ITER.times do |cnt|
|
99
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
100
|
+
attrib = conn.connection_attributes
|
101
|
+
SAP_LOGGER.debug "Connection Attributes: #{attrib.inspect}\n"
|
102
|
+
fd = conn.discover("Z_TEST_DATA")
|
103
|
+
assert(fd.name == "Z_TEST_DATA")
|
104
|
+
$INNER.to_i.times do |iter|
|
105
|
+
SAP_LOGGER.debug "Start of iteration: #{cnt}/#{iter}"
|
106
|
+
f = fd.new_function_call
|
107
|
+
assert(f.name == "Z_TEST_DATA")
|
108
|
+
f.CHAR = "German: öäüÖÄÜß"
|
109
|
+
f.INT1 = 123
|
110
|
+
f.INT2 = 1234
|
111
|
+
f.INT4 = 123456
|
112
|
+
f.FLOAT = 123456.00
|
113
|
+
f.NUMC = '12345'
|
114
|
+
f.DATE = '20060709'
|
115
|
+
f.TIME = '200607'
|
116
|
+
f.BCD = 200607.123
|
117
|
+
f.ISTRUCT = { 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' }
|
118
|
+
f.DATA = [
|
119
|
+
{ 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' },
|
120
|
+
{ 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' },
|
121
|
+
{ 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' },
|
122
|
+
{ 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' },
|
123
|
+
{ 'ZCHAR' => "German: öäüÖÄÜß", 'ZINT1' => 54, 'ZINT2' => 134, 'ZIT4' => 123456, 'ZFLT' => 123456.00, 'ZNUMC' => '12345', 'ZDATE' => '20060709', 'ZTIME' => '200607', 'ZBCD' => '200607.123' }
|
124
|
+
]
|
125
|
+
#SAP_LOGGER.warn "FunctionCall: #{f.inspect}\n"
|
126
|
+
#SAP_LOGGER.warn "FunctionCall PROGRAM_NAME: #{f.PROGRAM_NAME.value}/#{f.parameters['PROGRAM_NAME'].type}\n"
|
127
|
+
begin
|
128
|
+
f.invoke
|
129
|
+
rescue SAPNW::RFC::FunctionCallException => e
|
130
|
+
SAP_LOGGER.warn "FunctionCallException on iter #{cnt}/#{iter}: #{e.error.inspect}\n"
|
131
|
+
raise "gone"
|
132
|
+
end
|
133
|
+
f.RESULT.each do |row|
|
134
|
+
SAP_LOGGER.debug "row: #{row.inspect}"
|
135
|
+
end
|
136
|
+
f.DATA.each do |row|
|
137
|
+
SAP_LOGGER.debug "row: #{row.inspect}"
|
138
|
+
end
|
139
|
+
|
140
|
+
SAP_LOGGER.debug "ECHAR: #{f.ECHAR}"
|
141
|
+
SAP_LOGGER.debug "EINT1: #{f.EINT1}"
|
142
|
+
SAP_LOGGER.debug "EINT2: #{f.EINT2}"
|
143
|
+
SAP_LOGGER.debug "EINT4: #{f.EINT4}"
|
144
|
+
SAP_LOGGER.debug "EFLOAT: #{f.EFLOAT}"
|
145
|
+
SAP_LOGGER.debug "ENUMC: #{f.ENUMC}"
|
146
|
+
SAP_LOGGER.debug "EDATE: #{f.EDATE}"
|
147
|
+
SAP_LOGGER.debug "ETIME: #{f.ETIME}"
|
148
|
+
SAP_LOGGER.debug "EBCD: #{f.EBCD}"
|
149
|
+
|
150
|
+
SAP_LOGGER.debug "ESTRUCT: #{f.ESTRUCT.inspect}"
|
151
|
+
GC.start unless iter % 10
|
152
|
+
end
|
153
|
+
assert(conn.close)
|
154
|
+
GC.start
|
155
|
+
end
|
156
|
+
rescue SAPNW::RFC::ConnectionException => e
|
157
|
+
SAP_LOGGER.warn "ConnectionException ERROR: #{e.inspect} - #{e.error.inspect}\n"
|
158
|
+
end
|
159
|
+
GC.start
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def teardown
|
164
|
+
end
|
165
|
+
end
|
data/test/test_deep.rb
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
$KCODE = 'u'
|
3
|
+
$:.unshift(File.dirname(__FILE__) + '/lib')
|
4
|
+
$:.unshift(File.dirname(__FILE__) + '/ext/nwsaprfc')
|
5
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
6
|
+
$:.unshift(File.dirname(__FILE__) + '/../ext/nwsaprfc')
|
7
|
+
|
8
|
+
require 'sapnwrfc'
|
9
|
+
|
10
|
+
$TEST_FILE = ENV.has_key?('SAP_YML') ? ENV['SAP_YML'] : 'sap.yml'
|
11
|
+
|
12
|
+
$ITER = 50
|
13
|
+
|
14
|
+
require 'test/unit'
|
15
|
+
require 'test/unit/assertions'
|
16
|
+
|
17
|
+
class SAPDeepTest < Test::Unit::TestCase
|
18
|
+
def setup
|
19
|
+
#SAP_LOGGER.warn "Current DIR: #{Dir.pwd}\n"
|
20
|
+
if FileTest.exists?($TEST_FILE)
|
21
|
+
SAPNW::Base.config_location = $TEST_FILE
|
22
|
+
else
|
23
|
+
SAPNW::Base.config_location = 'test/' + $TEST_FILE
|
24
|
+
end
|
25
|
+
SAPNW::Base.load_config
|
26
|
+
#SAP_LOGGER.warn "program: #{$0}\n"
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_BASIC_00010_Test_Deep
|
30
|
+
begin
|
31
|
+
$ITER.times do |iter|
|
32
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
33
|
+
attrib = conn.connection_attributes
|
34
|
+
SAP_LOGGER.debug "Connection Attributes: #{attrib.inspect}\n"
|
35
|
+
fds = conn.discover("STFC_DEEP_STRUCTURE")
|
36
|
+
SAP_LOGGER.debug "Parameters: #{fds.parameters.keys.inspect}\n"
|
37
|
+
fs = fds.new_function_call
|
38
|
+
fs.IMPORTSTRUCT = { 'I' => 123, 'C' => 'AbCdEf', 'STR' => 'The quick brown fox ...', 'XSTR' => ["deadbeef"].pack("H*") }
|
39
|
+
fs.invoke
|
40
|
+
SAP_LOGGER.debug "RESPTEXT: #{fs.RESPTEXT.inspect}\n"
|
41
|
+
SAP_LOGGER.debug "ECHOSTRUCT: #{fs.ECHOSTRUCT.inspect}\n"
|
42
|
+
assert(fs.ECHOSTRUCT['I'] == 123)
|
43
|
+
assert(fs.ECHOSTRUCT['C'].rstrip == 'AbCdEf')
|
44
|
+
assert(fs.ECHOSTRUCT['STR'] == 'The quick brown fox ...')
|
45
|
+
assert(fs.ECHOSTRUCT['XSTR'].unpack("H*").first == 'deadbeef')
|
46
|
+
fdt = conn.discover("STFC_DEEP_TABLE")
|
47
|
+
SAP_LOGGER.debug "Parameters: #{fdt.parameters.keys.inspect}\n"
|
48
|
+
ft = fdt.new_function_call
|
49
|
+
ft.IMPORT_TAB = [{ 'I' => 123, 'C' => 'AbCdEf', 'STR' => 'The quick brown fox ...', 'XSTR' => ["deadbeef"].pack("H*") }]
|
50
|
+
ft.invoke
|
51
|
+
SAP_LOGGER.debug "RESPTEXT: #{ft.RESPTEXT.inspect}\n"
|
52
|
+
SAP_LOGGER.debug "EXPORT_TAB: #{ft.EXPORT_TAB.inspect}\n"
|
53
|
+
assert(ft.EXPORT_TAB[0]['I'] == 123)
|
54
|
+
assert(ft.EXPORT_TAB[0]['C'].rstrip == "AbCdEf")
|
55
|
+
assert(ft.EXPORT_TAB[0]['STR'] == 'The quick brown fox ...')
|
56
|
+
assert(ft.EXPORT_TAB[1]['C'].rstrip == "Appended")
|
57
|
+
ft.EXPORT_TAB.each do |row|
|
58
|
+
SAP_LOGGER.debug "XSTR: #{row['XSTR'].unpack("H*")}#\n"
|
59
|
+
assert(row['XSTR'].unpack("H*").first == 'deadbeef')
|
60
|
+
end
|
61
|
+
assert(conn.close)
|
62
|
+
GC.start unless iter % 50
|
63
|
+
end
|
64
|
+
rescue SAPNW::RFC::FunctionCallException => e
|
65
|
+
SAP_LOGGER.warn "FunctionCallException: #{e.error.inspect}\n"
|
66
|
+
raise "gone"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_BASIC_00020_Test_Deep
|
71
|
+
begin
|
72
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
73
|
+
attrib = conn.connection_attributes
|
74
|
+
SAP_LOGGER.debug "Connection Attributes: #{attrib.inspect}\n"
|
75
|
+
fds = conn.discover("STFC_DEEP_STRUCTURE")
|
76
|
+
SAP_LOGGER.debug "Parameters: #{fds.parameters.keys.inspect}\n"
|
77
|
+
fdt = conn.discover("STFC_DEEP_TABLE")
|
78
|
+
SAP_LOGGER.debug "Parameters: #{fdt.parameters.keys.inspect}\n"
|
79
|
+
$ITER.times do |iter|
|
80
|
+
GC.start unless iter % 50
|
81
|
+
fs = fds.new_function_call
|
82
|
+
fs.IMPORTSTRUCT = { 'I' => 123, 'C' => 'AbCdEf', 'STR' => 'The quick brown fox ...', 'XSTR' => ["deadbeef"].pack("H*") }
|
83
|
+
fs.invoke
|
84
|
+
SAP_LOGGER.debug "RESPTEXT: #{fs.RESPTEXT.inspect}\n"
|
85
|
+
SAP_LOGGER.debug "ECHOSTRUCT: #{fs.ECHOSTRUCT.inspect}\n"
|
86
|
+
assert(fs.ECHOSTRUCT['I'] == 123)
|
87
|
+
assert(fs.ECHOSTRUCT['C'].rstrip == 'AbCdEf')
|
88
|
+
assert(fs.ECHOSTRUCT['STR'] == 'The quick brown fox ...')
|
89
|
+
assert(fs.ECHOSTRUCT['XSTR'].unpack("H*").first == 'deadbeef')
|
90
|
+
ft = fdt.new_function_call
|
91
|
+
ft.IMPORT_TAB = [{ 'I' => 123, 'C' => 'AbCdEf', 'STR' => 'The quick brown fox ...', 'XSTR' => ["deadbeef"].pack("H*") }]
|
92
|
+
ft.invoke
|
93
|
+
SAP_LOGGER.debug "RESPTEXT: #{ft.RESPTEXT.inspect}\n"
|
94
|
+
SAP_LOGGER.debug "EXPORT_TAB: #{ft.EXPORT_TAB.inspect}\n"
|
95
|
+
assert(ft.EXPORT_TAB[0]['I'] == 123)
|
96
|
+
assert(ft.EXPORT_TAB[0]['C'].rstrip == "AbCdEf")
|
97
|
+
assert(ft.EXPORT_TAB[0]['STR'] == 'The quick brown fox ...')
|
98
|
+
ft.EXPORT_TAB.each do |row|
|
99
|
+
SAP_LOGGER.debug "XSTR: #{row['XSTR'].unpack("H*")}#\n"
|
100
|
+
assert(row['XSTR'].unpack("H*").first == 'deadbeef')
|
101
|
+
end
|
102
|
+
end
|
103
|
+
assert(conn.close)
|
104
|
+
rescue SAPNW::RFC::FunctionCallException => e
|
105
|
+
SAP_LOGGER.warn "FunctionCallException: #{e.error.inspect}\n"
|
106
|
+
raise "gone"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_BASIC_00030_Test_Deep
|
111
|
+
begin
|
112
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
113
|
+
attrib = conn.connection_attributes
|
114
|
+
SAP_LOGGER.debug "Connection Attributes: #{attrib.inspect}\n"
|
115
|
+
fdt = conn.discover("STFC_DEEP_TABLE")
|
116
|
+
SAP_LOGGER.debug "Parameters: #{fdt.parameters.keys.inspect}\n"
|
117
|
+
ft = fdt.new_function_call
|
118
|
+
ft.IMPORT_TAB = [{ 'I' => 123, 'C' => 'AbCdEf', 'STR' => 'The quick brown fox ...', 'XSTR' => ["deadbeef"].pack("H*") }]
|
119
|
+
ft.invoke
|
120
|
+
SAP_LOGGER.debug "RESPTEXT: #{ft.RESPTEXT.inspect}\n"
|
121
|
+
SAP_LOGGER.debug "EXPORT_TAB: #{ft.EXPORT_TAB.inspect}\n"
|
122
|
+
assert(ft.EXPORT_TAB[0]['I'] == 123)
|
123
|
+
assert(ft.EXPORT_TAB[0]['C'].rstrip == "AbCdEf")
|
124
|
+
assert(ft.EXPORT_TAB[0]['STR'] == 'The quick brown fox ...')
|
125
|
+
assert(ft.EXPORT_TAB[1]['C'].rstrip == "Appended")
|
126
|
+
ft.EXPORT_TAB.each do |row|
|
127
|
+
SAP_LOGGER.debug "XSTR: #{row['XSTR'].unpack("H*")}#\n"
|
128
|
+
assert(row['XSTR'].unpack("H*").first == 'deadbeef')
|
129
|
+
end
|
130
|
+
assert(conn.close)
|
131
|
+
rescue SAPNW::RFC::FunctionCallException => e
|
132
|
+
SAP_LOGGER.warn "FunctionCallException: #{e.error.inspect}\n"
|
133
|
+
raise "gone"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_BASIC_00040_Test_Deep
|
138
|
+
begin
|
139
|
+
assert(conn = SAPNW::Base.rfc_connect)
|
140
|
+
attrib = conn.connection_attributes
|
141
|
+
SAP_LOGGER.debug "Connection Attributes: #{attrib.inspect}\n"
|
142
|
+
fds = conn.discover("STFC_DEEP_STRUCTURE")
|
143
|
+
SAP_LOGGER.debug "Parameters: #{fds.parameters.keys.inspect}\n"
|
144
|
+
fs = fds.new_function_call
|
145
|
+
fs.IMPORTSTRUCT = { 'I' => 123, 'C' => 'AbCdEf', 'STR' => 'The quick brown fox ...', 'XSTR' => ["deadbeef"].pack("H*") }
|
146
|
+
fs.invoke
|
147
|
+
SAP_LOGGER.debug "RESPTEXT: #{fs.RESPTEXT.inspect}\n"
|
148
|
+
SAP_LOGGER.debug "ECHOSTRUCT: #{fs.ECHOSTRUCT.inspect}\n"
|
149
|
+
assert(fs.ECHOSTRUCT['I'] == 123)
|
150
|
+
assert(fs.ECHOSTRUCT['C'].rstrip == 'AbCdEf')
|
151
|
+
assert(fs.ECHOSTRUCT['STR'] == 'The quick brown fox ...')
|
152
|
+
assert(fs.ECHOSTRUCT['XSTR'].unpack("H*").first == 'deadbeef')
|
153
|
+
assert(conn.close)
|
154
|
+
rescue SAPNW::RFC::FunctionCallException => e
|
155
|
+
SAP_LOGGER.warn "FunctionCallException: #{e.error.inspect}\n"
|
156
|
+
raise "gone"
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
def teardown
|
161
|
+
end
|
162
|
+
end
|