repositories / pi-ext
pi-ext
bugabingas pi extensions
owned by admin
extensions/web/__fuzz__/extract.fuzz.ts
Rawimport { fuzz, fuzzRegressions, isMain } from "../../../test/fuzz.ts";
import { extractMainContent, sanitizeInjectionVectors } from "../extract.ts";
export const NAME = "web extract parsers tolerate hostile HTML";
/** Documented acceptable rejections (none: these parsers must never throw). */
export const allow: ReadonlyArray<abstract new (...args: never[]) => Error> =
[];
export function exercise(input: string): void {
const sanitized = sanitizeInjectionVectors(input);
if (sanitizeInjectionVectors(sanitized) !== sanitized)
throw new Error("sanitizeInjectionVectors is not idempotent");
extractMainContent(input);
}
export function regressions(): string[] {
return fuzzRegressions(import.meta.url);
}
if (isMain(import.meta.url)) {
fuzz(import.meta.url, NAME, exercise, {
numRuns: Number(process.env["FUZZ_RUNS"] ?? 2000),
});
console.log(`fuzz ok: ${NAME}`);
}