Files
bun.sh/test/js/bun/glob/stress.test.ts
2024-09-03 21:32:52 -07:00

44 lines
1.4 KiB
TypeScript

import { Glob } from "bun";
import { beforeAll, test } from "bun:test";
import path from "path";
import { tempFixturesDir } from "./util";
const paths = [
path.join(import.meta.dir, "fixtures/file.md"),
path.join(import.meta.dir, "fixtures/second/file.md"),
path.join(import.meta.dir, "fixtures/second/nested/file.md"),
path.join(import.meta.dir, "fixtures/second/nested/directory/file.md"),
path.join(import.meta.dir, "fixtures/third/library/b/book.md"),
path.join(import.meta.dir, "fixtures/third/library/a/book.md"),
path.join(import.meta.dir, "fixtures/first/file.md"),
path.join(import.meta.dir, "fixtures/first/nested/file.md"),
path.join(import.meta.dir, "fixtures/first/nested/directory/file.md"),
path.join(import.meta.dir, "fixtures/first/nested/directory/file.json"),
];
beforeAll(() => {
tempFixturesDir();
});
test("Glob.scan stress test", async () => {
const cwd = import.meta.dir;
await Promise.all(
Array(1000)
.fill(null)
.map(() =>
Array.fromAsync(new Glob("src/**/*.zig").scan({ cwd })).then(results => {
const set = new Set(results);
return set.size == paths.length && paths.every(path => set.has(path));
}),
),
);
});
test("Glob.match stress test", () => {
for (let i = 0; i < 10000; i++) {
if (!new Glob("src/**/*.zig").match("src/cli/package_manager_command.zig")) {
throw new Error("test failed on run " + i);
}
}
});