pub const ZSH_PATCHLEVEL: &str = "zsh-5.9-465-g6b9704e";
pub const ZSH_VERSION: &str = "5.9.0.3-test";
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn patchlevel_value_and_git_describe_shape() {
let _g = crate::test_util::global_state_lock();
assert_eq!(ZSH_PATCHLEVEL, "zsh-5.9-465-g6b9704e");
assert!(
ZSH_PATCHLEVEL.contains("-g"),
"git-describe `-g<hash>` suffix is load-bearing"
);
}
#[test]
fn zsh_version_matches_upstream_config_version() {
let _g = crate::test_util::global_state_lock();
assert_eq!(ZSH_VERSION, "5.9.0.3-test");
let major = ZSH_VERSION.split('.').next().unwrap_or("");
assert!(
major.chars().all(|c| c.is_ascii_digit()) && !major.is_empty(),
"ZSH_VERSION must start with numeric MAJOR (got {ZSH_VERSION:?})"
);
}
#[test]
fn patchlevel_corpus_nonempty() {
assert!(!ZSH_PATCHLEVEL.is_empty());
}
#[test]
fn patchlevel_corpus_zsh_prefix() {
assert!(ZSH_PATCHLEVEL.starts_with("zsh-"),
"patchlevel must start with `zsh-`, got {ZSH_PATCHLEVEL:?}");
}
#[test]
fn patchlevel_corpus_version_has_dot() {
assert!(ZSH_VERSION.contains('.'),
"ZSH_VERSION must contain a dot (MAJOR.MINOR), got {ZSH_VERSION:?}");
}
#[test]
fn patchlevel_corpus_version_major_is_five() {
let major = ZSH_VERSION.split('.').next().unwrap();
assert_eq!(major, "5", "current zsh is in the 5.x series");
}
#[test]
fn patchlevel_corpus_version_minor_parses() {
let parts: Vec<&str> = ZSH_VERSION.split('.').collect();
assert!(parts.len() >= 2, "must have MAJOR.MINOR");
let minor: Result<i32, _> = parts[1].parse();
assert!(minor.is_ok(), "MINOR must parse: {parts:?}");
}
#[test]
fn patchlevel_corpus_patchlevel_differs_from_version() {
assert_ne!(ZSH_PATCHLEVEL, ZSH_VERSION);
}
}