| timbo@cvs.perl.org 2006-01-13, 11:24 am |
| Author: timbo
Date: Fri Jan 13 07:15:01 2006
New Revision: 2412
Modified:
dbd-oracle/trunk/README
dbd-oracle/trunk/t/10general.t
dbd-oracle/trunk/t/15nls.t
dbd-oracle/trunk/t/20select.t
dbd-oracle/trunk/t/25plsql.t
dbd-oracle/trunk/t/40ph_type.t
dbd-oracle/trunk/t/50cursor.t
dbd-oracle/trunk/t/55nested.t
dbd-oracle/trunk/t/60reauth.t
dbd-oracle/trunk/t/70meta.t
dbd-oracle/trunk/t/nchar_test_lib.pl
Log:
Allow DBI_DSN and ORACLE_DSN env vars to override 'dbi:Oracle:' default dsn for
tests, thanks to Jillian Vogel.
Modified: dbd-oracle/trunk/README
====================
====================
====================
==================
--- dbd-oracle/trunk/README (original)
+++ dbd-oracle/trunk/README Fri Jan 13 07:15:01 2006
@@ -61,16 +61,25 @@ DBD::Oracle -- an Oracle interface for
The ORACLE_HOME environment variable must point to the Oracle Home
used to create DBD::Oracle. (Not essential under MS Windows).
- MOST IMPORTANTLY:
+*** MOST IMPORTANTLY:
Make sure Oracle is working and you can use the Oracle sqlplus
- command to talk to the database *from the machine* you
- want to build DBD::Oracle on. (This often involves setting
- environment variables like PATH, LD_LIBRARY_PATH, TWO_TASK etc.)
+ command to talk to the database from the machine you
+ want to build DBD::Oracle on. This often involves setting
+ environment variables like PATH, LD_LIBRARY_PATH, TWO_TASK etc.
+ Consult Oracle documentation for more details.
+
+ Only once you can connect to Oracle using sqlplus
+ should you try building and testing DBD::Oracle.
*** BUILDING:
+Execute:
+
perl Makefile.PL # use a perl that's in your PATH
+
+Use the perl that is first on your PATH. Then execute:
+
make
If you get an error like "make: not found" you need to find the
@@ -85,21 +94,23 @@ If you have problems see the 'IF YOU HAV
If it builds without error you should then run 'make test'. For the
main tests to work they must be able to connect to an Oracle database.
-You will need to set either the TWO_TASK or ORACLE_SID environment
-variables to the correct values for your database. Consult Oracle
-documentation for more details. Test your settings by connecting to
-the database using an Oracle tool such as sqlplus. Only once you can do
-that should you try building and testing DBD::Oracle.
+The tests default to using a DSN of "dbi:Oracle:" which means you'll be
+connected to the default database based on your TWO_TASK or ORACLE_SID
+environment variables. This default can be altered either by defining the
+ORACLE_DSN environment variable or the DBI_DSN environment variable.
+See the oracle_test_dsn() sub in t/nchar_test_lib.pl
The supplied tests will connect to the database using the value of the
-ORACLE_USERID environment variable to supply the username/password so
-you should set that to a valid value (e.g. 'scott/tiger') before
-starting the test. Using 'system/manager' might work but is not
-recommended! Please read README.login.txt.
+ORACLE_USERID environment variable to supply the username/password.
+So you should set that to a valid value (e.g. 'scott/tiger') before starting
+the test. Using 'system/manager' might work but is not recommended! See also
+README.login.txt.
make test
- make install (if the tests look okay, the last few are rather verbose)
+If the all the formal tests pass then, finally, run:
+
+ make install
*** IF YOU HAVE PROBLEMS:
Modified: dbd-oracle/trunk/t/10general.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/10general.t (original)
+++ dbd-oracle/trunk/t/10general.t Fri Jan 13 07:15:01 2006
@@ -5,12 +5,17 @@ use Test::More;
use DBI;
use Oraperl;
use Config;
+
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
plan tests => 33;
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '');
+my $dbh = DBI->connect($dsn, $dbuser, '');
unless($dbh) {
BAILOUT("Unable to connect to Oracle ($DBI::errstr)\nTest
s skiped.\n");
Modified: dbd-oracle/trunk/t/15nls.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/15nls.t (original)
+++ dbd-oracle/trunk/t/15nls.t Fri Jan 13 07:15:01 2006
@@ -5,16 +5,20 @@ use warnings;
use DBI;
use Test::More;
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
my $testcount = 9;
plan tests => $testcount;
$| = 1;
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
SKIP :
{
- my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '',
+ my $dbh = DBI->connect($dsn, $dbuser, '',
{
AutoCommit => 1,
PrintError => 1,
Modified: dbd-oracle/trunk/t/20select.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/20select.t (original)
+++ dbd-oracle/trunk/t/20select.t Fri Jan 13 07:15:01 2006
@@ -18,8 +18,9 @@ my %ocibug;
my $table = "dbd_ora__drop_me" . ($ENV& #123;DBD_ORACLE_SEQ}
||'');
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '', {
+my $dbh = DBI->connect($dsn, $dbuser, '', {
AutoCommit => 1,
PrintError => 0,
});
Modified: dbd-oracle/trunk/t/25plsql.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/25plsql.t (original)
+++ dbd-oracle/trunk/t/25plsql.t Fri Jan 13 07:15:01 2006
@@ -17,10 +17,14 @@ use DBI;
use DBD::Oracle qw(ORA_RSET SQLCS_NCHAR);
use strict;
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '', { PrintError => 0 });
+my $dbh = DBI->connect($dsn, $dbuser, '', { PrintError => 0 });
unless($dbh) {
warn "Unable to connect to Oracle ($DBI::errstr)\nTest
s skiped.\n";
Modified: dbd-oracle/trunk/t/40ph_type.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/40ph_type.t (original)
+++ dbd-oracle/trunk/t/40ph_type.t Fri Jan 13 07:15:01 2006
@@ -18,11 +18,14 @@ use DBI qw(neat);
use DBD::Oracle qw(ORA_OCI);
use vars qw($tests);
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
$^W = 1;
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dsn = $ENV{ORACLE_DSN} || 'dbi:Oracle:';
+my $dsn = oracle_test_dsn();
my $dbh = DBI->connect($dsn, $dbuser, '', {
AutoCommit => 0,
PrintError => 1,
Modified: dbd-oracle/trunk/t/50cursor.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/50cursor.t (original)
+++ dbd-oracle/trunk/t/50cursor.t Fri Jan 13 07:15:01 2006
@@ -18,10 +18,14 @@ use DBI;
use DBD::Oracle qw(ORA_RSET);
use strict;
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '', { PrintError => 0 });
+my $dbh = DBI->connect($dsn, $dbuser, '', { PrintError => 0 });
unless ($dbh) {
warn "Unable to connect to Oracle as $dbuser ($DBI::errstr)\nTest
s skipped.\n";
Modified: dbd-oracle/trunk/t/55nested.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/55nested.t (original)
+++ dbd-oracle/trunk/t/55nested.t Fri Jan 13 07:15:01 2006
@@ -17,10 +17,14 @@ use DBI;
use DBD::Oracle qw(ORA_RSET);
use strict;
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '', { PrintError => 0 });
+my $dbh = DBI->connect($dsn, $dbuser, '', { PrintError => 0 });
unless ($dbh) {
warn "Unable to connect to Oracle as $dbuser ($DBI::errstr)\nTest
s skipped.\n";
Modified: dbd-oracle/trunk/t/60reauth.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/60reauth.t (original)
+++ dbd-oracle/trunk/t/60reauth.t Fri Jan 13 07:15:01 2006
@@ -14,6 +14,9 @@ sub ok ($$;$) {
}
use DBI;
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
@@ -32,7 +35,8 @@ if ($uid1 eq $uid2) {
give_up("ORACLE_USERID_2 not unique.\nTests skipped.\n")
}
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '');
+my $dsn = oracle_test_dsn();
+my $dbh = DBI->connect($dsn, $dbuser, '');
unless($dbh) {
give_up("Unable to connect to Oracle ($DBI::errstr)\nTest
s skipped.\n");
Modified: dbd-oracle/trunk/t/70meta.t
====================
====================
====================
==================
--- dbd-oracle/trunk/t/70meta.t (original)
+++ dbd-oracle/trunk/t/70meta.t Fri Jan 13 07:15:01 2006
@@ -17,10 +17,14 @@ use strict;
use DBI qw(:sql_types);
use Data::Dumper;
+unshift @INC ,'t';
+require 'nchar_test_lib.pl';
+
$| = 1;
+my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
-my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '', { PrintError => 0 });
+my $dbh = DBI->connect($dsn, $dbuser, '', { PrintError => 0 });
unless ($dbh) {
warn "Unable to connect to Oracle as $dbuser ($DBI::errstr)\nTest
s skipped.\n";
Modified: dbd-oracle/trunk/t/nchar_test_lib.pl
====================
====================
====================
==================
--- dbd-oracle/trunk/t/nchar_test_lib.pl (original)
+++ dbd-oracle/trunk/t/nchar_test_lib.pl Fri Jan 13 07:15:01 2006
@@ -141,11 +141,19 @@ sub test_data
return $test_data;
}
-sub db_handle
+sub oracle_test_dsn
{
+ my( $default, $dsn ) = ( 'dbi:Oracle:', $ENV{ORACLE_DSN} );
+ $dsn ||= $ENV{DBI_DSN} if $ENV{DBI_DSN} && ($ENV{DBI_DSN} =~ /^$default/io);
+ $dsn ||= $default;
+ return $dsn;
+}
+sub db_handle
+{
+ my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
- my $dbh = DBI-> connect('dbi:Oracle:
', $dbuser, '', {
+ my $dbh = DBI->connect($dsn, $dbuser, '', {
AutoCommit => 1,
PrintError => 1,
ora_envhp => 0, # force fresh environment (with current NLS env vars)
|