Files
scriptc/packages/runtime-pack-common/test/glibc-toolchain.test.ts
Chris TateandCruel f5ed014cc7 Preserve glibc 2.36 runtime compatibility (#365)
- Pin GNU runtime packs to glibc 2.36 Zig targets and reject incompatible imports.

- Provision verified Zig builds and exercise published artifacts on Debian Bookworm.

Fixes #349

Co-authored-by: Cruel <383999+Cruel@users.noreply.github.com>
2026-09-20 22:36:10 -05:00

25 lines
786 B
TypeScript

import { expect, test } from "vitest";
import { glibcRuntimeToolchain } from "../scripts/glibc-toolchain.mjs";
test.each([
["x64", "x86_64-linux-gnu.2.36"],
["arm64", "aarch64-linux-gnu.2.36"],
])("pins the %s GNU runtime to its glibc floor", (architecture, target) => {
expect(glibcRuntimeToolchain(architecture)).toEqual({
minimumOs: "glibc 2.36",
compiler: "zig",
compilerArgs: ["cc"],
archiver: "zig",
archiverArgs: ["ar"],
targetArgs: ["-target", target],
compilerFlags: ["-fno-sanitize=undefined"],
forbiddenArtifactStrings: ["__isoc23_", "__ubsan_"],
});
});
test("rejects unknown GNU runtime architectures", () => {
expect(() => glibcRuntimeToolchain("riscv64")).toThrow(
"unsupported GNU runtime architecture: riscv64",
);
});