mirror of
https://github.com/openai/codex.git
synced 2026-05-17 09:43:19 +00:00
## Why PR #13783 moved the `codex.rs` unit tests into `codex_tests.rs`. This applies the same extraction pattern across the rest of `codex-rs/core` so the production modules stay focused on runtime code instead of large inline test blocks. Keeping the tests in sibling files also makes follow-up edits easier to review because product changes no longer have to share a file with hundreds or thousands of lines of test scaffolding. ## What changed - replaced each inline `mod tests { ... }` in `codex-rs/core/src/**` with a path-based module declaration - moved each extracted unit test module into a sibling `*_tests.rs` file, using `mod_tests.rs` for `mod.rs` modules - preserved the existing `cfg(...)` guards and module-local structure so the refactor remains structural rather than behavioral ## Testing - `cargo test -p codex-core --lib` (`1653 passed; 0 failed; 5 ignored`) - `just fix -p codex-core` - `cargo fmt --check` - `cargo shear`
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);
|
|
}
|
|
}
|