Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions scripts/runner.node.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1784,6 +1784,7 @@ async function spawnBun(execPath, { args, cwd, timeout, gracefulTimeout, idleTim
FORCE_COLOR: "1",
BUN_FEATURE_FLAG_INTERNAL_FOR_TESTING: "1",
BUN_DEBUG_QUIET_LOGS: "1",
BUN_DISABLE_SLOW_FILESYSTEM_WARNING: "1",
BUN_GARBAGE_COLLECTOR_LEVEL: "1",
BUN_JSC_randomIntegrityAuditRate: "1.0",
BUN_RUNTIME_TRANSPILER_CACHE_PATH: "0",
Expand Down
2 changes: 2 additions & 0 deletions src/bun_core/env_var.rs
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,8 @@ pub mod feature_flag {
// Fall back to the scalar byte-at-a-time VLQ decode in
// bun_sourcemap::mapping::parse (skips the Highway-dispatched path).
new_feature_flag!(pub BUN_FEATURE_FLAG_DISABLE_SIMD_SOURCEMAP, "BUN_FEATURE_FLAG_DISABLE_SIMD_SOURCEMAP", {});
// Set by the test harness so stderr assertions don't flake on slow CI filesystems.
new_feature_flag!(pub BUN_DISABLE_SLOW_FILESYSTEM_WARNING, "BUN_DISABLE_SLOW_FILESYSTEM_WARNING", {});
new_feature_flag!(pub BUN_DISABLE_SLOW_LIFECYCLE_SCRIPT_LOGGING, "BUN_DISABLE_SLOW_LIFECYCLE_SCRIPT_LOGGING", {});
new_feature_flag!(pub BUN_DISABLE_SOURCE_CODE_PREVIEW, "BUN_DISABLE_SOURCE_CODE_PREVIEW", {});
new_feature_flag!(pub BUN_FEATURE_FLAG_DISABLE_SOURCE_MAPS, "BUN_FEATURE_FLAG_DISABLE_SOURCE_MAPS", {});
Expand Down
10 changes: 7 additions & 3 deletions src/install/PackageManager/PackageManagerDirectories.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,11 @@ fn get_temporary_directory_run(manager: &mut PackageManager) -> TemporaryDirecto
let tmpname =
FileSystem::tmpname(b"hm", &mut tmpbuf, bun_core::fast_random()).expect("unreachable");

let mut timer = if manager.options.log_level != LogLevel::Silent {
let mut timer = if manager.options.log_level != LogLevel::Silent
&& !bun_core::env_var::feature_flag::BUN_DISABLE_SLOW_FILESYSTEM_WARNING
.get()
.unwrap_or(false)
{
Some(bun_core::time::Timer::start())
} else {
None
Expand Down Expand Up @@ -272,8 +276,8 @@ fn get_temporary_directory_run(manager: &mut PackageManager) -> TemporaryDirecto
break;
}

if manager.options.log_level != LogLevel::Silent {
let elapsed = timer.as_mut().unwrap().read();
if let Some(timer) = timer.as_mut() {
let elapsed = timer.read();
if elapsed > bun_core::time::NS_PER_MS * 100 {
let mut path_buf = PathBuffer::uninit();
let cache_dir_path: &[u8] = match sys::get_fd_path(cache_directory_fd, &mut path_buf) {
Expand Down
51 changes: 25 additions & 26 deletions test/cli/install/bun-install-lifecycle-scripts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {
isWindows,
readdirSorted,
runBunInstall,
stderrForInstall,
} from "harness";
import { join, sep } from "path";

Expand Down Expand Up @@ -1716,7 +1715,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -2025,7 +2024,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -2294,7 +2293,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3184,7 +3183,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3217,7 +3216,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).not.toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3253,7 +3252,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

const err = stderrForInstall(await stderr.text());
const err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3295,7 +3294,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3384,7 +3383,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3419,7 +3418,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).not.toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3459,7 +3458,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3506,7 +3505,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3553,7 +3552,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3602,7 +3601,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3650,7 +3649,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {

env.PATH = originalPath;

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("No packages! Deleted empty lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3691,7 +3690,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {

env.PATH = originalPath;

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("No packages! Deleted empty lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3723,7 +3722,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
Expand Down Expand Up @@ -3753,7 +3752,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("bun pm untrusted");
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
Expand Down Expand Up @@ -3806,7 +3805,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3836,7 +3835,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
out = await stdout.text();
Expand All @@ -3863,7 +3862,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3891,7 +3890,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3926,7 +3925,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand Down Expand Up @@ -3954,7 +3953,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
out = await stdout.text();
Expand Down Expand Up @@ -4072,7 +4071,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

const err = stderrForInstall(await stderr.text());
const err = await stderr.text();
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
expect(splitErrLines(err)).toEqual([
Expand Down Expand Up @@ -4127,7 +4126,7 @@ for (const forceWaiterThread of isLinux ? [false, true] : [false]) {
env: testEnv,
});

const err = stderrForInstall(await stderr.text());
const err = await stderr.text();
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
expect(splitErrLines(err)).toEqual([
Expand Down
11 changes: 5 additions & 6 deletions test/cli/install/bun-install-registry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import {
readdirSorted,
runBunInstall,
runBunUpdate,
stderrForInstall,
tempDir,
tls,
tmpdirSync,
Expand Down Expand Up @@ -212,7 +211,7 @@ describe("certificate authority", () => {
env,
});
let out = await stdout.text();
let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("DEPTH_ZERO_SELF_SIGNED_CERT");
expect(await exited).toBe(1);

Expand Down Expand Up @@ -6239,7 +6238,7 @@ describe("pm trust", async () => {
env,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).not.toContain("Saved lockfile");
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
Expand All @@ -6266,7 +6265,7 @@ describe("pm trust", async () => {
env,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).toContain("error: Lockfile not found");
let out = await stdout.text();
expect(out).toBeEmpty();
Expand All @@ -6292,7 +6291,7 @@ describe("pm trust", async () => {
env,
});

let err = stderrForInstall(await stderr.text());
let err = await stderr.text();
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
Expand All @@ -6319,7 +6318,7 @@ describe("pm trust", async () => {
env,
}));

err = stderrForInstall(await stderr.text());
err = await stderr.text();
expect(err).not.toContain("not found");
expect(err).not.toContain("error:");
expect(err).not.toContain("warn:");
Expand Down
Loading