Download codex-rs/exec-server/testing/wine_remote_test_runner.rs from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 2.33 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/exec-server/testing/wine_remote_test_runner.rs
- Command line
-
hf download hf://SaylorTwift/codex/codex-rs/exec-server/testing/wine_remote_test_runner.rs
-
curl -L -o wine_remote_test_runner.rs https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/exec-server/testing/wine_remote_test_runner.rs
2.33 kB
| use std::ffi::OsStr; | |
| use std::ffi::OsString; | |
| use std::path::PathBuf; | |
| use std::process::Stdio; | |
| use anyhow::Context; | |
| use anyhow::Result; | |
| use tokio::process::Command; | |
| use wine_exec_server_test_support::WineExecServer; | |
| const TEST_BINARY_ENV_VAR: &str = "CODEX_WINE_EXEC_TEST_BINARY"; | |
| const TEST_ENVIRONMENT_ENV_VAR: &str = "CODEX_TEST_ENVIRONMENT"; | |
| const REMOTE_EXEC_SERVER_URL_ENV_VAR: &str = "CODEX_TEST_REMOTE_EXEC_SERVER_URL"; | |
| const LEGACY_REMOTE_ENV_ENV_VAR: &str = "CODEX_TEST_REMOTE_ENV"; | |
| const DOCKER_CONTAINER_ENV_VAR: &str = "CODEX_TEST_REMOTE_ENV_CONTAINER_NAME"; | |
| async fn main() -> Result<()> { | |
| let test_binary = | |
| PathBuf::from(std::env::var_os(TEST_BINARY_ENV_VAR).with_context(|| { | |
| format!("{TEST_BINARY_ENV_VAR} must be set by the Bazel test rule") | |
| })?); | |
| let forwarded_args = std::env::args_os().skip(1).collect::<Vec<_>>(); | |
| if is_terse_list_request(&forwarded_args) { | |
| let status = Command::new(&test_binary) | |
| .args(&forwarded_args) | |
| .status() | |
| .await | |
| .context("list integration tests")?; | |
| anyhow::ensure!( | |
| status.success(), | |
| "listing integration tests exited with {status}" | |
| ); | |
| return Ok(()); | |
| } | |
| WineExecServer | |
| .scope(|exec_server_url, _wine_prefix| async move { | |
| let mut command = Command::new(test_binary); | |
| command | |
| .env(TEST_ENVIRONMENT_ENV_VAR, "wine-exec") | |
| .env(REMOTE_EXEC_SERVER_URL_ENV_VAR, exec_server_url) | |
| .env_remove(LEGACY_REMOTE_ENV_ENV_VAR) | |
| .env_remove(DOCKER_CONTAINER_ENV_VAR) | |
| .args(forwarded_args) | |
| .stdin(Stdio::null()) | |
| .stdout(Stdio::inherit()) | |
| .stderr(Stdio::inherit()) | |
| .kill_on_drop(true); | |
| let status = command.status().await.context("run integration tests")?; | |
| anyhow::ensure!(status.success(), "integration tests exited with {status}"); | |
| Ok(()) | |
| }) | |
| .await | |
| } | |
| fn is_terse_list_request(args: &[OsString]) -> bool { | |
| args.iter().map(OsString::as_os_str).eq([ | |
| OsStr::new("--list"), | |
| OsStr::new("--format"), | |
| OsStr::new("terse"), | |
| ]) | |
| } | |