Commit 7964bfc5 by Konstantin Käfer

don't assert in case the database handle wasn't closed correctly

parent f904f997
......@@ -256,11 +256,6 @@ int Database::EIO_AfterClose(eio_req *req) {
EMIT_EVENT(db->handle_, 2, args);
}
assert(baton->db->locked);
assert(!baton->db->open);
assert(!baton->db->handle);
assert(baton->db->pending == 0);
if (!db->open) {
Local<Value> args[] = { String::NewSymbol("close"), argv[0] };
EMIT_EVENT(db->handle_, 1, args);
......
......@@ -92,3 +92,38 @@ exports['open and close memory database queuing'] = function(beforeExit) {
assert.equal(closeFailed, 1, 'Database could be closed again');
});
};
exports['test closing with open statements'] = function(beforeExit) {
var completed = false;
var completedSecond = false;
var closed = false;
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run("CREATE TABLE foo (id INT, num INT)");
var stmt = db.prepare('INSERT INTO foo VALUES (?, ?)')
stmt.run(1, 2);
db.close(function(err) {
assert.ok(err.message,
"SQLITE_BUSY: unable to close due to unfinalised statements");
completed = true;
stmt.run(3, 4, function() {
completedSecond = true;
stmt.finalize();
db.close(function(err) {
if (err) throw err;
closed = true;
});
});
});
});
beforeExit(function() {
assert.ok(completed);
assert.ok(completedSecond);
assert.ok(closed);
});
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment