1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-04 08:54:20 -05:00
denoland-deno/cli/tests/unit_node/v8_test.ts
Divy Srivastava f8435d20b0
feat(ext/node): implement node:v8 (#17806)
Closes https://github.com/denoland/deno/issues/17115 

Implements `cachedDataVersionTag` and `getHeapStatistics`.
2023-02-17 18:48:09 +05:30

58 lines
1.5 KiB
TypeScript

// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import {
cachedDataVersionTag,
getHeapStatistics,
setFlagsFromString,
} from "node:v8";
import {
assertEquals,
assertThrows,
} from "../../../test_util/std/testing/asserts.ts";
// https://github.com/nodejs/node/blob/a2bbe5ff216bc28f8dac1c36a8750025a93c3827/test/parallel/test-v8-version-tag.js#L6
Deno.test({
name: "cachedDataVersionTag success",
fn() {
const tag = cachedDataVersionTag();
assertEquals(typeof tag, "number");
assertEquals(cachedDataVersionTag(), tag);
},
});
// https://github.com/nodejs/node/blob/a2bbe5ff216bc28f8dac1c36a8750025a93c3827/test/parallel/test-v8-stats.js#L6
Deno.test({
name: "getHeapStatistics success",
fn() {
const s = getHeapStatistics();
const keys = [
"does_zap_garbage",
"external_memory",
"heap_size_limit",
"malloced_memory",
"number_of_detached_contexts",
"number_of_native_contexts",
"peak_malloced_memory",
"total_available_size",
"total_global_handles_size",
"total_heap_size",
"total_heap_size_executable",
"total_physical_size",
"used_global_handles_size",
"used_heap_size",
];
assertEquals(Object.keys(s).sort(), keys);
for (const k of keys) {
assertEquals(
typeof (s as unknown as Record<string, unknown>)[k],
"number",
);
}
},
});
Deno.test({
name: "setFlagsFromString throws",
fn() {
assertThrows(() => setFlagsFromString("--allow_natives_syntax"));
},
});