mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Add JS bindings and tests for sqlite3_interrupted(), is_interrupted(), and db_readonly().
FossilOrigin-Name: 5589ba5651d80479ae555429340fc74390ff07d3e05ba770bb7d82490211e00d
This commit is contained in:
@ -46,6 +46,7 @@ _sqlite3_data_count
|
||||
_sqlite3_db_filename
|
||||
_sqlite3_db_handle
|
||||
_sqlite3_db_name
|
||||
_sqlite3_db_readonly
|
||||
_sqlite3_db_status
|
||||
_sqlite3_declare_vtab
|
||||
_sqlite3_deserialize
|
||||
@ -64,6 +65,8 @@ _sqlite3_free
|
||||
_sqlite3_get_auxdata
|
||||
_sqlite3_get_autocommit
|
||||
_sqlite3_initialize
|
||||
_sqlite3_interrupt
|
||||
_sqlite3_is_interrupted
|
||||
_sqlite3_keyword_count
|
||||
_sqlite3_keyword_name
|
||||
_sqlite3_keyword_check
|
||||
|
@ -152,6 +152,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
["sqlite3_db_filename", "string", "sqlite3*", "string"],
|
||||
["sqlite3_db_handle", "sqlite3*", "sqlite3_stmt*"],
|
||||
["sqlite3_db_name", "string", "sqlite3*", "int"],
|
||||
["sqlite3_db_readonly", "int", "sqlite3*", "string"],
|
||||
["sqlite3_db_status", "int", "sqlite3*", "int", "*", "*", "int"],
|
||||
["sqlite3_errcode", "int", "sqlite3*"],
|
||||
["sqlite3_errmsg", "string", "sqlite3*"],
|
||||
@ -192,10 +193,8 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
||||
["sqlite3_get_autocommit", "int", "sqlite3*"],
|
||||
["sqlite3_get_auxdata", "*", "sqlite3_context*", "int"],
|
||||
["sqlite3_initialize", undefined],
|
||||
/*["sqlite3_interrupt", undefined, "sqlite3*"
|
||||
^^^ we cannot actually currently support this because JS is
|
||||
single-threaded and we don't have a portable way to access a DB
|
||||
from 2 SharedWorkers concurrently. ],*/
|
||||
["sqlite3_interrupt", undefined, "sqlite3*"],
|
||||
["sqlite3_is_interrupted", "int", "sqlite3*"],
|
||||
["sqlite3_keyword_count", "int"],
|
||||
["sqlite3_keyword_name", "int", ["int", "**", "*"]],
|
||||
["sqlite3_keyword_check", "int", ["string", "int"]],
|
||||
|
@ -461,7 +461,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
try{ sqlite3.SQLite3Error.toss("resultCode check") }
|
||||
catch(e){
|
||||
T.assert(capi.SQLITE_ERROR === e.resultCode)
|
||||
.assert('resultCode check' === e.message);
|
||||
.assert('resultCode check' === e.message);
|
||||
}
|
||||
})
|
||||
////////////////////////////////////////////////////////////////////
|
||||
@ -2063,6 +2063,24 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
||||
"Because foo is no longer attached.");
|
||||
})
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
.t("Interrupt", function(sqlite3){
|
||||
const db = new sqlite3.oo1.DB();
|
||||
T.assert( 0===capi.sqlite3_is_interrupted(db) );
|
||||
capi.sqlite3_interrupt(db);
|
||||
T.assert( 0!==capi.sqlite3_is_interrupted(db) );
|
||||
db.close();
|
||||
})
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
.t("Read-only", function(sqlite3){
|
||||
T.assert( 0===capi.sqlite3_db_readonly(this.db, "main") );
|
||||
const db = new sqlite3.oo1.DB('file://'+this.db.filename+'?mode=ro');
|
||||
T.assert( 1===capi.sqlite3_db_readonly(db, "main") );
|
||||
T.assert( -1===capi.sqlite3_db_readonly(db, "nope") );
|
||||
db.close();
|
||||
})
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
.t({
|
||||
name: 'C-side WASM tests',
|
||||
|
Reference in New Issue
Block a user