70 lines
1.6 KiB
Rust
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");
|
|
}
|