1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-06-15 02:42:32 +03:00

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));