use strict;
use warnings;
use Test::More;
use DBI;
use vars qw($test_dsn $test_user $test_password);
use lib 't', '.';
require 'lib.pl';
my $dbh1 = DbiTestConnect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0 });
plan tests => 17;
ok $dbh1->{Active};
ok $dbh1->disconnect();
ok !$dbh1->{Active};
ok my $dbh2 = DBI->connect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0 });
ok my $dbh3 = DBI->connect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0 });
ok $dbh2->{Active};
ok $dbh2->disconnect();
ok !$dbh2->{Active};
ok $dbh3->{Active};
ok $dbh3->disconnect();
ok !$dbh3->{Active};
ok my $dbh4 = DBI->connect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0 });
ok our $dbh5 = DBI->connect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0 });
ok $dbh4->{Active};
ok $dbh5->{Active};
# install a handler so that a warning about unfreed resources gets caught
$SIG{__WARN__} = sub { die @_ };
DBI->disconnect_all();
ok !$dbh4->{Active};
ok !$dbh5->{Active};