mirror of
https://github.com/openai/codex.git
synced 2026-08-23 13:09:46 +00:00
Limit Bazel integration test threads on macOS (#39609)
## What changed - Add a `test_threads` option to `codex_rust_crate` that sets `RUST_TEST_THREADS` for sharded integration tests when configured. - Run the `core` and `app-server` Bazel integration tests with one Rust test thread on macOS, leaving the thread count unchanged on other platforms. GitOrigin-RevId: 118147413eb141f557d9ee82858860617d61acce
This commit is contained in:
@@ -24,4 +24,8 @@ codex_rust_crate(
|
|||||||
"app-server-unit-tests": 8,
|
"app-server-unit-tests": 8,
|
||||||
},
|
},
|
||||||
test_tags = ["no-sandbox"],
|
test_tags = ["no-sandbox"],
|
||||||
|
test_threads = select({
|
||||||
|
"@platforms//os:macos": 1,
|
||||||
|
"//conditions:default": 0,
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -50,5 +50,9 @@ codex_rust_crate(
|
|||||||
"core-unit-tests": 8,
|
"core-unit-tests": 8,
|
||||||
},
|
},
|
||||||
test_tags = ["no-sandbox"],
|
test_tags = ["no-sandbox"],
|
||||||
|
test_threads = select({
|
||||||
|
"@platforms//os:macos": 1,
|
||||||
|
"//conditions:default": 0,
|
||||||
|
}),
|
||||||
unit_test_timeout = "long",
|
unit_test_timeout = "long",
|
||||||
)
|
)
|
||||||
|
|||||||
6
defs.bzl
6
defs.bzl
@@ -87,6 +87,8 @@ def _workspace_root_test_impl(ctx):
|
|||||||
key: ctx.expand_location(value, targets = location_targets.values())
|
key: ctx.expand_location(value, targets = location_targets.values())
|
||||||
for key, value in ctx.attr.env.items()
|
for key, value in ctx.attr.env.items()
|
||||||
}
|
}
|
||||||
|
if ctx.attr.test_threads:
|
||||||
|
env["RUST_TEST_THREADS"] = str(ctx.attr.test_threads)
|
||||||
|
|
||||||
return [
|
return [
|
||||||
DefaultInfo(
|
DefaultInfo(
|
||||||
@@ -159,6 +161,7 @@ workspace_root_test = rule(
|
|||||||
executable = True,
|
executable = True,
|
||||||
mandatory = True,
|
mandatory = True,
|
||||||
),
|
),
|
||||||
|
"test_threads": attr.int(),
|
||||||
"workspace_root_marker": attr.label(
|
"workspace_root_marker": attr.label(
|
||||||
allow_single_file = True,
|
allow_single_file = True,
|
||||||
mandatory = True,
|
mandatory = True,
|
||||||
@@ -203,6 +206,7 @@ def codex_rust_crate(
|
|||||||
test_data_extra = [],
|
test_data_extra = [],
|
||||||
test_shard_counts = {},
|
test_shard_counts = {},
|
||||||
test_tags = [],
|
test_tags = [],
|
||||||
|
test_threads = 0,
|
||||||
unit_test_timeout = None,
|
unit_test_timeout = None,
|
||||||
extra_binaries = [],
|
extra_binaries = [],
|
||||||
extra_binaries_non_windows = [],
|
extra_binaries_non_windows = [],
|
||||||
@@ -254,6 +258,7 @@ def codex_rust_crate(
|
|||||||
them Bazel's default three attempts.
|
them Bazel's default three attempts.
|
||||||
test_tags: Tags applied to unit + integration test targets.
|
test_tags: Tags applied to unit + integration test targets.
|
||||||
Typically used to disable the sandbox, but see https://bazel.build/reference/be/common-definitions#common.tags
|
Typically used to disable the sandbox, but see https://bazel.build/reference/be/common-definitions#common.tags
|
||||||
|
test_threads: Optional Rust test thread limit for sharded integration tests.
|
||||||
unit_test_timeout: Optional Bazel timeout for the unit-test target
|
unit_test_timeout: Optional Bazel timeout for the unit-test target
|
||||||
generated from `src/**/*.rs`.
|
generated from `src/**/*.rs`.
|
||||||
extra_binaries: Additional binary labels to surface as test data and
|
extra_binaries: Additional binary labels to surface as test data and
|
||||||
@@ -564,6 +569,7 @@ def codex_rust_crate(
|
|||||||
# manifest-only platforms.
|
# manifest-only platforms.
|
||||||
runfile_env = integration_test_cargo_env_runfiles,
|
runfile_env = integration_test_cargo_env_runfiles,
|
||||||
test_bin = ":" + integration_test_binary,
|
test_bin = ":" + integration_test_binary,
|
||||||
|
test_threads = test_threads,
|
||||||
workspace_root_marker = "//codex-rs/utils/cargo-bin:repo_root.marker",
|
workspace_root_marker = "//codex-rs/utils/cargo-bin:repo_root.marker",
|
||||||
target_compatible_with = WINDOWS_GNULLVM_INCOMPATIBLE,
|
target_compatible_with = WINDOWS_GNULLVM_INCOMPATIBLE,
|
||||||
tags = test_tags,
|
tags = test_tags,
|
||||||
|
|||||||
Reference in New Issue
Block a user