1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
#[macro_use] extern crate serde_derive; #[macro_use] extern crate derive_builder; pub mod spec; #[cfg(test)] mod tests { use crate::spec::*; use glob::glob; use serde_json; use std::fs::File; #[test] fn builder() -> Result<(), String> { ConfigSchemaBuilder::default() .oci_version("1.0.0") .process( ProcessBuilder::default() .args(vec!["sleep".to_string(), "1".to_string()]) .cwd("/root") .build()?, ) .build()?; Ok(()) } #[test] fn config_good() { let mut count = 0; for entry in glob("../runtime-spec/schema/test/config/good/*.json").unwrap() { let entry = entry.unwrap(); let msg = format!("good file {}", &entry.display()); let json = File::open(&entry).expect(&format!("opening {}", &msg)); let _config: ConfigSchema = serde_json::from_reader(&json).expect(&format!("parsing {:?}", &msg)); count += 1; } assert_eq!(4, count); } #[test] fn config_bad() { let mut count = 0; for entry in glob("../runtime-spec/schema/test/config/bad/*.json").unwrap() { let entry = entry.unwrap(); let msg = format!("bad file {}", &entry.display()); let json = File::open(&entry).expect(&format!("opening {}", &msg)); let res: Result<ConfigSchema, serde_json::Error> = serde_json::from_reader(&json); res.expect_err(&format!("should not parse {:?}", &msg)); count += 1; } assert_eq!(2, count); } #[test] fn state_good() { let mut count = 0; for entry in glob("../runtime-spec/schema/test/state/good/*.json").unwrap() { let entry = entry.unwrap(); let msg = format!("good file {}", &entry.display()); let json = File::open(&entry).expect(&format!("opening {}", &msg)); let _state: StateSchema = serde_json::from_reader(&json).expect(&format!("parsing {:?}", &msg)); count += 1; } assert_eq!(1, count); } #[test] fn state_bad() { let mut count = 0; for entry in glob("../runtime-spec/schema/test/state/bad/*.json").unwrap() { let entry = entry.unwrap(); let msg = format!("bad file {}", &entry.display()); let json = File::open(&entry).expect(&format!("opening {}", &msg)); let res: Result<StateSchema, serde_json::Error> = serde_json::from_reader(&json); res.expect_err(&format!("should not parse {:?}", &msg)); count += 1; } assert_eq!(1, count); } }