2024-01-01 14:58:21 -05:00
|
|
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2023-01-10 13:15:10 -05:00
|
|
|
|
2024-08-20 15:14:37 -04:00
|
|
|
// deno-lint-ignore-file no-console
|
|
|
|
|
2023-01-10 13:15:10 -05:00
|
|
|
import { assertEquals, loadTestLibrary } from "./common.js";
|
|
|
|
|
|
|
|
const properties = loadTestLibrary();
|
|
|
|
|
|
|
|
if (import.meta.main) {
|
|
|
|
properties.installCleanupHook();
|
|
|
|
console.log("installed cleanup hook");
|
|
|
|
} else {
|
|
|
|
Deno.test("napi cleanup hook", async () => {
|
|
|
|
const { stdout, stderr, code } = await new Deno.Command(Deno.execPath(), {
|
|
|
|
args: [
|
|
|
|
"run",
|
2024-02-12 15:46:50 -05:00
|
|
|
"--config",
|
|
|
|
Deno.realPathSync("../config/deno.json"),
|
|
|
|
"--no-lock",
|
2023-01-10 13:15:10 -05:00
|
|
|
"--allow-read",
|
|
|
|
"--allow-run",
|
|
|
|
"--allow-ffi",
|
2024-01-23 09:33:07 -05:00
|
|
|
"--unstable-ffi",
|
2023-01-10 13:15:10 -05:00
|
|
|
import.meta.url,
|
|
|
|
],
|
|
|
|
}).output();
|
|
|
|
|
|
|
|
assertEquals(new TextDecoder().decode(stderr), "");
|
2024-02-12 15:46:50 -05:00
|
|
|
assertEquals(code, 0);
|
2023-01-10 13:15:10 -05:00
|
|
|
|
|
|
|
const stdoutText = new TextDecoder().decode(stdout);
|
|
|
|
const stdoutLines = stdoutText.split("\n");
|
|
|
|
assertEquals(stdoutLines.length, 4);
|
|
|
|
assertEquals(stdoutLines[0], "installed cleanup hook");
|
|
|
|
assertEquals(stdoutLines[1], "cleanup(18)");
|
|
|
|
assertEquals(stdoutLines[2], "cleanup(42)");
|
|
|
|
});
|
|
|
|
}
|