Test: Absturz beim Beenden vermeiden (better-sqlite3)
This commit is contained in:
@@ -203,6 +203,18 @@ pruefe("Die Aufgaben des ANDEREN Kunden bleiben",
|
||||
db.prepare(`SELECT COUNT(*) n FROM wd_aufgaben WHERE kunde_id = ?`).get(kundeA).n > 0);
|
||||
|
||||
console.log(`\n===== ${ok} bestanden, ${fehler} fehlgeschlagen =====`);
|
||||
db.close();
|
||||
rmSync(tmp, { recursive: true, force: true });
|
||||
process.exit(fehler ? 1 : 0);
|
||||
|
||||
/* Weder db.close() noch process.exit().
|
||||
|
||||
Beides zusammen bringt better-sqlite3 zum Absturz ("Assertion failed:
|
||||
(env) != nullptr"): process.exit() reisst die Node-Umgebung ab,
|
||||
waehrend der Aufraeumer der geschlossenen Datenbank noch laeuft. Der
|
||||
Absturz kam NACH allen Prüfungen, verschluckte aber die gepufferte
|
||||
Ausgabe -- es sah deshalb so aus, als waere der Test gar nicht
|
||||
gelaufen. Eine halbe Stunde Fehlersuche an der falschen Stelle.
|
||||
|
||||
process.exitCode setzen statt exit() aufzurufen: Node beendet sich von
|
||||
selbst, wenn nichts mehr zu tun ist, raeumt dabei ordentlich auf und
|
||||
schreibt die Ausgabe vollstaendig raus. */
|
||||
process.on("exit", () => rmSync(tmp, { recursive: true, force: true }));
|
||||
process.exitCode = fehler ? 1 : 0;
|
||||
|
||||
Reference in New Issue
Block a user