Skip to content

Commit ab6834b

Browse files
committed
zombies?
1 parent 659c7dd commit ab6834b

File tree

6 files changed

+129
-96
lines changed

6 files changed

+129
-96
lines changed

test/parallel/test-sqlite-data-types.js

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --experimental-sqlite
1+
// Flags: --experimental-sqlite --expose-gc
22
'use strict';
33
require('../common');
44
const tmpdir = require('../common/tmpdir');
@@ -9,6 +9,7 @@ let cnt = 0;
99

1010
const { rm } = require('node:fs/promises');
1111
async function refresh() {
12+
global.gc();
1213
await rm(tmpdir.path, { maxRetries: 3, recursive: true, force: true });
1314
tmpdir.refresh();
1415
}
@@ -35,7 +36,7 @@ suite('data binding and mapping', () => {
3536
) STRICT;
3637
`);
3738
t.assert.strictEqual(setup, undefined);
38-
const stmt = db.prepare('INSERT INTO types (key, int, double, text, buf) ' +
39+
let stmt = db.prepare('INSERT INTO types (key, int, double, text, buf) ' +
3940
'VALUES (?, ?, ?, ?, ?)');
4041
t.assert.deepStrictEqual(
4142
stmt.run(1, 42, 3.14159, 'foo', u8a),
@@ -54,7 +55,7 @@ suite('data binding and mapping', () => {
5455
{ changes: 1, lastInsertRowid: 4 },
5556
);
5657

57-
const query = db.prepare('SELECT * FROM types WHERE key = ?');
58+
let query = db.prepare('SELECT * FROM types WHERE key = ?');
5859
t.assert.deepStrictEqual(query.get(1), {
5960
key: 1,
6061
int: 42,
@@ -83,6 +84,8 @@ suite('data binding and mapping', () => {
8384
text: '',
8485
buf: new Uint8Array(),
8586
});
87+
stmt = null;
88+
query = null;
8689
db.close();
8790
});
8891

@@ -102,21 +105,21 @@ suite('data binding and mapping', () => {
102105
new Map(),
103106
new Set(),
104107
].forEach((val) => {
105-
t.assert.throws(() => {
106-
db.prepare('INSERT INTO types (key, val) VALUES (?, ?)').run(1, val);
107-
}, {
108-
code: 'ERR_INVALID_ARG_TYPE',
109-
message: /Provided value cannot be bound to SQLite parameter 2/,
110-
});
108+
// t.assert.throws(() => {
109+
// db.prepare('INSERT INTO types (key, val) VALUES (?, ?)').run(1, val);
110+
// }, {
111+
// code: 'ERR_INVALID_ARG_TYPE',
112+
// message: /Provided value cannot be bound to SQLite parameter 2/,
113+
// });
111114
});
112115

113-
t.assert.throws(() => {
114-
const stmt = db.prepare('INSERT INTO types (key, val) VALUES ($k, $v)');
115-
stmt.run({ $k: 1, $v: () => {} });
116-
}, {
117-
code: 'ERR_INVALID_ARG_TYPE',
118-
message: /Provided value cannot be bound to SQLite parameter 2/,
119-
});
116+
// t.assert.throws(() => {
117+
// const stmt = db.prepare('INSERT INTO types (key, val) VALUES ($k, $v)');
118+
// stmt.run({ $k: 1, $v: () => {} });
119+
// }, {
120+
// code: 'ERR_INVALID_ARG_TYPE',
121+
// message: /Provided value cannot be bound to SQLite parameter 2/,
122+
// });
120123
db.close();
121124
});
122125

@@ -127,7 +130,7 @@ suite('data binding and mapping', () => {
127130
'CREATE TABLE types(key INTEGER PRIMARY KEY, val INTEGER) STRICT;'
128131
);
129132
t.assert.strictEqual(setup, undefined);
130-
const stmt = db.prepare('INSERT INTO types (key, val) VALUES (?, ?)');
133+
let stmt = db.prepare('INSERT INTO types (key, val) VALUES (?, ?)');
131134
t.assert.deepStrictEqual(
132135
stmt.run(1, max),
133136
{ changes: 1, lastInsertRowid: 1 },
@@ -138,6 +141,7 @@ suite('data binding and mapping', () => {
138141
code: 'ERR_INVALID_ARG_VALUE',
139142
message: /BigInt value is too large to bind/,
140143
});
144+
stmt = null;
141145
db.close();
142146
});
143147

@@ -147,7 +151,7 @@ suite('data binding and mapping', () => {
147151
'CREATE TABLE data(key INTEGER PRIMARY KEY, val INTEGER) STRICT;'
148152
);
149153
t.assert.strictEqual(setup, undefined);
150-
const stmt = db.prepare('INSERT INTO data (key, val) VALUES (?, ?)');
154+
let stmt = db.prepare('INSERT INTO data (key, val) VALUES (?, ?)');
151155
t.assert.deepStrictEqual(
152156
stmt.run(1, 5),
153157
{ changes: 1, lastInsertRowid: 1 },
@@ -156,10 +160,11 @@ suite('data binding and mapping', () => {
156160
stmt.run(),
157161
{ changes: 1, lastInsertRowid: 2 },
158162
);
159-
t.assert.deepStrictEqual(
160-
db.prepare('SELECT * FROM data ORDER BY key').all(),
161-
[{ key: 1, val: 5 }, { key: 2, val: null }],
162-
);
163+
// t.assert.deepStrictEqual(
164+
// db.prepare('SELECT * FROM data ORDER BY key').all(),
165+
// [{ key: 1, val: 5 }, { key: 2, val: null }],
166+
// );
167+
stmt = null;
163168
db.close();
164169
});
165170
});

test/parallel/test-sqlite-database-sync.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --experimental-sqlite
1+
// Flags: --experimental-sqlite --expose-gc
22
'use strict';
33
require('../common');
44
const tmpdir = require('../common/tmpdir');
@@ -10,6 +10,7 @@ let cnt = 0;
1010

1111
const { rm } = require('node:fs/promises');
1212
async function refresh() {
13+
global.gc();
1314
await rm(tmpdir.path, { maxRetries: 3, recursive: true, force: true });
1415
tmpdir.refresh();
1516
}
@@ -106,8 +107,9 @@ suite('DatabaseSync.prototype.close()', () => {
106107
suite('DatabaseSync.prototype.prepare()', () => {
107108
test('returns a prepared statement', (t) => {
108109
const db = new DatabaseSync(nextDb());
109-
const stmt = db.prepare('CREATE TABLE webstorage(key TEXT)');
110+
let stmt = db.prepare('CREATE TABLE webstorage(key TEXT)');
110111
t.assert.ok(stmt instanceof StatementSync);
112+
stmt = null;
111113
db.close();
112114
});
113115

@@ -147,11 +149,12 @@ suite('DatabaseSync.prototype.exec()', () => {
147149
INSERT INTO data (key, val) VALUES (8, 9);
148150
`);
149151
t.assert.strictEqual(result, undefined);
150-
const stmt = db.prepare('SELECT * FROM data ORDER BY key');
152+
let stmt = db.prepare('SELECT * FROM data ORDER BY key');
151153
t.assert.deepStrictEqual(stmt.all(), [
152154
{ key: 1, val: 2 },
153155
{ key: 8, val: 9 },
154156
]);
157+
stmt = null;
155158
db.close();
156159
});
157160

test/parallel/test-sqlite-named-parameters.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --experimental-sqlite
1+
// Flags: --experimental-sqlite --expose-gc
22
'use strict';
33
require('../common');
44
const tmpdir = require('../common/tmpdir');
@@ -9,6 +9,7 @@ let cnt = 0;
99

1010
const { rm } = require('node:fs/promises');
1111
async function refresh() {
12+
global.gc();
1213
await rm(tmpdir.path, { maxRetries: 3, recursive: true, force: true });
1314
tmpdir.refresh();
1415
}
@@ -29,8 +30,9 @@ suite('named parameters', () => {
2930
t.assert.strictEqual(setup, undefined);
3031

3132
t.assert.throws(() => {
32-
const stmt = db.prepare('INSERT INTO types (key, val) VALUES ($k, $v)');
33+
let stmt = db.prepare('INSERT INTO types (key, val) VALUES ($k, $v)');
3334
stmt.run({ $k: 1, $unknown: 1 });
35+
stmt = null;
3436
}, {
3537
code: 'ERR_INVALID_STATE',
3638
message: /Unknown named parameter '\$unknown'/,
@@ -44,12 +46,13 @@ suite('named parameters', () => {
4446
'CREATE TABLE data(key INTEGER PRIMARY KEY, val INTEGER) STRICT;'
4547
);
4648
t.assert.strictEqual(setup, undefined);
47-
const stmt = db.prepare('INSERT INTO data (key, val) VALUES ($k, $v)');
49+
let stmt = db.prepare('INSERT INTO data (key, val) VALUES ($k, $v)');
4850
stmt.run({ k: 1, v: 9 });
4951
t.assert.deepStrictEqual(
5052
db.prepare('SELECT * FROM data').get(),
5153
{ key: 1, val: 9 },
5254
);
55+
stmt = null;
5356
db.close();
5457
});
5558

@@ -59,12 +62,13 @@ suite('named parameters', () => {
5962
'CREATE TABLE data(key INTEGER PRIMARY KEY, val INTEGER) STRICT;'
6063
);
6164
t.assert.strictEqual(setup, undefined);
62-
const stmt = db.prepare('INSERT INTO data (key, val) VALUES ($k, $k)');
65+
let stmt = db.prepare('INSERT INTO data (key, val) VALUES ($k, $k)');
6366
stmt.run({ k: 1 });
64-
t.assert.deepStrictEqual(
65-
db.prepare('SELECT * FROM data').get(),
66-
{ key: 1, val: 1 },
67-
);
67+
// t.assert.deepStrictEqual(
68+
// db.prepare('SELECT * FROM data').get(),
69+
// { key: 1, val: 1 },
70+
// );
71+
stmt = null;
6872
db.close();
6973
});
7074

@@ -74,14 +78,15 @@ suite('named parameters', () => {
7478
'CREATE TABLE types(key INTEGER PRIMARY KEY, val INTEGER) STRICT;'
7579
);
7680
t.assert.strictEqual(setup, undefined);
77-
const stmt = db.prepare('INSERT INTO types (key, val) VALUES ($k, @k)');
81+
let stmt = db.prepare('INSERT INTO types (key, val) VALUES ($k, @k)');
7882
t.assert.throws(() => {
7983
stmt.run({ k: 1 });
8084
}, {
8185
code: 'ERR_INVALID_STATE',
8286
message: 'Cannot create bare named parameter \'k\' because of ' +
8387
'conflicting names \'$k\' and \'@k\'.',
8488
});
89+
stmt = null;
8590
db.close();
8691
});
8792
});

0 commit comments

Comments
 (0)