mesh-llm/scripts/console-format.test.js
James Dumay 57cdac9881
Report backend GPUs and bundle GPU benchmarks (#509)
* Expose skippy backend device survey

* Bundle GPU benchmark backends

* Fix CI benchmark wiring

* Allow manual Docker CI runs

* Restore CPU-only runtime capacity

* Fix CUDA loading issue on Linux

* add debug information to help trace issues on CUDA devices with two GPUs

* fix linters / tests

* fixups for remaining tests via mutex

* fix ROCm build

* coupel more fixes for windows

* debugging on ci is cool

* fix remaining red tests after rebase

---------

Co-authored-by: Nick DiZazzo <nick.dizazzo@gmail.com>
2026-05-12 21:19:41 +10:00

164 lines
4.4 KiB
JavaScript

const test = require("node:test");
const assert = require("node:assert/strict");
const { spawn } = require("node:child_process");
const { extractDetails, format } = require("./console-format.js");
test("extractDetails keeps invite token details", () => {
const details = extractDetails({
event: "invite_token",
level: "info",
token: "tok_123",
mesh_id: "mesh_abc",
message: "invite token ready",
});
assert.deepEqual(details, ["token=tok_123", "mesh=mesh_abc"]);
});
test("extractDetails renders native debug params", () => {
const details = extractDetails({
event: "model",
level: "debug",
message: "Reading model metadata...",
architecture: "qwen35",
ctx: 262144,
blocks: 32,
});
assert.deepEqual(details, [
"architecture=qwen35",
"ctx=262144",
"blocks=32",
]);
});
test("extractDetails renders tensor group params for native debug events", () => {
const details = extractDetails({
event: "model",
level: "debug",
message: "Reading tensor groups...",
f32: 177,
q4_K: 74,
q5_K: 69,
});
assert.deepEqual(details, ["f32=177", "q4_K=74", "q5_K=69"]);
});
test("extractDetails ignores native params on non-debug events", () => {
const details = extractDetails({
event: "model",
level: "info",
message: "Reading model metadata...",
architecture: "qwen35",
});
assert.deepEqual(details, []);
});
test("format appends native debug params on followup line", () => {
const rendered = format({
timestamp: "2026-05-11T03:48:48.392Z",
level: "debug",
event: "model",
message: "Reading model metadata...",
architecture: "qwen35",
ctx: 262144,
});
assert.match(rendered, /DEBUG.*Reading model metadata/);
assert.match(rendered, /↳ architecture=qwen35 \| ctx=262144/);
});
test("extractDetails captures shutdown_requested signal", () => {
const details = extractDetails({
event: "SIGINT",
level: "info",
signal: "SIGINT",
message: "shutdown requested (SIGINT)",
});
assert.deepEqual(details, ["signal=SIGINT"]);
});
test("extractDetails captures shutdown reason", () => {
const details = extractDetails({
event: "shutdown",
level: "info",
reason: "user requested shutdown",
message: "mesh-llm shutting down",
});
assert.deepEqual(details, ["reason=user requested shutdown"]);
});
test("extractDetails captures model unloading details", () => {
const details = extractDetails({
event: "model_unloading",
level: "info",
model: "unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL",
message: "unloading model unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL",
});
assert.deepEqual(details, ["model=unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL"]);
});
test("formatter drains shutdown records after SIGINT", async () => {
const child = spawn(process.execPath, ["scripts/console-format.js"], {
cwd: __dirname + "/..",
stdio: ["pipe", "pipe", "pipe"],
});
let output = "";
let errorOutput = "";
child.stdout.setEncoding("utf8");
child.stderr.setEncoding("utf8");
child.stdout.on("data", (chunk) => {
output += chunk;
});
child.stderr.on("data", (chunk) => {
errorOutput += chunk;
});
child.stdin.write(JSON.stringify({
timestamp: "2026-05-12T03:18:32.334Z",
level: "info",
event: "ready",
message: "mesh-llm runtime ready",
}) + "\n");
await new Promise((resolve) => child.stdout.once("data", resolve));
child.kill("SIGINT");
await new Promise((resolve) => setTimeout(resolve, 25));
child.stdin.write(JSON.stringify({
timestamp: "2026-05-12T03:18:47.666Z",
level: "info",
event: "SIGINT",
signal: "SIGINT",
message: "shutdown requested (SIGINT)",
}) + "\n");
child.stdin.write(JSON.stringify({
timestamp: "2026-05-12T03:18:47.666Z",
level: "info",
event: "shutdown",
reason: "user requested shutdown",
message: "mesh-llm shutting down",
}) + "\n");
child.stdin.end();
const exit = await new Promise((resolve) => {
child.on("close", (code, signal) => resolve({ code, signal }));
});
assert.deepEqual(exit, { code: 0, signal: null });
assert.equal(errorOutput, "");
assert.match(output, /INFO.*mesh-llm runtime ready/);
assert.match(output, /INFO.*shutdown requested \(SIGINT\)/);
assert.match(output, /↳ signal=SIGINT/);
assert.match(output, /INFO.*mesh-llm shutting down/);
assert.match(output, /↳ reason=user requested shutdown/);
});