mirror of
https://github.com/openai/codex.git
synced 2026-11-05 20:10:33 +00:00
test: stabilize wildcard Wine execution
This commit is contained in:
@@ -648,6 +648,8 @@ async fn apply_patch_cli_delete_directory_reports_verification_error() -> Result
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn apply_patch_cli_rejects_path_traversal_outside_workspace() -> Result<()> {
|
||||
// TODO(anp): Assert the target-native Windows traversal error as well as the POSIX error.
|
||||
skip_if_wine_exec!(Ok(()), "asserts a POSIX-specific traversal error message");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let harness = apply_patch_harness().await?;
|
||||
@@ -1320,6 +1322,11 @@ async fn apply_patch_shell_command_heredoc_with_cd_emits_turn_diff() -> Result<(
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn apply_patch_turn_diff_paths_stay_repo_relative_when_session_cwd_is_nested() -> Result<()> {
|
||||
// TODO(anp): Normalize remote Windows cwd prefixes when producing repo-relative patch paths.
|
||||
skip_if_wine_exec!(
|
||||
Ok(()),
|
||||
"remote Windows diff paths retain their drive prefix"
|
||||
);
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let harness = apply_patch_harness_with(|builder| {
|
||||
|
||||
@@ -25,6 +25,7 @@ use core_test_support::responses::ev_response_created;
|
||||
use core_test_support::responses::mount_sse_sequence;
|
||||
use core_test_support::responses::sse;
|
||||
use core_test_support::responses::start_mock_server;
|
||||
use core_test_support::skip_if_wine_exec;
|
||||
use core_test_support::test_codex::TestCodex;
|
||||
use pretty_assertions::assert_eq;
|
||||
use serde_json::Value;
|
||||
@@ -171,6 +172,10 @@ async fn run_extract_turn(test: &TestCodex, server: &MockServer) -> Result<Respo
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn codex_apps_file_params_upload_environment_files_before_mcp_tool_call() -> Result<()> {
|
||||
// TODO(anp): Read app-upload file arguments through the selected environment so remote Windows
|
||||
// paths can be uploaded before the MCP call.
|
||||
skip_if_wine_exec!(Ok(()), "app file uploads only read host-local paths");
|
||||
|
||||
let server = start_mock_server().await;
|
||||
let apps_server = AppsTestServer::mount(&server).await?;
|
||||
mount_file_upload_mocks(&server, STREAMED_FILE_SIZE as u64).await;
|
||||
|
||||
@@ -522,6 +522,11 @@ async fn unified_exec_resolves_relative_workdir() -> Result<()> {
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn unified_exec_respects_workdir_override() -> Result<()> {
|
||||
// TODO(anp): Construct unified-exec workdir overrides with target-native Windows path types.
|
||||
skip_if_wine_exec!(
|
||||
Ok(()),
|
||||
"duplicates the Windows drive prefix in the workdir URI"
|
||||
);
|
||||
skip_if_no_network!(Ok(()));
|
||||
skip_if_sandbox!(Ok(()));
|
||||
skip_if_windows!(Ok(()));
|
||||
@@ -1285,6 +1290,8 @@ async fn unified_exec_terminal_interaction_captures_delayed_output() -> Result<(
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn unified_exec_emits_one_begin_and_one_end_event() -> Result<()> {
|
||||
// TODO(anp): Use target-native commands and Windows process-session semantics in this fixture.
|
||||
skip_if_wine_exec!(Ok(()), "uses bash and POSIX sleep/session behavior");
|
||||
skip_if_no_network!(Ok(()));
|
||||
skip_if_sandbox!(Ok(()));
|
||||
skip_if_windows!(Ok(()));
|
||||
|
||||
@@ -280,6 +280,9 @@ async fn user_turn_local_image_applies_patch_budget() -> anyhow::Result<()> {
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_attaches_local_image() -> anyhow::Result<()> {
|
||||
// TODO(anp): Load image fixtures through the selected environment's filesystem so target-native
|
||||
// Windows paths work as well as host-local paths.
|
||||
skip_if_wine_exec!(Ok(()), "view_image cannot read the remote Windows cwd yet");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -674,6 +677,9 @@ async fn view_image_routes_to_selected_remote_environment() -> anyhow::Result<()
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_can_preserve_original_resolution_when_requested_on_gpt5_3_codex()
|
||||
-> anyhow::Result<()> {
|
||||
// TODO(anp): Load image fixtures through the selected environment's filesystem so target-native
|
||||
// Windows paths work as well as host-local paths.
|
||||
skip_if_wine_exec!(Ok(()), "view_image cannot read the remote Windows cwd yet");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -843,6 +849,9 @@ async fn view_image_tool_errors_clearly_for_unsupported_detail_values() -> anyho
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_treats_null_detail_as_omitted() -> anyhow::Result<()> {
|
||||
// TODO(anp): Load image fixtures through the selected environment's filesystem so target-native
|
||||
// Windows paths work as well as host-local paths.
|
||||
skip_if_wine_exec!(Ok(()), "view_image cannot read the remote Windows cwd yet");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -933,6 +942,9 @@ async fn view_image_tool_treats_null_detail_as_omitted() -> anyhow::Result<()> {
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_resizes_when_model_lacks_original_detail_support() -> anyhow::Result<()> {
|
||||
// TODO(anp): Load image fixtures through the selected environment's filesystem so target-native
|
||||
// Windows paths work as well as host-local paths.
|
||||
skip_if_wine_exec!(Ok(()), "view_image cannot read the remote Windows cwd yet");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -1027,6 +1039,9 @@ async fn view_image_tool_resizes_when_model_lacks_original_detail_support() -> a
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_does_not_force_original_resolution_with_capability_only()
|
||||
-> anyhow::Result<()> {
|
||||
// TODO(anp): Load image fixtures through the selected environment's filesystem so target-native
|
||||
// Windows paths work as well as host-local paths.
|
||||
skip_if_wine_exec!(Ok(()), "view_image cannot read the remote Windows cwd yet");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -1117,6 +1132,12 @@ async fn view_image_tool_does_not_force_original_resolution_with_capability_only
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_errors_when_path_is_directory() -> anyhow::Result<()> {
|
||||
// TODO(anp): Resolve view_image paths through the selected environment before asserting
|
||||
// target-native directory errors.
|
||||
skip_if_wine_exec!(
|
||||
Ok(()),
|
||||
"view_image cannot inspect the remote Windows cwd yet"
|
||||
);
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -1187,6 +1208,9 @@ async fn view_image_tool_errors_when_path_is_directory() -> anyhow::Result<()> {
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_turns_invalid_image_into_placeholder() -> anyhow::Result<()> {
|
||||
// TODO(anp): Load image fixtures through the selected environment's filesystem so target-native
|
||||
// Windows paths work as well as host-local paths.
|
||||
skip_if_wine_exec!(Ok(()), "view_image cannot read the remote Windows cwd yet");
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
@@ -1251,6 +1275,12 @@ async fn view_image_tool_turns_invalid_image_into_placeholder() -> anyhow::Resul
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn view_image_tool_errors_when_file_missing() -> anyhow::Result<()> {
|
||||
// TODO(anp): Resolve view_image paths through the selected environment before asserting
|
||||
// target-native missing-file errors.
|
||||
skip_if_wine_exec!(
|
||||
Ok(()),
|
||||
"view_image cannot inspect the remote Windows cwd yet"
|
||||
);
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = start_mock_server().await;
|
||||
|
||||
@@ -18,9 +18,11 @@ if [[ "${RUNNER_OS:-}" != "Windows" ]]; then
|
||||
manual_rust_test_targets="$(printf '%s\n' "${manual_rust_test_targets}" | grep -v -- '-windows-cross-bin$' || true)"
|
||||
fi
|
||||
|
||||
# Wine-exec wrappers have no Rust sources of their own and require the transitioned Windows
|
||||
# toolchain, which the lint configuration does not register. Their native Rust test binaries are
|
||||
# already covered through the corresponding native test targets.
|
||||
# Generated `*-wine-exec-test` targets are Linux launchers around the host-native test binary and
|
||||
# a separately transitioned Windows exec-server binary. The corresponding native test target is
|
||||
# linted on Linux and macOS, while the exec-server binary is linted under `cfg(windows)` by the
|
||||
# Windows lint job. Exclude only the launchers here because this lint configuration cannot analyze
|
||||
# their transitioned data dependency.
|
||||
wine_exec_test_targets="$(
|
||||
./.github/scripts/run-bazel-query-ci.sh \
|
||||
--output=label \
|
||||
|
||||
Reference in New Issue
Block a user