aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm/tester1.c-pp.js
diff options
context:
space:
mode:
authorstephan <stephan@noemail.net>2022-12-09 01:49:17 +0000
committerstephan <stephan@noemail.net>2022-12-09 01:49:17 +0000
commit6ca03e14e90070a80e2e53fd98a53d1eecc8c5bb (patch)
treeb63bafb468e6e685d845dcbf154957896109f78b /ext/wasm/tester1.c-pp.js
parentd27c3e4e7e5ce92a34864ed08f1231918f753c4b (diff)
downloadsqlite-6ca03e14e90070a80e2e53fd98a53d1eecc8c5bb.tar.gz
sqlite-6ca03e14e90070a80e2e53fd98a53d1eecc8c5bb.zip
Expose sqlite3_db_status() and sqlite3_db_config() to wasm, noting that the latter requires several internal wrappers to account for the various varidic forms (C varargs cannot be bound to wasm).
FossilOrigin-Name: d5753668915c1db204fa80153614653243081ffaddea22f26ad59bb1836948b9
Diffstat (limited to 'ext/wasm/tester1.c-pp.js')
-rw-r--r--ext/wasm/tester1.c-pp.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/ext/wasm/tester1.c-pp.js b/ext/wasm/tester1.c-pp.js
index e57f1c002..88c7687a1 100644
--- a/ext/wasm/tester1.c-pp.js
+++ b/ext/wasm/tester1.c-pp.js
@@ -1056,6 +1056,32 @@ self.sqlite3InitModule = sqlite3InitModule;
.assert(db === sqlite3.oo1.DB.checkRc(db,0))
.assert(null === sqlite3.oo1.DB.checkRc(null,0))
})
+ ////////////////////////////////////////////////////////////////////
+ .t('sqlite3_db_config() and sqlite3_db_status()', function(sqlite3){
+ let rc = capi.sqlite3_db_config(this.db, capi.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE, 0, 0);
+ T.assert(0===rc);
+ rc = capi.sqlite3_db_config(this.db, capi.SQLITE_DBCONFIG_MAX+1, 0);
+ T.assert(capi.SQLITE_MISUSE === rc);
+ rc = capi.sqlite3_db_config(this.db, capi.SQLITE_DBCONFIG_MAINDBNAME, "main");
+ T.assert(0 === rc);
+ const stack = wasm.pstack.pointer;
+ try {
+ const [pCur, pHi] = wasm.pstack.allocPtr(2);
+ rc = capi.sqlite3_db_status(this.db, capi.SQLITE_DBSTATUS_LOOKASIDE_USED,
+ pCur, pHi, 0);
+ T.assert(0===rc);
+ if(wasm.getMemValue(pCur, 'i32')){
+ warn("Cannot test db_config(SQLITE_DBCONFIG_LOOKASIDE)",
+ "while lookaside memory is in use.");
+ }else{
+ rc = capi.sqlite3_db_config(this.db, capi.SQLITE_DBCONFIG_LOOKASIDE,
+ 0, 4096, 12);
+ T.assert(0 === rc);
+ }
+ }finally{
+ wasm.pstack.restore(stack);
+ }
+ })
////////////////////////////////////////////////////////////////////
.t('DB.Stmt', function(S){