Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/the-system/__fuzz__/document.fuzz.ts

Raw
import { fuzz, fuzzRegressions, isMain } from "../../../test/fuzz.ts";
import { SystemDocumentError } from "../project-root.ts";
import { parseDocumentId, parseSystemConfig } from "../system-config.ts";

export const NAME =
	"the-system document parsers reject hostile input without crashing";

/** Malformed documents are expected to raise SystemDocumentError, not crash. */
export const allow: ReadonlyArray<abstract new (...args: never[]) => Error> = [
	SystemDocumentError,
];

export function exercise(input: string): void {
	parseSystemConfig(input);
	parseDocumentId(input);
}

export function regressions(): string[] {
	return fuzzRegressions(import.meta.url);
}

if (isMain(import.meta.url)) {
	fuzz(import.meta.url, NAME, exercise, {
		allow,
		numRuns: Number(process.env["FUZZ_RUNS"] ?? 2000),
	});
	console.log(`fuzz ok: ${NAME}`);
}