1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-27 01:29:14 -05:00
denoland-deno/tests/unit_node/v8_test.ts

66 lines
1.6 KiB
TypeScript

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import {
cachedDataVersionTag,
deserialize,
getHeapStatistics,
serialize,
setFlagsFromString,
} from "node:v8";
import { assertEquals } from "@std/assert/mod.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",
fn() {
setFlagsFromString("--allow_natives_syntax");
},
});
Deno.test({
name: "serialize deserialize",
fn() {
const s = serialize({ a: 1 });
const d = deserialize(s);
assertEquals(d, { a: 1 });
},
});