Fix a shadowed var in opfs-sahpool and add more tests.

FossilOrigin-Name: 9c8a73aff0f291e0c18072372e0d8961d3a05910489598d0d342227d99871954
This commit is contained in:
stephan 2023-07-18 19:27:11 +00:00
parent b0dd9d427f
commit 0649a1a05d
4 changed files with 34 additions and 19 deletions

View File

@ -999,18 +999,18 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
//log("vfs list:",capi.sqlite3_js_vfs_list());
if(sqlite3.oo1){
const oo1 = sqlite3.oo1;
const OpfsthePoolDb = function(...args){
const OpfsSAHPoolDb = function(...args){
const opt = oo1.DB.dbCtorHelper.normalizeArgs(...args);
opt.vfs = opfsVfs.$zName;
oo1.DB.dbCtorHelper.call(this, opt);
};
OpfsthePoolDb.prototype = Object.create(oo1.DB.prototype);
OpfsthePoolDb.PoolUtil = poolUtil;
if(!oo1.OpfsthePoolDb){
oo1.OpfsthePoolDb = Object.create(null);
oo1.OpfsthePoolDb.default = OpfsthePoolDb;
OpfsSAHPoolDb.prototype = Object.create(oo1.DB.prototype);
OpfsSAHPoolDb.PoolUtil = poolUtil;
if(!oo1.OpfsSAHPool){
oo1.OpfsSAHPool = Object.create(null);
oo1.OpfsSAHPool.default = OpfsSAHPoolDb;
}
oo1.OpfsthePoolDb[vfsName] = OpfsthePoolDb;
oo1.OpfsSAHPool[vfsName] = OpfsSAHPoolDb;
oo1.DB.dbCtorHelper.setVfsPostOpenSql(
opfsVfs.pointer,
function(oo1Db, sqlite3){

View File

@ -2779,10 +2779,25 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
T.assert(u1 === u2)
.assert(sahPoolConfig.name === u1.vfsName)
.assert(sqlite3.capi.sqlite3_vfs_find(sahPoolConfig.name))
.assert(u1.getCapacity() === sahPoolConfig.initialCapacity)
.assert(5 === (await u2.addCapacity(2)))
.assert(sqlite3.capi.sqlite3_js_vfs_list().indexOf(sahPoolConfig.name) >= 0)
.assert(true === await u2.removeVfs())
.assert(u1.getCapacity() >= sahPoolConfig.initialCapacity
/* If a test fails before we get to nuke the VFS, we
can have more than the initial capacity on the next
run. */)
.assert(u1.getCapacity() + 2 === (await u2.addCapacity(2)))
.assert(sqlite3.oo1.OpfsSAHPool.default instanceof Function)
.assert(sqlite3.oo1.OpfsSAHPool.default ===
sqlite3.oo1.OpfsSAHPool[sahPoolConfig.name])
.assert(sqlite3.capi.sqlite3_js_vfs_list().indexOf(sahPoolConfig.name) >= 0);
const db = new sqlite3.oo1.OpfsSAHPool.default("foo.db");
db.exec([
'create table t(a);',
'insert into t(a) values(1),(2),(3)'
]);
T.assert(3 === db.selectValue('select count(*) from t'));
db.close();
T.assert(true === await u2.removeVfs())
.assert(false === await u1.removeVfs())
.assert(!sqlite3.capi.sqlite3_vfs_find(sahPoolConfig.name));

View File

@ -1,5 +1,5 @@
C Further\srefactoring\sof\sopfs-sahpool\sand\sstart\sintegrating\sit\sinto\stester1.c-pp.js.
D 2023-07-18T18:52:41.004
C Fix\sa\sshadowed\svar\sin\sopfs-sahpool\sand\sadd\smore\stests.
D 2023-07-18T19:27:11.899
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -502,7 +502,7 @@ F ext/wasm/api/sqlite3-api-worker1.js 9f32af64df1a031071912eea7a201557fe39b17386
F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89
F ext/wasm/api/sqlite3-opfs-async-proxy.js 8cf8a897726f14071fae6be6648125162b256dfb4f96555b865dbb7a6b65e379
F ext/wasm/api/sqlite3-v-helper.js fc9ed95433d943a65905d16b7ed51515ddb6667d2a2c5a711c7ce33b29d3be31
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.js cd4d26fd8bf6c6b5bcb1666e8447c5388eb10ebfee57684e3658ee995f5a9645
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.js 4490d1b6a123d6d99fe5896e801de9dc8f81fa292a78e462ff10ebb5e9a10992
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 4946af0d6fbd395aa39966562ca85900664605a5f0cc10fff50146dee527812c
F ext/wasm/api/sqlite3-wasm.c 8867f1d41c112fb4a2cfe22ff224eccaf309fcdea266cee0ec554f85db72ef0f
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js bc06df0d599e625bde6a10a394e326dc68da9ff07fa5404354580f81566e591f
@ -549,7 +549,7 @@ F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555
F ext/wasm/test-opfs-vfs.js f09266873e1a34d9bdb6d3981ec8c9e382f31f215c9fd2f9016d2394b8ae9b7b
F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c
F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
F ext/wasm/tester1.c-pp.js 76607c9821e7854c061121b89337ca244f683b3a16c5415d078d361a8ec9e22f
F ext/wasm/tester1.c-pp.js f26ed573b2b6948891c6f5c25e7018f3a4245b183532cfa386b74869634bd08e
F ext/wasm/tests/opfs/concurrency/index.html 0802373d57034d51835ff6041cda438c7a982deea6079efd98098d3e42fbcbc1
F ext/wasm/tests/opfs/concurrency/test.js a98016113eaf71e81ddbf71655aa29b0fed9a8b79a3cdd3620d1658eb1cc9a5d
F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
@ -2044,8 +2044,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 95e5fa498f71708caeb3394636c4853530a8b2d54406e503f32750732d6815d5
R b629bc29f8d41e1b5f3ab58dda955102
P 91c789234963b660ae900f0738906b28a477993709e286d8125b2f4d6101601c
R 7463e6a2312d04dbe1f49055415382e0
U stephan
Z c2f2230ed00c70ba745095d2d4043967
Z 6742837371ae9c474a1547585ca5d4c8
# Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
91c789234963b660ae900f0738906b28a477993709e286d8125b2f4d6101601c
9c8a73aff0f291e0c18072372e0d8961d3a05910489598d0d342227d99871954