Files
galaxy/crates/remote_server/src/setup/glibc_tests.rs
T

70 lines
1.6 KiB
Rust

use super::*;
#[test]
fn parses_major_minor() {
assert_eq!(GlibcVersion::parse("2.31"), Some(GlibcVersion::new(2, 31)));
}
#[test]
fn parses_major_minor_patch() {
assert_eq!(
GlibcVersion::parse("2.35.0"),
Some(GlibcVersion::new(2, 35))
);
}
#[test]
fn parses_distro_suffix() {
// e.g. "2.35-0ubuntu3.4"
assert_eq!(
GlibcVersion::parse("2.35-0ubuntu3.4"),
Some(GlibcVersion::new(2, 35))
);
}
#[test]
fn returns_none_on_garbage() {
assert_eq!(GlibcVersion::parse("garbage"), None);
assert_eq!(GlibcVersion::parse(""), None);
assert_eq!(GlibcVersion::parse("2.x"), None);
}
#[test]
fn parse_libc_glibc() {
assert_eq!(
parse_libc(Some("glibc"), Some("2.31")),
RemoteLibc::Glibc(GlibcVersion::new(2, 31))
);
}
#[test]
fn parse_libc_glibc_unparseable_version() {
assert_eq!(
parse_libc(Some("glibc"), Some("garbage")),
RemoteLibc::Unknown
);
assert_eq!(parse_libc(Some("glibc"), None), RemoteLibc::Unknown);
}
#[test]
fn parse_libc_non_glibc() {
assert_eq!(
parse_libc(Some("musl"), None),
RemoteLibc::NonGlibc {
name: "musl".to_string()
}
);
}
#[test]
fn parse_libc_unknown_family_treated_as_unknown() {
assert_eq!(parse_libc(Some("unknown"), None), RemoteLibc::Unknown);
assert_eq!(parse_libc(None, None), RemoteLibc::Unknown);
assert_eq!(parse_libc(Some(""), None), RemoteLibc::Unknown);
}
#[test]
fn glibc_version_displays_as_dotted() {
assert_eq!(format!("{}", GlibcVersion::new(2, 31)), "2.31");
}