// 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"; // 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)[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 }); }, });