1 #![allow(clippy::type_complexity)] 2 3 mod bin; 4 #[path = "../src/bin/run-emitter-test-suite.rs"] 5 #[allow(dead_code)] 6 mod run_emitter_test_suite; 7 8 use std::fs; 9 use std::path::Path; 10 test(id: &str)11fn test(id: &str) { 12 let dir = Path::new("tests") 13 .join("data") 14 .join("yaml-test-suite") 15 .join(id); 16 17 let output = bin::run( 18 env!("CARGO_BIN_EXE_run-emitter-test-suite"), 19 run_emitter_test_suite::unsafe_main, 20 &dir.join("test.event"), 21 ); 22 23 let stdout = String::from_utf8_lossy(&output.stdout); 24 let stderr = String::from_utf8_lossy(&output.stderr); 25 eprint!("{}", stderr); 26 27 let out = if dir.join("out.yaml").exists() { 28 dir.join("out.yaml") 29 } else { 30 dir.join("in.yaml") 31 }; 32 let expected = fs::read_to_string(out).unwrap(); 33 pretty_assertions::assert_str_eq!(expected, stdout); 34 assert!(output.success); 35 } 36 37 unsafe_libyaml_test_suite::test_emitter!(); 38