build_dir_tests.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. use super::*;
  2. #[test]
  3. fn glob_match_basics() {
  4. assert!(glob_match("patch_vllm_*.py", "patch_vllm_topk.py"));
  5. assert!(glob_match("patch_vllm_*.py", "patch_vllm_a.py"));
  6. assert!(!glob_match("patch_vllm_*.py", "other.py"));
  7. assert!(glob_match("a?c", "abc"));
  8. assert!(!glob_match("a?c", "ac"));
  9. assert!(glob_match("x", "x"));
  10. assert!(glob_match("*", "anything/at-all"));
  11. }
  12. #[test]
  13. fn parse_versions_env_quotes_are_normalized() {
  14. let raw = "A=\"x:tag@sha256:abc\"\nB='y'\nC=z\nE=\"half\nF='weird\"\n";
  15. let pins = parse_versions_env(raw);
  16. assert_eq!(pins.get("A"), Some(&"x:tag@sha256:abc".to_string()));
  17. assert_eq!(pins.get("B"), Some(&"y".to_string()));
  18. assert_eq!(pins.get("C"), Some(&"z".to_string()));
  19. assert_eq!(pins.get("E"), Some(&"\"half".to_string()));
  20. assert_eq!(pins.get("F"), Some(&"'weird\"".to_string()));
  21. }
  22. #[test]
  23. fn parse_versions_env_skips_comments_and_blanks() {
  24. let raw = "# comment\n\nKEY=val\nOTHER=a=b\n SPACED = x \nnoeq\n";
  25. let pins = parse_versions_env(raw);
  26. assert_eq!(pins.get("KEY"), Some(&"val".to_string()));
  27. assert_eq!(pins.get("OTHER"), Some(&"a=b".to_string()));
  28. assert_eq!(pins.get("SPACED"), Some(&"x".to_string()));
  29. assert!(!pins.contains_key("noeq"));
  30. assert_eq!(pins.len(), 3);
  31. }
  32. #[test]
  33. fn resolve_falls_back_to_bundle_layout() {
  34. let base = std::env::temp_dir().join(format!("sm121-resolve-test-{}", std::process::id()));
  35. let bundle = base.join("recipes").join("test-resolve-recipe-x");
  36. std::fs::create_dir_all(&bundle).unwrap();
  37. std::fs::write(bundle.join("build.sh"), "").unwrap();
  38. std::fs::write(bundle.join("Dockerfile"), "").unwrap();
  39. let (dir, src) =
  40. resolve_build_dir(&base, "test-resolve-recipe-x", "test-resolve-recipe-x", &[]).unwrap();
  41. assert_eq!(src, BuildSource::Bundle);
  42. assert_eq!(dir, bundle);
  43. let _ = std::fs::remove_dir_all(&base);
  44. }