dbd_rdb
view release on metacpan or search on metacpan
test_smallint_unchecked
test_smallint_checked
test_integer_unchecked
test_integer_checked
test_bigint
test_tinyint_scaled
test_smallint_scaled
test_integer_scaled
test_double
test_float
test_date_1
test_date_2
test_interval_1
test_interval_2
test_create_all_types
test_NAME
test_NAME_lc
test_NAME_uc
test_PRECISION
test_SCALE
test_TYPE
test_NULLABLE
test_CursorName
test_NUM_OF_FIELDS
test_NUM_OF_PARAMS
test_hold_and_current_of
test_bind
test_bind_by_name
test_get_info
);
print "1..", scalar(@tests), "\n";
foreach my $test ( @tests ) {
print "---- Start $test ----\n" if $debug;
my $errors;
DBI->trace(4) if $debug =~ /$test/i;
eval {
no strict 'refs';
&{$test}();
};
DBI->trace(0);
if ( !$@ ) {
print "ok $cur_test\n";
} else {
print "not ok $cur_test\n";
print "$@\n" if $debug;
}
$cur_test++;
}
########################## TEST ROUTINES ################################
#
# load driver
#
sub test_load_dbd {
my $ok = require DBD::RDB;
check( $ok, 'require of DBD::RDB' );
}
#
# try to connect to a non existing database, expect error
#
sub test_connect_error {
my $dbh = DBI->connect( 'dbi:RDB: ATTACH FILENAME XXXX.RDB',
"", "", $std_attribs );
my $ok = ($DBI::errstr =~ /RDB\-E\-BAD_DB_FORMAT/);
check( $ok, 'connect to non existing DB', $DBI::errstr );
}
#
# create test database
# Additionally test return value of $dbh->do for non-select
#
sub test_create_db {
$dbh = DBI->connect( 'dbi:RDB:', undef, undef, $std_attribs );
check ( $dbh, 'connect', $DBI::errstr );
my $ok = $dbh->do('CREATE DATABASE FILENAME TEST.RDB');
check ( $ok == "0E0", 'CREATE DATABASE', $DBI::errstr );
check ( $dbh->disconnect, 'disconnect', $DBI::errstr );
}
#
# connect to test database again and keep dbh
#
sub test_connect {
$dbh = DBI->connect( 'dbi:RDB: ATTACH FILENAME TEST.RDB',
"", "", $std_attribs );
check( $dbh, 'connect', $DBI::errstr );
}
#
# set trans read write => to test 'do' and 'do' error handling
#
sub test_do_set_trans_rw {
my $ok;
$ok = $dbh->do('SET TRANSACTION READ WRITE');
check( $ok == "0E0", 'do of SET TRANS READ WRITE', $DBI::errstr );
$ok = $dbh->commit;
check( $ok, 'COMMIT', $DBI::errstr );
$ok = $dbh->rollback;
check( !$ok, 'ROLLBACK', 'unexpected success' );
check( ($DBI::errstr eq
"%SQL-F-NOIMPTXN, no implicit transaction to commit or rollback"),
'test DBI::errstr for double rollback (NOIMPTXN)', $DBI::errstr );
}
#
# INSERT/FETCH of CHAR without option "chop"
#
sub test_char_unchopped {
my $vals = [
{ in => 'abcde' },
{ in => 'abc ', out => 'abc ' },
( run in 2.385 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )