dircolors: turn integration test into unit test

This commit is contained in:
Daniel Hofstetter
2026-06-02 11:38:32 +02:00
committed by Sylvestre Ledru
parent f6bf222a7a
commit f1073d7c9e
2 changed files with 46 additions and 46 deletions
+45 -1
View File
@@ -527,7 +527,7 @@ fn generate_dircolors_config() -> String {
#[cfg(test)]
mod tests {
use super::escape;
use super::*;
#[test]
fn test_escape() {
@@ -536,4 +536,48 @@ mod tests {
assert_eq!("\\:", escape(":"));
assert_eq!("\\:", escape("\\:"));
}
#[test]
fn test_guess_syntax() {
use std::env;
let last = env::var("SHELL");
unsafe {
env::set_var("SHELL", "/path/csh");
}
assert_eq!(OutputFmt::CShell, guess_syntax());
unsafe {
env::set_var("SHELL", "csh");
}
assert_eq!(OutputFmt::CShell, guess_syntax());
unsafe {
env::set_var("SHELL", "/path/bash");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "bash");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "/asd/bar");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "foo");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "");
}
assert_eq!(OutputFmt::Unknown, guess_syntax());
unsafe {
env::remove_var("SHELL");
}
assert_eq!(OutputFmt::Unknown, guess_syntax());
if let Ok(s) = last {
unsafe {
env::set_var("SHELL", s);
}
}
}
}
+1 -45
View File
@@ -7,7 +7,7 @@
use uutests::at_and_ucmd;
use uutests::new_ucmd;
use dircolors::{OutputFmt, StrUtils, guess_syntax};
use dircolors::StrUtils;
#[test]
#[cfg(target_os = "linux")]
@@ -30,50 +30,6 @@ fn test_invalid_arg() {
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
}
#[test]
fn test_shell_syntax() {
use std::env;
let last = env::var("SHELL");
unsafe {
env::set_var("SHELL", "/path/csh");
}
assert_eq!(OutputFmt::CShell, guess_syntax());
unsafe {
env::set_var("SHELL", "csh");
}
assert_eq!(OutputFmt::CShell, guess_syntax());
unsafe {
env::set_var("SHELL", "/path/bash");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "bash");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "/asd/bar");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "foo");
}
assert_eq!(OutputFmt::Shell, guess_syntax());
unsafe {
env::set_var("SHELL", "");
}
assert_eq!(OutputFmt::Unknown, guess_syntax());
unsafe {
env::remove_var("SHELL");
}
assert_eq!(OutputFmt::Unknown, guess_syntax());
if let Ok(s) = last {
unsafe {
env::set_var("SHELL", s);
}
}
}
#[test]
fn test_str_utils() {
let s = " asd#zcv #hk\t\n ";