mirror of
https://github.com/openai/codex.git
synced 2026-04-27 16:15:09 +00:00
79 lines
2.1 KiB
Rust
79 lines
2.1 KiB
Rust
#[cfg(unix)]
|
|
mod symlinks {
|
|
use super::super::resolve_symlink_write_paths;
|
|
use pretty_assertions::assert_eq;
|
|
use std::os::unix::fs::symlink;
|
|
|
|
#[test]
|
|
fn symlink_cycles_fall_back_to_root_write_path() -> std::io::Result<()> {
|
|
let dir = tempfile::tempdir()?;
|
|
let a = dir.path().join("a");
|
|
let b = dir.path().join("b");
|
|
|
|
symlink(&b, &a)?;
|
|
symlink(&a, &b)?;
|
|
|
|
let resolved = resolve_symlink_write_paths(&a)?;
|
|
|
|
assert_eq!(resolved.read_path, None);
|
|
assert_eq!(resolved.write_path, a);
|
|
Ok(())
|
|
}
|
|
}
|
|
|
|
#[cfg(target_os = "linux")]
|
|
mod wsl {
|
|
use super::super::normalize_for_wsl_with_flag;
|
|
use pretty_assertions::assert_eq;
|
|
use std::path::PathBuf;
|
|
|
|
#[test]
|
|
fn wsl_mnt_drive_paths_lowercase() {
|
|
let normalized = normalize_for_wsl_with_flag(PathBuf::from("/mnt/C/Users/Dev"), true);
|
|
|
|
assert_eq!(normalized, PathBuf::from("/mnt/c/users/dev"));
|
|
}
|
|
|
|
#[test]
|
|
fn wsl_non_drive_paths_unchanged() {
|
|
let path = PathBuf::from("/mnt/cc/Users/Dev");
|
|
let normalized = normalize_for_wsl_with_flag(path.clone(), true);
|
|
|
|
assert_eq!(normalized, path);
|
|
}
|
|
|
|
#[test]
|
|
fn wsl_non_mnt_paths_unchanged() {
|
|
let path = PathBuf::from("/home/Dev");
|
|
let normalized = normalize_for_wsl_with_flag(path.clone(), true);
|
|
|
|
assert_eq!(normalized, path);
|
|
}
|
|
}
|
|
|
|
mod native_workdir {
|
|
use super::super::normalize_for_native_workdir_with_flag;
|
|
use pretty_assertions::assert_eq;
|
|
use std::path::PathBuf;
|
|
|
|
#[cfg(target_os = "windows")]
|
|
#[test]
|
|
fn windows_verbatim_paths_are_simplified() {
|
|
let path = PathBuf::from(r"\\?\D:\c\x\worktrees\2508\swift-base");
|
|
let normalized = normalize_for_native_workdir_with_flag(path, true);
|
|
|
|
assert_eq!(
|
|
normalized,
|
|
PathBuf::from(r"D:\c\x\worktrees\2508\swift-base")
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn non_windows_paths_are_unchanged() {
|
|
let path = PathBuf::from(r"\\?\D:\c\x\worktrees\2508\swift-base");
|
|
let normalized = normalize_for_native_workdir_with_flag(path.clone(), false);
|
|
|
|
assert_eq!(normalized, path);
|
|
}
|
|
}
|