The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
$| = 1;

## ----------------------------------------------------------------------------
## 12imptdata.t
## By Jeffrey Klein,
## ----------------------------------------------------------------------------

use strict;
use DBI;
use Config qw(%Config);
# must be done before Test::More - see Threads in Test::More pod
BEGIN { eval "use threads; use threads::shared;" }
my $use_threads_err = $@;
use Test::More;

BEGIN {
    if ($DBI::VERSION <= 1.601){
      plan skip_all => "DBI version ".$DBI::VERSION." does not support iThreads. Use version 1.602 or later.";
    }
    die $use_threads_err if $use_threads_err;    # need threads
}

unshift @INC, 't';
require 'nchar_test_lib.pl';

my $dsn    = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
my $dbh    = DBI->connect( $dsn, $dbuser, '', {
                           PrintError => 0,
                       });

if ($dbh) {
    plan tests => 7;
} else {
    plan skip_all => "Unable to connect to Oracle";
}
my $drh = $dbh->{Driver};
my ($sess_1) = $dbh->selectrow_array("select userenv('sessionid') from dual");

is $drh->{Kids},       1, "1 kid";
is $drh->{ActiveKids}, 1, "1 active kid";

my $imp_data = $dbh->take_imp_data;
is $drh->{Kids},       0, "no kids";
is $drh->{ActiveKids}, 0, "no active kids";

$dbh = DBI->connect( $dsn, $dbuser, '', { dbi_imp_data => $imp_data } );
my ($sess_2) = $dbh->selectrow_array("select userenv('sessionid') from dual");
is $sess_1, $sess_2, "got same session";

is $drh->{Kids},       1, "1 kid";
is $drh->{ActiveKids}, 1, "1 active kid";

__END__