mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-04 09:28:24 +08:00
- Retain representative Darwin kqueue coverage in the default gate. - Schedule native runtime tests by host and make Linux clang invocations portable. - Resolve canonical OCI manifest digests for direct and indexed images.
28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
import { execFile } from "node:child_process";
|
|
import { mkdir } from "node:fs/promises";
|
|
import { join } from "node:path";
|
|
import { promisify } from "node:util";
|
|
import { expect, test } from "vitest";
|
|
|
|
const execFileAsync = promisify(execFile);
|
|
const testDir = import.meta.dirname;
|
|
|
|
// Compiles and runs the C-side oracle test against the committed case file
|
|
// (generated once from Node via gen-number-cases.mjs — see that file to
|
|
// regenerate or fuzz).
|
|
test("scr_f64_to_str matches Node String(x) on committed oracle cases", async () => {
|
|
const buildDir = join(testDir, "build");
|
|
await mkdir(buildDir, { recursive: true });
|
|
const bin = join(buildDir, "test_number");
|
|
await execFileAsync("clang", [
|
|
"-std=c11", "-O2", "-Wall", "-Wextra",
|
|
...(process.platform === "linux" ? ["-D_GNU_SOURCE"] : []),
|
|
"-o", bin,
|
|
join(testDir, "test_number.c"),
|
|
join(testDir, "../src/scr_number.c"),
|
|
...(process.platform === "linux" ? ["-lm"] : []),
|
|
]);
|
|
const { stderr } = await execFileAsync(bin, [join(testDir, "number-cases.txt")]);
|
|
expect(stderr.trim()).toMatch(/^(\d+)\/\1 cases passed$/);
|
|
});
|