add tests for page_size pragma

This commit is contained in:
meteorgan
2025-07-11 23:05:58 +08:00
parent f123c77ee8
commit 39d79d7420

View File

@@ -169,3 +169,35 @@ do_execsql_test pragma-function-sql-injection {
SELECT * FROM pragma_table_info('sqlite_schema'';CREATE TABLE foo(c0);SELECT ''bar');
SELECT * FROM pragma_table_info('foo');
} {}
do_execsql_test_on_specific_db ":memory:" pragma-page-size-default {
PRAGMA page_size
} {4096}
do_execsql_test_on_specific_db ":memory:" pragma-page-size-set {
PRAGMA page_size=1024;
PRAGMA page_size
} {1024}
# pragma page_size=xxx doesn't change the page size of an initialized database.
do_execsql_test_on_specific_db ":memory:" pragma-page-size-set-initialized-db {
CREATE TABLE "foo bar"(c0);
PRAGMA page_size=1024;
PRAGMA page_size
} {4096}
# pragma page_size=xxx changes the page size of an uninitialized database and persists the change.
set test_pragma_page_size_db "testing/testing_pragma_page_size.db"
# set user_version to trigger database initialization.
do_execsql_test_on_specific_db $test_pragma_page_size_db pragma-page-size-set-initialized-db-1 {
PRAGMA page_size=1024;
PRAGMA user_version=1;
PRAGMA page_size
} {1024}
do_execsql_test_on_specific_db $test_pragma_page_size_db pragma-page-size-set-uninitialized-db-2 {
PRAGMA page_size
} {1024}
catch {file delete -force $test_pragma_page_size_db}
catch {file delete -force "${test_pragma_page_size_db}-wal"}