| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- use super::*;
- #[test]
- fn glob_match_basics() {
- assert!(glob_match("patch_vllm_*.py", "patch_vllm_topk.py"));
- assert!(glob_match("patch_vllm_*.py", "patch_vllm_a.py"));
- assert!(!glob_match("patch_vllm_*.py", "other.py"));
- assert!(glob_match("a?c", "abc"));
- assert!(!glob_match("a?c", "ac"));
- assert!(glob_match("x", "x"));
- assert!(glob_match("*", "anything/at-all"));
- }
- #[test]
- fn parse_versions_env_quotes_are_normalized() {
- let raw = "A=\"x:tag@sha256:abc\"\nB='y'\nC=z\nE=\"half\nF='weird\"\n";
- let pins = parse_versions_env(raw);
- assert_eq!(pins.get("A"), Some(&"x:tag@sha256:abc".to_string()));
- assert_eq!(pins.get("B"), Some(&"y".to_string()));
- assert_eq!(pins.get("C"), Some(&"z".to_string()));
- assert_eq!(pins.get("E"), Some(&"\"half".to_string()));
- assert_eq!(pins.get("F"), Some(&"'weird\"".to_string()));
- }
- #[test]
- fn parse_versions_env_skips_comments_and_blanks() {
- let raw = "# comment\n\nKEY=val\nOTHER=a=b\n SPACED = x \nnoeq\n";
- let pins = parse_versions_env(raw);
- assert_eq!(pins.get("KEY"), Some(&"val".to_string()));
- assert_eq!(pins.get("OTHER"), Some(&"a=b".to_string()));
- assert_eq!(pins.get("SPACED"), Some(&"x".to_string()));
- assert!(!pins.contains_key("noeq"));
- assert_eq!(pins.len(), 3);
- }
- #[test]
- fn resolve_falls_back_to_bundle_layout() {
- let base = std::env::temp_dir().join(format!("sm121-resolve-test-{}", std::process::id()));
- let bundle = base.join("recipes").join("test-resolve-recipe-x");
- std::fs::create_dir_all(&bundle).unwrap();
- std::fs::write(bundle.join("build.sh"), "").unwrap();
- std::fs::write(bundle.join("Dockerfile"), "").unwrap();
- let (dir, src) =
- resolve_build_dir(&base, "test-resolve-recipe-x", "test-resolve-recipe-x", &[]).unwrap();
- assert_eq!(src, BuildSource::Bundle);
- assert_eq!(dir, bundle);
- let _ = std::fs::remove_dir_all(&base);
- }
|