ruby-oci8 1.0.6-x86-mswin32-60
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.
- data/ChangeLog +693 -0
- data/Makefile +51 -0
- data/NEWS +407 -0
- data/README +415 -0
- data/VERSION +1 -0
- data/dist-files +71 -0
- data/doc/api.en.html +527 -0
- data/doc/api.en.rd +554 -0
- data/doc/api.ja.html +525 -0
- data/doc/api.ja.rd +557 -0
- data/doc/manual.css +35 -0
- data/ext/oci8/oci8lib.so +0 -0
- data/lib/dbd/OCI8.rb +591 -0
- data/lib/oci8.rb +1655 -0
- data/lib/oci8.rb.in +1655 -0
- data/metaconfig +142 -0
- data/pre-distclean.rb +7 -0
- data/ruby-oci8.gemspec +54 -0
- data/ruby-oci8.spec +62 -0
- data/setup.rb +1331 -0
- data/support/README +4 -0
- data/support/runit/assert.rb +281 -0
- data/support/runit/cui/testrunner.rb +101 -0
- data/support/runit/error.rb +4 -0
- data/support/runit/method_mappable.rb +20 -0
- data/support/runit/robserver.rb +25 -0
- data/support/runit/setuppable.rb +15 -0
- data/support/runit/teardownable.rb +16 -0
- data/support/runit/testcase.rb +113 -0
- data/support/runit/testfailure.rb +25 -0
- data/support/runit/testresult.rb +121 -0
- data/support/runit/testsuite.rb +43 -0
- data/support/runit/version.rb +3 -0
- data/test/README +4 -0
- data/test/config.rb +129 -0
- data/test/test_all.rb +48 -0
- data/test/test_bind_raw.rb +53 -0
- data/test/test_bind_time.rb +191 -0
- data/test/test_break.rb +81 -0
- data/test/test_clob.rb +101 -0
- data/test/test_connstr.rb +80 -0
- data/test/test_dbi.rb +327 -0
- data/test/test_dbi_clob.rb +58 -0
- data/test/test_describe.rb +137 -0
- data/test/test_metadata.rb +243 -0
- data/test/test_oci8.rb +273 -0
- data/test/test_oradate.rb +263 -0
- data/test/test_oranumber.rb +149 -0
- data/test/test_rowid.rb +38 -0
- metadata +105 -0
data/support/README
ADDED
@@ -0,0 +1,281 @@
|
|
1
|
+
require 'runit/version'
|
2
|
+
require 'runit/error'
|
3
|
+
|
4
|
+
module RUNIT
|
5
|
+
module Assert
|
6
|
+
@@run_asserts = 0
|
7
|
+
@@skip_failure = false
|
8
|
+
|
9
|
+
def Assert.skip_failure=(arg)
|
10
|
+
@@skip_failure = arg
|
11
|
+
end
|
12
|
+
|
13
|
+
def Assert.skip_failure?
|
14
|
+
@@skip_failure
|
15
|
+
end
|
16
|
+
|
17
|
+
def Assert.run_asserts
|
18
|
+
@@run_asserts
|
19
|
+
end
|
20
|
+
|
21
|
+
def edit_message(msg)
|
22
|
+
(msg != "")? msg + " " : msg
|
23
|
+
end
|
24
|
+
private :edit_message
|
25
|
+
|
26
|
+
def build_message(msg, *args, &proc)
|
27
|
+
str_args = args.collect {|arg|
|
28
|
+
to_string(arg)
|
29
|
+
}
|
30
|
+
if block_given?
|
31
|
+
edit_message(msg).concat proc.call(*str_args)
|
32
|
+
else
|
33
|
+
msg
|
34
|
+
end
|
35
|
+
end
|
36
|
+
private :build_message
|
37
|
+
|
38
|
+
def to_string(obj)
|
39
|
+
case obj
|
40
|
+
when Symbol
|
41
|
+
obj.id2name
|
42
|
+
when String
|
43
|
+
obj
|
44
|
+
else
|
45
|
+
obj.inspect
|
46
|
+
end
|
47
|
+
end
|
48
|
+
private :to_string
|
49
|
+
|
50
|
+
def float_to_str(f, e)
|
51
|
+
return f.to_s if e == 0
|
52
|
+
i = 0
|
53
|
+
while 1 > e
|
54
|
+
i += 1
|
55
|
+
e *= 10
|
56
|
+
end
|
57
|
+
i += 1
|
58
|
+
sprintf("%.#{i}f", f)
|
59
|
+
end
|
60
|
+
private :float_to_str
|
61
|
+
|
62
|
+
def raise_assertion_error(message)
|
63
|
+
if Assert.skip_failure?
|
64
|
+
changed
|
65
|
+
err = AssertionFailedError.new(message)
|
66
|
+
err.set_backtrace(caller)
|
67
|
+
notify_observers(RObserver::ADD_FAILURE, caller, err, type)
|
68
|
+
else
|
69
|
+
raise AssertionFailedError, message
|
70
|
+
end
|
71
|
+
end
|
72
|
+
private :raise_assertion_error
|
73
|
+
|
74
|
+
def setup_assert
|
75
|
+
@@run_asserts += 1
|
76
|
+
end
|
77
|
+
|
78
|
+
def assert(condition, message="")
|
79
|
+
setup_assert
|
80
|
+
if !condition.instance_of?(TrueClass) && !condition.instance_of?(FalseClass)
|
81
|
+
raise TypeError, "1st argument <#{condition}> type should be TrueClass or FalseClass."
|
82
|
+
end
|
83
|
+
if !condition
|
84
|
+
msg = build_message(message, condition) {|arg|
|
85
|
+
"The condition is <#{arg}:#{condition.type.inspect}>"
|
86
|
+
}
|
87
|
+
raise_assertion_error(msg)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def assert_equal(expected, actual, message="")
|
92
|
+
setup_assert
|
93
|
+
if expected != actual
|
94
|
+
msg = build_message(message, expected, actual) {|arg1, arg2|
|
95
|
+
"expected:<#{arg1}> but was:<#{arg2}>"
|
96
|
+
}
|
97
|
+
raise_assertion_error(msg)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
alias assert_equals assert_equal
|
101
|
+
|
102
|
+
def assert_operator(obj1, op, obj2, message="")
|
103
|
+
setup_assert
|
104
|
+
if !obj1.send(op, obj2)
|
105
|
+
msg = build_message(message, obj1, obj2) {|arg1, arg2|
|
106
|
+
"The condition is not satisfied: #{arg1} #{op.to_s} #{arg2}"
|
107
|
+
}
|
108
|
+
raise_assertion_error(msg)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def assert_equal_float(expected, actual, e, message="")
|
113
|
+
setup_assert
|
114
|
+
if e < 0.0
|
115
|
+
raise ArgumentError, "#{e}: 3rd argument should be 0 or greater than 0."
|
116
|
+
end
|
117
|
+
if (expected - actual).abs > e
|
118
|
+
msg = build_message(message) {
|
119
|
+
"expected:<#{float_to_str(expected, e)}> but was:<#{float_to_str(actual, e)}>"
|
120
|
+
}
|
121
|
+
raise_assertion_error(msg)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def assert_same(expected, actual, message="")
|
126
|
+
setup_assert
|
127
|
+
if !actual.equal?(expected)
|
128
|
+
msg = build_message(message, actual, expected) {|arg1, arg2|
|
129
|
+
"<#{arg1}:#{actual.type.inspect}> is not same object: <#{arg2}:#{expected.type.inspect}>"
|
130
|
+
}
|
131
|
+
raise_assertion_error(msg)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def assert_send(obj, method, *args)
|
136
|
+
setup_assert
|
137
|
+
if !obj.send(method, *args)
|
138
|
+
msg = "Assertion failed: #{obj.type.inspect}(#{obj.inspect})##{to_string(method)}"
|
139
|
+
if args.size > 0
|
140
|
+
strargs = args.collect {|arg|
|
141
|
+
"<#{to_string(arg).inspect}:#{arg.type.inspect}>"
|
142
|
+
}.join(", ")
|
143
|
+
msg.concat "(#{strargs})"
|
144
|
+
end
|
145
|
+
raise_assertion_error(msg)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
def assert_nil(obj, message="")
|
150
|
+
setup_assert
|
151
|
+
if !obj.nil?
|
152
|
+
msg = build_message(message, obj) {|arg|
|
153
|
+
"<#{arg}:#{obj.type.inspect}> is not nil"
|
154
|
+
}
|
155
|
+
raise_assertion_error(msg)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def assert_not_nil(obj, message="")
|
160
|
+
setup_assert
|
161
|
+
if obj.nil?
|
162
|
+
msg = build_message(message) {
|
163
|
+
"object is nil"
|
164
|
+
}
|
165
|
+
raise_assertion_error(msg)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
def assert_respond_to(method, obj, message="")
|
170
|
+
setup_assert
|
171
|
+
if !obj.respond_to?(method)
|
172
|
+
msg = build_message(message, obj, method) {|arg1, arg2|
|
173
|
+
"<#{arg1}:#{obj.type.inspect}> does not respond to <#{arg2}>"
|
174
|
+
}
|
175
|
+
raise_assertion_error(msg)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
def assert_kind_of(c, obj, message="")
|
180
|
+
setup_assert
|
181
|
+
if !obj.kind_of?(c)
|
182
|
+
msg = build_message(message, obj, c) {|arg1, arg2|
|
183
|
+
"<#{arg1}:#{obj.type.inspect}> is not kind of <#{arg2}>"
|
184
|
+
}
|
185
|
+
raise_assertion_error(msg)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
def assert_instance_of(c, obj, message="")
|
190
|
+
setup_assert
|
191
|
+
if !obj.instance_of?(c)
|
192
|
+
msg = build_message(message, obj, c) {|arg1, arg2|
|
193
|
+
"<#{arg1}:#{obj.type.inspect}> is not instance of <#{arg2}>"
|
194
|
+
}
|
195
|
+
raise_assertion_error(msg)
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
def assert_match(str, re, message="")
|
200
|
+
setup_assert
|
201
|
+
if re !~ str
|
202
|
+
msg = build_message(message, re, str) {|arg1, arg2|
|
203
|
+
"<#{arg1}> not match <#{arg2}>"
|
204
|
+
}
|
205
|
+
raise_assertion_error(msg)
|
206
|
+
end
|
207
|
+
return Regexp.last_match
|
208
|
+
end
|
209
|
+
alias assert_matches assert_match
|
210
|
+
|
211
|
+
def assert_not_match(str, re, message="")
|
212
|
+
setup_assert
|
213
|
+
if re =~ str
|
214
|
+
match = Regexp.last_match
|
215
|
+
msg = build_message(message, re, str) {|arg1, arg2|
|
216
|
+
"<#{arg1}> matches '#{match[0]}' of <#{arg2}>"
|
217
|
+
}
|
218
|
+
raise_assertion_error(msg)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def assert_exception(exception, message="")
|
223
|
+
setup_assert
|
224
|
+
exception_raised = true
|
225
|
+
err = ""
|
226
|
+
ret = nil
|
227
|
+
begin
|
228
|
+
yield
|
229
|
+
exception_raised = false
|
230
|
+
err = 'NO EXCEPTION RAISED'
|
231
|
+
rescue Exception
|
232
|
+
if $!.instance_of?(exception)
|
233
|
+
exception_raised = true
|
234
|
+
ret = $!
|
235
|
+
else
|
236
|
+
exception_raised = false
|
237
|
+
err = $!.type
|
238
|
+
end
|
239
|
+
end
|
240
|
+
if !exception_raised
|
241
|
+
msg = build_message(message, exception, err) {|arg1, arg2|
|
242
|
+
"expected:<#{arg1}> but was:<#{arg2}>"
|
243
|
+
}
|
244
|
+
raise_assertion_error(msg)
|
245
|
+
end
|
246
|
+
ret
|
247
|
+
end
|
248
|
+
|
249
|
+
def assert_no_exception(*arg)
|
250
|
+
setup_assert
|
251
|
+
message = ""
|
252
|
+
if arg[arg.size-1].instance_of?(String)
|
253
|
+
message = arg.pop
|
254
|
+
end
|
255
|
+
err = nil
|
256
|
+
exception_raised = false
|
257
|
+
begin
|
258
|
+
yield
|
259
|
+
rescue Exception
|
260
|
+
if arg.include?($!.type) || arg.size == 0
|
261
|
+
exception_raised = true
|
262
|
+
err = $!
|
263
|
+
else
|
264
|
+
raise $!.type, $!.message, $!.backtrace
|
265
|
+
end
|
266
|
+
end
|
267
|
+
if exception_raised
|
268
|
+
msg = build_message(message, err) {|arg|
|
269
|
+
"Exception raised:#{arg}"
|
270
|
+
}
|
271
|
+
raise_assertion_error(msg)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
def assert_fail(message)
|
276
|
+
setup_assert
|
277
|
+
raise_assertion_error message
|
278
|
+
end
|
279
|
+
|
280
|
+
end
|
281
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'runit/testresult'
|
2
|
+
require 'runit/robserver'
|
3
|
+
|
4
|
+
module RUNIT
|
5
|
+
module CUI
|
6
|
+
class TestRunner
|
7
|
+
include RObserver
|
8
|
+
@@quiet_mode = false
|
9
|
+
def initialize(io=STDERR, wait=false)
|
10
|
+
@io = io
|
11
|
+
@wait = wait
|
12
|
+
end
|
13
|
+
|
14
|
+
def TestRunner.quiet_mode=(flag)
|
15
|
+
@@quiet_mode = flag
|
16
|
+
end
|
17
|
+
|
18
|
+
def TestRunner.run(test, io=STDERR, wait = false)
|
19
|
+
r = TestRunner.new(io, wait)
|
20
|
+
r.run(test)
|
21
|
+
end
|
22
|
+
|
23
|
+
def run(test)
|
24
|
+
result = RUNIT::TestResult.new
|
25
|
+
result.add_observer(self)
|
26
|
+
test.run(result)
|
27
|
+
print_running_time(result.running_time)
|
28
|
+
print_result(result, test.count_test_cases)
|
29
|
+
print_waiting_message
|
30
|
+
result
|
31
|
+
end
|
32
|
+
|
33
|
+
def print_waiting_message
|
34
|
+
if @wait
|
35
|
+
STDERR.print "<RETURN> to Continue "
|
36
|
+
STDIN.gets
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def print_running_time(rtm)
|
41
|
+
@io.print "\nTime: #{rtm}\n"
|
42
|
+
end
|
43
|
+
|
44
|
+
def start_test(t)
|
45
|
+
@io.print "\n", t.name , " " if !@@quiet_mode
|
46
|
+
end
|
47
|
+
|
48
|
+
def add_failure(at, err)
|
49
|
+
@io.print("F")
|
50
|
+
end
|
51
|
+
|
52
|
+
def add_error(at, err)
|
53
|
+
@io.print("E")
|
54
|
+
end
|
55
|
+
|
56
|
+
def end_test(t)
|
57
|
+
@io.print(".")
|
58
|
+
end
|
59
|
+
|
60
|
+
def print_result(result, count)
|
61
|
+
print_header(result, count)
|
62
|
+
print_failures(result)
|
63
|
+
print_errors(result)
|
64
|
+
end
|
65
|
+
|
66
|
+
def print_header(result, count)
|
67
|
+
if result.succeed?
|
68
|
+
@io.puts "OK (#{result.run_tests}/#{count} tests #{result.run_asserts} asserts)"
|
69
|
+
else
|
70
|
+
@io.puts "FAILURES!!!"
|
71
|
+
@io.puts "Test Results:"
|
72
|
+
@io.print " Run: #{result.run_tests}/#{count}(#{result.run_asserts} asserts)"
|
73
|
+
@io.print " Failures: #{result.failure_size}"
|
74
|
+
@io.puts " Errors: #{result.error_size}"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def print_failures(result)
|
79
|
+
@io.puts "Failures: #{result.failure_size}" if result.failure_size > 0
|
80
|
+
result.failures.each do |f|
|
81
|
+
@io.print f.at[0], ": ", f.err, " (", f.err.class, ")\n"
|
82
|
+
for at in f.at[1..-1]
|
83
|
+
@io.print "\tfrom ", at, "\n"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def print_errors(result)
|
89
|
+
@io.puts "Errors: #{result.error_size}" if result.error_size > 0
|
90
|
+
result.errors.each do |e|
|
91
|
+
@io.print e.at[0], ": ", e.err, " (", e.err.class, ")\n"
|
92
|
+
for at in e.at[1..-1]
|
93
|
+
@io.print "\tfrom ", at, "\n"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RUNIT
|
2
|
+
module MethodMappable
|
3
|
+
def attach_method(hash, method, *methods)
|
4
|
+
methods.each do |m|
|
5
|
+
hash[self.to_s + m.to_s] = method
|
6
|
+
end
|
7
|
+
end
|
8
|
+
private :attach_method
|
9
|
+
|
10
|
+
def invoke_method(hash, m)
|
11
|
+
if hash[self.to_s + m.to_s]
|
12
|
+
send hash[self.to_s + m.to_s]
|
13
|
+
elsif hash[self.class.to_s + m.to_s]
|
14
|
+
send hash[self.class.to_s + m.to_s]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
private :invoke_method
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module RUNIT
|
2
|
+
module RObserver
|
3
|
+
ADD_ERROR = :add_error
|
4
|
+
ADD_FAILURE = :add_failure
|
5
|
+
START_TEST = :start_test
|
6
|
+
END_TEST = :end_test
|
7
|
+
|
8
|
+
def add_error(*arg)
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_failure(*arg)
|
12
|
+
end
|
13
|
+
|
14
|
+
def start_test(*arg)
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_test(*arg)
|
18
|
+
end
|
19
|
+
|
20
|
+
def update(ev, *arg)
|
21
|
+
send(ev, *arg)
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'runit/method_mappable'
|
2
|
+
module RUNIT
|
3
|
+
module Setuppable
|
4
|
+
include MethodMappable
|
5
|
+
@@setups = {}
|
6
|
+
def attach_setup(setup_method, *methods)
|
7
|
+
attach_method(@@setups, setup_method, *methods)
|
8
|
+
end
|
9
|
+
private :attach_setup
|
10
|
+
def invoke_setup(m)
|
11
|
+
invoke_method(@@setups, m)
|
12
|
+
end
|
13
|
+
private :invoke_setup
|
14
|
+
end
|
15
|
+
end
|