mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-07 06:08:38 -04:00
41 lines
1.1 KiB
Perl
41 lines
1.1 KiB
Perl
use strict;
|
|
use warnings;
|
|
use lib "t/lib";
|
|
use SQLiteTest qw/connect_ok @CALL_FUNCS/;
|
|
use Test::More;
|
|
use if -d ".git", "Test::FailWarnings";
|
|
use DBD::SQLite::Constants ':allowed_return_values_from_sqlite3_txn_state';
|
|
|
|
note "test main schema";
|
|
test('main');
|
|
note "test undef schema";
|
|
test(undef);
|
|
note "omit schema";
|
|
test();
|
|
done_testing;
|
|
|
|
sub test {
|
|
my @schema = @_;
|
|
die if @schema > 1;
|
|
|
|
for my $func (@CALL_FUNCS) {
|
|
my $dbh = connect_ok(PrintError => 0, RaiseError => 1);
|
|
$dbh->do('create table foo (id)');
|
|
|
|
my $txn_state = $dbh->$func(@schema, 'txn_state');
|
|
is $txn_state => SQLITE_TXN_NONE, "internal transaction is none";
|
|
|
|
$dbh->do('BEGIN');
|
|
|
|
my $row = $dbh->selectrow_arrayref('SELECT * FROM foo');
|
|
|
|
$txn_state = $dbh->$func(@schema, 'txn_state');
|
|
is $txn_state => SQLITE_TXN_READ, "internal transaction is read";
|
|
|
|
$dbh->do('insert into foo values (1)');
|
|
$txn_state = $dbh->$func(@schema, 'txn_state');
|
|
is $txn_state => SQLITE_TXN_WRITE, "internal transaction is write";
|
|
|
|
$dbh->commit;
|
|
}
|
|
}
|