mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-07 14:19:10 -04:00
added tests for sqlite_db_config(..., -1)
This commit is contained in:
parent
fc491a64a9
commit
b4a47ef2cf
1 changed files with 37 additions and 10 deletions
|
@ -40,7 +40,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'ENABLE_FKEY is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_FKEY;
|
skip 'ENABLE_FKEY is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_FKEY;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_FKEY, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_FKEY, -1, 'db_config');
|
||||||
|
diag "current ENABLE_FKEY value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_FKEY, 1, 'db_config');
|
||||||
is $ret => 1, 'enable foreign key';
|
is $ret => 1, 'enable foreign key';
|
||||||
|
|
||||||
# TODO: add foreign key check
|
# TODO: add foreign key check
|
||||||
|
@ -55,7 +58,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'ENABLE_TRIGGER is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_TRIGGER;
|
skip 'ENABLE_TRIGGER is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_TRIGGER;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_TRIGGER, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_TRIGGER, -1, 'db_config');
|
||||||
|
diag "current ENABLE_TRIGGER value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_TRIGGER, 1, 'db_config');
|
||||||
is $ret => 1, 'enable trigger';
|
is $ret => 1, 'enable trigger';
|
||||||
|
|
||||||
# TODO: add trigger check
|
# TODO: add trigger check
|
||||||
|
@ -70,7 +76,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'ENABLE_FTS3_TOKENIZER is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER;
|
skip 'ENABLE_FTS3_TOKENIZER is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, -1, 'db_config');
|
||||||
|
diag "current ENABLE_FTS3_TOKENIZER value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, 'db_config');
|
||||||
is $ret => 1, 'enable fts3_tokenizer';
|
is $ret => 1, 'enable fts3_tokenizer';
|
||||||
|
|
||||||
# TODO: add fts3_tokenizer check
|
# TODO: add fts3_tokenizer check
|
||||||
|
@ -85,7 +94,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'ENABLE_LOAD_EXTENSION is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION;
|
skip 'ENABLE_LOAD_EXTENSION is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, -1, 'db_config');
|
||||||
|
diag "current ENABLE_LOAD_EXTENSION value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1, 'db_config');
|
||||||
is $ret => 1, 'enable load_extension';
|
is $ret => 1, 'enable load_extension';
|
||||||
|
|
||||||
# TODO: add load_extension check
|
# TODO: add load_extension check
|
||||||
|
@ -95,12 +107,15 @@ for my $func (@CALL_FUNCS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# ENABLE_NO_CKPT_ON_CLOSE
|
# NO_CKPT_ON_CLOSE
|
||||||
for my $func (@CALL_FUNCS) {
|
for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'NO_CKPT_ON_CLOSE is not supported', 3 if !SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE;
|
skip 'NO_CKPT_ON_CLOSE is not supported', 3 if !SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE, -1, 'db_config');
|
||||||
|
diag "current NO_CKPT_ON_CLOSE value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE, 1, 'db_config');
|
||||||
is $ret => 1, 'no checkpoint on close';
|
is $ret => 1, 'no checkpoint on close';
|
||||||
|
|
||||||
# TODO: add checkpoint check
|
# TODO: add checkpoint check
|
||||||
|
@ -115,7 +130,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'ENABLE_QPSG is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_QPSG;
|
skip 'ENABLE_QPSG is not supported', 3 if !SQLITE_DBCONFIG_ENABLE_QPSG;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_QPSG, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_QPSG, -1, 'db_config');
|
||||||
|
diag "current ENABLE_OPSG value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_ENABLE_QPSG, 1, 'db_config');
|
||||||
is $ret => 1, 'enable query planner stability guarantee';
|
is $ret => 1, 'enable query planner stability guarantee';
|
||||||
|
|
||||||
# TODO: add qpsg check
|
# TODO: add qpsg check
|
||||||
|
@ -130,7 +148,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'TRIGGER_EQP is not supported', 3 if !SQLITE_DBCONFIG_TRIGGER_EQP;
|
skip 'TRIGGER_EQP is not supported', 3 if !SQLITE_DBCONFIG_TRIGGER_EQP;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_TRIGGER_EQP, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_TRIGGER_EQP, -1, 'db_config');
|
||||||
|
diag "current TRIGGER_EQP value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_TRIGGER_EQP, 1, 'db_config');
|
||||||
is $ret => 1, 'trigger explain query plan';
|
is $ret => 1, 'trigger explain query plan';
|
||||||
|
|
||||||
# TODO: add trigger check
|
# TODO: add trigger check
|
||||||
|
@ -145,7 +166,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip 'RESET_DATABASE is not supported', 3 if !SQLITE_DBCONFIG_RESET_DATABASE;
|
skip 'RESET_DATABASE is not supported', 3 if !SQLITE_DBCONFIG_RESET_DATABASE;
|
||||||
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_RESET_DATABASE, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_RESET_DATABASE, -1, 'db_config');
|
||||||
|
diag "current RESET_DATABASE value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_RESET_DATABASE, 1, 'db_config');
|
||||||
is $ret => 1, 'enable reset database';
|
is $ret => 1, 'enable reset database';
|
||||||
|
|
||||||
# TODO: add reset check
|
# TODO: add reset check
|
||||||
|
@ -167,7 +191,10 @@ for my $func (@CALL_FUNCS) {
|
||||||
my $row = $dbh->selectrow_hashref('SELECT * FROM sqlite_master WHERE name = ?', {Slice => +{}}, 'foo');
|
my $row = $dbh->selectrow_hashref('SELECT * FROM sqlite_master WHERE name = ?', {Slice => +{}}, 'foo');
|
||||||
is $row->{sql} => $sql, 'found sql';
|
is $row->{sql} => $sql, 'found sql';
|
||||||
|
|
||||||
my $ret = $dbh->$func(SQLITE_DBCONFIG_DEFENSIVE, 1, 'db_config');
|
my $ret = $dbh->$func(SQLITE_DBCONFIG_DEFENSIVE, -1, 'db_config');
|
||||||
|
diag "current DEFENSIVE value: $ret";
|
||||||
|
|
||||||
|
$ret = $dbh->$func(SQLITE_DBCONFIG_DEFENSIVE, 1, 'db_config');
|
||||||
is $ret => 1;
|
is $ret => 1;
|
||||||
eval { $dbh->do('UPDATE sqlite_master SET name = ? WHERE name = ?', undef, 'bar', 'foo'); };
|
eval { $dbh->do('UPDATE sqlite_master SET name = ? WHERE name = ?', undef, 'bar', 'foo'); };
|
||||||
ok $@, "updating sqlite_master is prohibited";
|
ok $@, "updating sqlite_master is prohibited";
|
||||||
|
|
Loading…
Add table
Reference in a new issue