test_get_dbpath_for_term(): handle non-utf8 paths

This commit is contained in:
Martin Nordholts 2023-08-02 20:47:56 +02:00
parent 54a6bb7f0d
commit d1940912e5

View File

@ -6,14 +6,12 @@ fn test_get_dbpath_for_term() {
// woefully inadequate test coverage // woefully inadequate test coverage
// note: current tests won't work with non-standard terminfo hierarchies (e.g., macOS's) // note: current tests won't work with non-standard terminfo hierarchies (e.g., macOS's)
use std::env; use std::env;
// FIXME (#9639): This needs to handle non-utf8 paths fn x(t: &str) -> PathBuf {
fn x(t: &str) -> String { get_dbpath_for_term(t).expect(&format!("no terminfo entry found for {t:?}"))
let p = get_dbpath_for_term(t).expect("no terminfo entry found");
p.to_str().unwrap().to_string()
} }
assert_eq!(x("screen"), "/usr/share/terminfo/s/screen"); assert_eq!(x("screen"), PathBuf::from("/usr/share/terminfo/s/screen"));
assert_eq!(get_dbpath_for_term(""), None); assert_eq!(get_dbpath_for_term(""), None);
env::set_var("TERMINFO_DIRS", ":"); env::set_var("TERMINFO_DIRS", ":");
assert_eq!(x("screen"), "/usr/share/terminfo/s/screen"); assert_eq!(x("screen"), PathBuf::from("/usr/share/terminfo/s/screen"));
env::remove_var("TERMINFO_DIRS"); env::remove_var("TERMINFO_DIRS");
} }