Codex Handbook
exec-server/tests/file_system_windows.rs 56 lines
#![cfg(windows)]#![allow(clippy::expect_used)]mod common;#[path = "file_system/shared.rs"]mod shared;#[path = "file_system/support.rs"]mod support;use std::path::Path;use std::process::Command;use anyhow::Result;use test_case::test_case;use crate::support::FileSystemImplementation;fn create_directory_junction(target: &Path, alias: &Path) -> Result<()> {    let output = Command::new("cmd")        .args(["/C", "mklink", "/J"])        .arg(alias)        .arg(target)        .output()?;    if !output.status.success() {        anyhow::bail!(            "mklink /J failed: stdout={} stderr={}",            String::from_utf8_lossy(&output.stdout).trim(),            String::from_utf8_lossy(&output.stderr).trim()        );    }    Ok(())}#[test_case(FileSystemImplementation::Local ; "local")]#[test_case(FileSystemImplementation::Remote ; "remote")]#[tokio::test(flavor = "multi_thread", worker_threads = 2)]async fn file_system_canonicalize_resolves_directory_junction(    implementation: FileSystemImplementation,) -> Result<()> {    shared::assert_canonicalize_resolves_directory_alias(implementation, create_directory_junction)        .await}#[test_case(FileSystemImplementation::Local ; "local")]#[test_case(FileSystemImplementation::Remote ; "remote")]#[tokio::test(flavor = "multi_thread", worker_threads = 2)]async fn file_system_sandboxed_canonicalize_resolves_directory_junction(    implementation: FileSystemImplementation,) -> Result<()> {    shared::assert_sandboxed_canonicalize_resolves_directory_alias(        implementation,        create_directory_junction,    )    .await}