ruby-oci8 1.0.7 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +1254 -390
- data/Makefile +10 -13
- data/README +56 -385
- data/VERSION +1 -1
- data/dist-files +26 -27
- data/ext/oci8/.document +1 -0
- data/ext/oci8/MANIFEST +0 -4
- data/ext/oci8/apiwrap.c.tmpl +172 -0
- data/ext/oci8/apiwrap.h.tmpl +61 -0
- data/ext/oci8/apiwrap.rb +91 -0
- data/ext/oci8/apiwrap.yml +1243 -0
- data/ext/oci8/attr.c +124 -384
- data/ext/oci8/bind.c +472 -164
- data/ext/oci8/encoding.c +196 -0
- data/ext/oci8/env.c +84 -253
- data/ext/oci8/error.c +196 -127
- data/ext/oci8/extconf.rb +82 -59
- data/ext/oci8/lob.c +710 -370
- data/ext/oci8/metadata.c +359 -0
- data/ext/oci8/object.c +622 -0
- data/ext/oci8/oci8.c +577 -161
- data/ext/oci8/oci8.h +354 -258
- data/ext/oci8/oci8lib.c +493 -0
- data/ext/oci8/ocidatetime.c +473 -0
- data/ext/oci8/ocinumber.c +1123 -24
- data/ext/oci8/oraconf.rb +72 -106
- data/ext/oci8/oradate.c +511 -321
- data/ext/oci8/stmt.c +752 -572
- data/ext/oci8/win32.c +131 -0
- data/ext/oci8/xmldb.c +383 -0
- data/lib/.document +2 -0
- data/lib/dbd/OCI8.rb +2 -17
- data/lib/oci8.rb.in +41 -1622
- data/lib/oci8/.document +5 -0
- data/lib/oci8/compat.rb +108 -0
- data/lib/oci8/datetime.rb +489 -0
- data/lib/oci8/encoding-init.rb +40 -0
- data/lib/oci8/encoding.yml +537 -0
- data/lib/oci8/metadata.rb +2077 -0
- data/lib/oci8/object.rb +548 -0
- data/lib/oci8/oci8.rb +773 -0
- data/lib/oci8/oracle_version.rb +144 -0
- data/metaconfig +3 -3
- data/ruby-oci8.gemspec +5 -5
- data/setup.rb +4 -4
- data/test/config.rb +64 -84
- data/test/test_all.rb +14 -21
- data/test/test_array_dml.rb +317 -0
- data/test/test_bind_raw.rb +18 -25
- data/test/test_bind_time.rb +78 -91
- data/test/test_break.rb +37 -35
- data/test/test_clob.rb +33 -89
- data/test/test_connstr.rb +5 -4
- data/test/test_datetime.rb +469 -0
- data/test/test_dbi.rb +99 -60
- data/test/test_dbi_clob.rb +3 -8
- data/test/test_metadata.rb +65 -51
- data/test/test_oci8.rb +151 -55
- data/test/test_oracle_version.rb +70 -0
- data/test/test_oradate.rb +76 -83
- data/test/test_oranumber.rb +405 -71
- data/test/test_rowid.rb +6 -11
- metadata +31 -32
- data/NEWS +0 -420
- data/ext/oci8/const.c +0 -165
- data/ext/oci8/define.c +0 -53
- data/ext/oci8/describe.c +0 -81
- data/ext/oci8/descriptor.c +0 -39
- data/ext/oci8/handle.c +0 -273
- data/ext/oci8/oranumber.c +0 -445
- data/ext/oci8/param.c +0 -37
- data/ext/oci8/server.c +0 -182
- data/ext/oci8/session.c +0 -99
- data/ext/oci8/svcctx.c +0 -238
- data/ruby-oci8.spec +0 -62
- data/support/README +0 -4
- data/support/runit/assert.rb +0 -281
- data/support/runit/cui/testrunner.rb +0 -101
- data/support/runit/error.rb +0 -4
- data/support/runit/method_mappable.rb +0 -20
- data/support/runit/robserver.rb +0 -25
- data/support/runit/setuppable.rb +0 -15
- data/support/runit/teardownable.rb +0 -16
- data/support/runit/testcase.rb +0 -113
- data/support/runit/testfailure.rb +0 -25
- data/support/runit/testresult.rb +0 -121
- data/support/runit/testsuite.rb +0 -43
- data/support/runit/version.rb +0 -3
- data/test/test_describe.rb +0 -137
@@ -0,0 +1,144 @@
|
|
1
|
+
# oracle_version.rb implements OCI8::OracleVersion.
|
2
|
+
#
|
3
|
+
# Copyright (C) 2009 KUBO Takehiro <kubo@jiubao.org>
|
4
|
+
|
5
|
+
#--
|
6
|
+
|
7
|
+
class OCI8
|
8
|
+
|
9
|
+
# A data class, representing Oracle version.
|
10
|
+
#
|
11
|
+
# Oracle version is represented by five numbers:
|
12
|
+
# *major*, *minor*, *update*, *patch* and *port_update*.
|
13
|
+
class OracleVersion
|
14
|
+
include Comparable
|
15
|
+
|
16
|
+
# The first part of the Oracle version.
|
17
|
+
attr_reader :major
|
18
|
+
# The second part of the Oracle version.
|
19
|
+
attr_reader :minor
|
20
|
+
# The third part of the Oracle version.
|
21
|
+
attr_reader :update
|
22
|
+
# The fifth part of the Oracle version.
|
23
|
+
attr_reader :patch
|
24
|
+
# The fourth part of the Oracle version.
|
25
|
+
attr_reader :port_update
|
26
|
+
|
27
|
+
# Creates a OCI8::OracleVersion object.
|
28
|
+
#
|
29
|
+
# If the first argument _arg_ is a String, it is parsed as dotted
|
30
|
+
# version string. If it is bigger than 0x08000000, it is parsed as
|
31
|
+
# a number contains 5-digit Oracle version. Otherwise, it is used
|
32
|
+
# as a major version and the rest arguments are minor, update,
|
33
|
+
# patch and port_update. Unspecified version numbers are zeros by
|
34
|
+
# default.
|
35
|
+
#
|
36
|
+
# == Example
|
37
|
+
# oraver = OCI8::OracleVersion.new('10.2.0.4')
|
38
|
+
# oraver.major # => 10
|
39
|
+
# oraver.minor # => 2
|
40
|
+
# oraver.update # => 0
|
41
|
+
# oraver.patch # => 4
|
42
|
+
# oraver.port_update # => 0
|
43
|
+
#
|
44
|
+
# oraver = OCI8::OracleVersion.new(0x0a200400)
|
45
|
+
# oraver.major # => 10
|
46
|
+
# oraver.minor # => 2
|
47
|
+
# oraver.update # => 0
|
48
|
+
# oraver.patch # => 4
|
49
|
+
# oraver.port_update # => 0
|
50
|
+
def initialize(arg, minor = nil, update = nil, patch = nil, port_update = nil)
|
51
|
+
if arg.is_a? String
|
52
|
+
major, minor, update, patch, port_update = arg.split('.').collect do |v|
|
53
|
+
v.to_i
|
54
|
+
end
|
55
|
+
elsif arg >= 0x08000000
|
56
|
+
major = (arg & 0xFF000000) >> 24
|
57
|
+
minor = (arg & 0x00F00000) >> 20
|
58
|
+
update = (arg & 0x000FF000) >> 12
|
59
|
+
patch = (arg & 0x00000F00) >> 8
|
60
|
+
port_update = (arg & 0x000000FF)
|
61
|
+
else
|
62
|
+
major = arg
|
63
|
+
end
|
64
|
+
@major = major
|
65
|
+
@minor = minor || 0
|
66
|
+
@update = update || 0
|
67
|
+
@patch = patch || 0
|
68
|
+
@port_update = port_update || 0
|
69
|
+
end
|
70
|
+
|
71
|
+
# :call-seq:
|
72
|
+
# oraver <=> other_oraver -> -1, 0, +1
|
73
|
+
#
|
74
|
+
# Compares +oraver+ and +other_oraver+.
|
75
|
+
#
|
76
|
+
# <=> is the basis for the methods <, <=, ==, >, >=, and between?,
|
77
|
+
# included from module Comparable.
|
78
|
+
def <=>(other)
|
79
|
+
cmp = @major <=> other.major
|
80
|
+
return cmp if cmp != 0
|
81
|
+
cmp = @minor <=> other.minor
|
82
|
+
return cmp if cmp != 0
|
83
|
+
cmp = @update <=> other.update
|
84
|
+
return cmp if cmp != 0
|
85
|
+
cmp = @patch <=> other.patch
|
86
|
+
return cmp if cmp != 0
|
87
|
+
@port_update <=> other.port_update
|
88
|
+
end
|
89
|
+
|
90
|
+
# :call-seq:
|
91
|
+
# oraver.to_i -> integer
|
92
|
+
#
|
93
|
+
# Returns an integer number contains 5-digit Oracle version.
|
94
|
+
#
|
95
|
+
# If the hexadecimal notation is 0xAABCCDEE, *major*, *minor*,
|
96
|
+
# *update*, *patch* and *port_update* are 0xAA, 0xB, 0xCC, 0xD and
|
97
|
+
# 0xEE respectively.
|
98
|
+
#
|
99
|
+
# == Example
|
100
|
+
# oraver = OCI8::OracleVersion.new('10.2.0.4')
|
101
|
+
# oraver.to_i # => 169870336
|
102
|
+
# '%08x' % oraver.to_i # => "0a200400"
|
103
|
+
def to_i
|
104
|
+
(@major << 24) | (@minor << 20) | (@update << 12) | (@patch << 8) | @port_update
|
105
|
+
end
|
106
|
+
|
107
|
+
# :call-seq:
|
108
|
+
# oraver.to_s -> string
|
109
|
+
#
|
110
|
+
# Returns a dotted version string of the Oracle version.
|
111
|
+
#
|
112
|
+
# == Example
|
113
|
+
# oraver = OCI8::OracleVersion.new('10.2.0.4')
|
114
|
+
# oraver.to_s # => '10.2.0.4.0'
|
115
|
+
def to_s
|
116
|
+
format('%d.%d.%d.%d.%d', @major, @minor, @update, @patch, @port_update)
|
117
|
+
end
|
118
|
+
|
119
|
+
# :call-seq:
|
120
|
+
# oraver.eql? other -> true or false
|
121
|
+
#
|
122
|
+
# Returns true if +oraver+ and +other+ are the same type and have
|
123
|
+
# equal values.
|
124
|
+
#--
|
125
|
+
# This is for class Hash to test members for equality.
|
126
|
+
def eql?(other)
|
127
|
+
other.is_a? OCI8::OracleVersion and (self <=> other) == 0
|
128
|
+
end
|
129
|
+
|
130
|
+
# :call-seq:
|
131
|
+
# oraver.hash -> integer
|
132
|
+
#
|
133
|
+
# Returns a hash based on the value of +oraver+.
|
134
|
+
#--
|
135
|
+
# This is for class Hash.
|
136
|
+
def hash
|
137
|
+
to_i
|
138
|
+
end
|
139
|
+
|
140
|
+
def inspect # :nodoc:
|
141
|
+
"#<#{self.class.to_s}: #{self.to_s}>"
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/metaconfig
CHANGED
@@ -10,7 +10,7 @@ ToplevelInstaller.module_eval {
|
|
10
10
|
old = Dir.pwd
|
11
11
|
@installer.mkdir_p "#{objdir_root}/test"
|
12
12
|
Dir.chdir "#{objdir_root}/test"
|
13
|
-
@installer.ruby("-I#{srcdir_root}/ext/oci8 -I#{srcdir_root}/lib -I#{srcdir_root}/support -I#{srcdir_root}/test #{srcdir_root}/test/test_all.rb")
|
13
|
+
@installer.ruby("-w -I#{srcdir_root}/ext/oci8 -I#{srcdir_root}/lib -I#{srcdir_root}/support -I#{srcdir_root}/test #{srcdir_root}/test/test_all.rb")
|
14
14
|
Dir.chdir old
|
15
15
|
end
|
16
16
|
|
@@ -120,8 +120,8 @@ install_files['oci8lib.so'] = <<-EOS
|
|
120
120
|
install_files['oci8.rb'] = <<-EOS
|
121
121
|
#{get_zcontent('lib/oci8.rb')}EOS
|
122
122
|
|
123
|
-
install_files['
|
124
|
-
#{get_zcontent('lib/
|
123
|
+
install_files['DBD/OCI8/OCI8.rb'] = <<-EOS
|
124
|
+
#{get_zcontent('lib/DBD/OCI8/OCI8.rb')}EOS
|
125
125
|
|
126
126
|
begin
|
127
127
|
installer = Installer.new(install_files)
|
data/ruby-oci8.gemspec
CHANGED
@@ -23,20 +23,20 @@ spec = Gem::Specification.new do |s|
|
|
23
23
|
s.description = <<EOS
|
24
24
|
ruby-oci8 is a ruby interface for Oracle using OCI8 API. It is available with Oracle8, Oracle8i, Oracle9i, Oracle10g and Oracle Instant Client.
|
25
25
|
EOS
|
26
|
-
s.autorequire = 'oci8'
|
27
26
|
s.has_rdoc = true
|
28
|
-
s.required_ruby_version = '~> 1.8.0'
|
29
27
|
s.authors = ['KUBO Takehiro']
|
30
28
|
s.platform = gem_platform
|
31
29
|
files = File.read('dist-files').split("\n")
|
32
30
|
if gem_platform == Gem::Platform::RUBY
|
33
31
|
s.require_paths = ['lib']
|
34
32
|
s.extensions << 'ext/oci8/extconf.rb'
|
33
|
+
s.required_ruby_version = '>= 1.8.0'
|
35
34
|
else
|
36
35
|
s.require_paths = ['lib', 'ext/oci8']
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
if RUBY_VERSION =~ /^1\.9\./
|
37
|
+
s.required_ruby_version = '~> 1.9.1'
|
38
|
+
else
|
39
|
+
s.required_ruby_version = '~> 1.8.0'
|
40
40
|
end
|
41
41
|
# check files created by a make command.
|
42
42
|
['ext/oci8/oci8lib.so', 'lib/oci8.rb'].each do |file|
|
data/setup.rb
CHANGED
@@ -91,7 +91,7 @@ end
|
|
91
91
|
# Config
|
92
92
|
#
|
93
93
|
|
94
|
-
if arg = ARGV.detect{|
|
94
|
+
if arg = ARGV.detect{|a| /\A--rbconfig=/ =~ a }
|
95
95
|
ARGV.delete(arg)
|
96
96
|
require arg.split(/=/, 2)[1]
|
97
97
|
$".push 'rbconfig.rb'
|
@@ -145,7 +145,7 @@ class ConfigTable
|
|
145
145
|
sodir = "$site-ruby/#{c['arch']}"
|
146
146
|
end
|
147
147
|
|
148
|
-
if arg = c['configure_args'].split.detect {|
|
148
|
+
if arg = c['configure_args'].split.detect {|a| /--with-make-prog=/ =~ a }
|
149
149
|
makeprog = arg.sub(/'/, '').split(/=/, 2)[1]
|
150
150
|
else
|
151
151
|
makeprog = 'make'
|
@@ -495,7 +495,7 @@ module FileOperations
|
|
495
495
|
end
|
496
496
|
|
497
497
|
REJECT_DIRS = %w(
|
498
|
-
CVS SCCS RCS CVS.adm
|
498
|
+
CVS SCCS RCS CVS.adm .svn .git
|
499
499
|
)
|
500
500
|
|
501
501
|
def all_dirs_in(dirname)
|
@@ -1163,7 +1163,7 @@ class Installer
|
|
1163
1163
|
end
|
1164
1164
|
|
1165
1165
|
def ruby_scripts
|
1166
|
-
collect_filenames_auto().select {|n| /\.rb\z/ =~ n }
|
1166
|
+
collect_filenames_auto().select {|n| /\.(rb|yml)\z/ =~ n }
|
1167
1167
|
end
|
1168
1168
|
|
1169
1169
|
# picked up many entries from cvs-1.11.1/src/ignore.c
|
data/test/config.rb
CHANGED
@@ -24,106 +24,86 @@ $lobreadnum = 256 # counts in charactors
|
|
24
24
|
# $oracle_client_version: Oracle client library version for which oci8 is compiled.
|
25
25
|
# $oracle_version: lower value of $oracle_server_version and $oracle_client_version.
|
26
26
|
conn = OCI8.new($dbuser, $dbpass, $dbname)
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
begin
|
28
|
+
conn.exec('select value from database_compatible_level') do |row|
|
29
|
+
$oracle_server_version = OCI8::OracleVersion.new(row[0])
|
30
|
+
end
|
31
|
+
rescue OCIError
|
32
|
+
raise if $!.code != 942 # ORA-00942: table or view does not exist
|
33
|
+
$oracle_server_version = OCI8::ORAVER_8_0
|
30
34
|
end
|
31
35
|
conn.logoff
|
32
|
-
|
33
|
-
if $oracle_server_version <
|
36
|
+
|
37
|
+
if $oracle_server_version < OCI8.oracle_client_version
|
34
38
|
$oracle_version = $oracle_server_version
|
35
39
|
else
|
36
|
-
$oracle_version =
|
40
|
+
$oracle_version = OCI8.oracle_client_version
|
37
41
|
end
|
38
42
|
|
39
|
-
if $oracle_version
|
40
|
-
$describe_need_object_mode = true
|
41
|
-
$test_clob = false
|
42
|
-
elsif $oracle_version < 810
|
43
|
-
$describe_need_object_mode = false
|
43
|
+
if $oracle_version < OCI8::ORAVER_8_1
|
44
44
|
$test_clob = false
|
45
45
|
else
|
46
|
-
$describe_need_object_mode = false
|
47
46
|
$test_clob = true
|
48
47
|
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
rescue OCIError
|
54
|
-
raise if $!.code != 12516 && $!.code != 12520
|
55
|
-
# sleep a few seconds and try again if
|
56
|
-
# the error code is ORA-12516 or ORA-12520.
|
57
|
-
#
|
58
|
-
# ORA-12516 - TNS:listener could not find available handler with
|
59
|
-
# matching protocol stack
|
60
|
-
# ORA-12520 - TNS:listener could not find available handler for
|
61
|
-
# requested type of server
|
62
|
-
#
|
63
|
-
# Thanks to Christopher Jones.
|
64
|
-
#
|
65
|
-
# Ref: The Underground PHP and Oracle Manual (page 175 in vesion 1.4)
|
66
|
-
# http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf
|
67
|
-
#
|
68
|
-
sleep(5)
|
69
|
-
yield
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
$env_is_initialized = false
|
74
|
-
def setup_lowapi()
|
75
|
-
if ! $env_is_initialized
|
76
|
-
if $describe_need_object_mode
|
77
|
-
OCIEnv.initialise(OCI_OBJECT)
|
78
|
-
else
|
79
|
-
OCIEnv.initialise(OCI_DEFAULT)
|
80
|
-
end
|
81
|
-
$env_is_initialized = true
|
82
|
-
end
|
83
|
-
env = OCIEnv.init()
|
84
|
-
svc = do_connect { env.logon($dbuser, $dbpass, $dbname) }
|
85
|
-
stmt = env.alloc(OCIStmt)
|
86
|
-
return env, svc, stmt
|
87
|
-
end
|
88
|
-
|
89
|
-
def get_oci_connection()
|
90
|
-
do_connect { OCI8.new($dbuser, $dbpass, $dbname) }
|
91
|
-
end
|
49
|
+
module Test
|
50
|
+
module Unit
|
51
|
+
class TestCase
|
92
52
|
|
93
|
-
def
|
94
|
-
|
95
|
-
|
53
|
+
def get_oci8_connection()
|
54
|
+
OCI8.new($dbuser, $dbpass, $dbname)
|
55
|
+
rescue OCIError
|
56
|
+
raise if $!.code != 12516 && $!.code != 12520
|
57
|
+
# sleep a few second and try again if
|
58
|
+
# the error code is ORA-12516 or ORA-12520.
|
59
|
+
#
|
60
|
+
# ORA-12516 - TNS:listener could not find available handler with
|
61
|
+
# matching protocol stack
|
62
|
+
# ORA-12520 - TNS:listener could not find available handler for
|
63
|
+
# requested type of server
|
64
|
+
#
|
65
|
+
# Thanks to Christopher Jones.
|
66
|
+
#
|
67
|
+
# Ref: The Underground PHP and Oracle Manual (page 175 in vesion 1.4)
|
68
|
+
# http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf
|
69
|
+
#
|
70
|
+
sleep(5)
|
71
|
+
OCI8.new($dbuser, $dbpass, $dbname)
|
72
|
+
end
|
96
73
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
#
|
102
|
-
|
103
|
-
|
104
|
-
# Oracle 10g -
|
105
|
-
sql = "DROP TABLE #{table_name} PURGE"
|
74
|
+
def get_dbi_connection()
|
75
|
+
DBI.connect("dbi:OCI8:#{$dbname}", $dbuser, $dbpass, 'AutoCommit' => false)
|
76
|
+
rescue DBI::DatabaseError
|
77
|
+
raise if $!.err != 12516 && $!.err != 12520
|
78
|
+
# same as get_oci8_connection()
|
79
|
+
sleep(5)
|
80
|
+
DBI.connect("dbi:OCI8:#{$dbname}", $dbuser, $dbpass, 'AutoCommit' => false)
|
106
81
|
end
|
107
82
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
begin
|
116
|
-
@dbh.do(sql)
|
117
|
-
rescue DBI::DatabaseError
|
118
|
-
raise if $!.err != 942 # table or view does not exist
|
83
|
+
def drop_table(table_name)
|
84
|
+
if $oracle_server_version < OCI8::ORAVER_10_1
|
85
|
+
# Oracle 8 - 9i
|
86
|
+
sql = "DROP TABLE #{table_name}"
|
87
|
+
else
|
88
|
+
# Oracle 10g -
|
89
|
+
sql = "DROP TABLE #{table_name} PURGE"
|
119
90
|
end
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
91
|
+
|
92
|
+
if defined? @conn
|
93
|
+
begin
|
94
|
+
@conn.exec(sql)
|
95
|
+
rescue OCIError
|
96
|
+
raise if $!.code != 942 # table or view does not exist
|
97
|
+
end
|
98
|
+
elsif instance_variable_get(:@dbh)
|
99
|
+
begin
|
100
|
+
@dbh.do(sql)
|
101
|
+
rescue DBI::DatabaseError
|
102
|
+
raise if $!.err != 942 # table or view does not exist
|
103
|
+
end
|
125
104
|
end
|
126
|
-
end
|
127
|
-
end
|
105
|
+
end # drop_table
|
106
|
+
end
|
128
107
|
end
|
129
108
|
end
|
109
|
+
|
data/test/test_all.rb
CHANGED
@@ -1,48 +1,41 @@
|
|
1
|
-
require 'runit/testsuite'
|
2
|
-
require 'runit/cui/testrunner'
|
3
|
-
|
4
1
|
srcdir = File.dirname(__FILE__)
|
5
2
|
|
6
|
-
|
3
|
+
require 'oci8'
|
4
|
+
require 'test/unit'
|
5
|
+
require "#{srcdir}/config"
|
6
|
+
|
7
7
|
require "#{srcdir}/test_oradate"
|
8
8
|
require "#{srcdir}/test_oranumber"
|
9
|
-
require "#{srcdir}/test_describe"
|
10
9
|
require "#{srcdir}/test_bind_time"
|
11
10
|
require "#{srcdir}/test_bind_raw"
|
12
11
|
if $test_clob
|
13
12
|
require "#{srcdir}/test_clob"
|
14
13
|
end
|
15
14
|
|
16
|
-
# High-level API
|
17
15
|
require "#{srcdir}/test_break"
|
18
16
|
require "#{srcdir}/test_oci8"
|
17
|
+
require "#{srcdir}/test_datetime"
|
19
18
|
require "#{srcdir}/test_connstr"
|
20
19
|
require "#{srcdir}/test_metadata"
|
20
|
+
require "#{srcdir}/test_array_dml"
|
21
21
|
require "#{srcdir}/test_rowid"
|
22
|
+
require "#{srcdir}/test_oracle_version"
|
22
23
|
|
23
24
|
# Ruby/DBI
|
24
25
|
begin
|
25
26
|
require 'dbi'
|
27
|
+
is_dbi_loaded = true
|
26
28
|
rescue LoadError
|
27
|
-
|
28
|
-
require 'rubygems'
|
29
|
-
require 'dbi'
|
30
|
-
rescue LoadError
|
31
|
-
dbi_not_found = false
|
32
|
-
end
|
29
|
+
is_dbi_loaded = false
|
33
30
|
end
|
34
|
-
|
31
|
+
if is_dbi_loaded
|
35
32
|
require "#{srcdir}/test_dbi"
|
36
33
|
if $test_clob
|
37
34
|
require "#{srcdir}/test_dbi_clob"
|
38
35
|
end
|
39
36
|
end
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
46
|
-
}
|
47
|
-
#RUNIT::CUI::TestRunner.quiet_mode = true
|
48
|
-
RUNIT::CUI::TestRunner.run(suite)
|
38
|
+
#Test::Unit::AutoRunner.run(true, true)
|
39
|
+
if defined? Test::Unit::AutoRunner
|
40
|
+
Test::Unit::AutoRunner.run()
|
41
|
+
end
|