deno/test_napi/cleanup_hook_test.js
Bartek Iwańczuk 427b73c3ec
feat: warn when using --unstable, prefer granular flags (#21452)
This commit deprecates "--unstable" flag. 

When "--unstable" flag is encountered a warning like this is printed:
```
The `--unstable` flag is deprecated, use granular `--unstable-*` flags instead.
Learn more at: https://docs.deno.com/runtime/manual/tools/unstable_flags
```
When "--unstable" flag is used and an unstable API is called an
additional warning like this is printed for each API call:
```
The `Deno.dlopen` API was used with `--unstable` flag. The `--unstable` flag is deprecated, use granular `--unstable-ffi` instead. 
Learn more at: https://docs.deno.com/runtime/manual/tools/unstable_flags
```
When no "--unstable-*" flag is provided and an unstable API is called
following
warning is issued before exiting:
```
Unstable API 'Deno.dlopen'. The `--unstable-ffi` flag must be provided.
```

---------

Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-01-23 15:33:07 +01:00

33 lines
985 B
JavaScript

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
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",
"--allow-read",
"--allow-run",
"--allow-ffi",
"--unstable-ffi",
import.meta.url,
],
}).output();
assertEquals(code, 0);
assertEquals(new TextDecoder().decode(stderr), "");
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)");
});
}