use glob::glob; use librashader_presets::context::{ContextItem, VideoDriver, WildcardContext}; use librashader_presets::ShaderPreset; #[test] fn parses_all_slang_presets() { for entry in glob("../test/shaders_slang/**/*.slangp").unwrap() { if let Ok(path) = entry { if let Err(e) = ShaderPreset::try_parse(&path) { println!("Could not parse {}: {:?}", path.display(), e) } } } } #[test] fn parses_problematic() { let path = "../test/Mega_Bezel_Packs/Duimon-Mega-Bezel/Presets/Advanced/Nintendo_NDS_DREZ/NDS-[DREZ]-[Native]-[ADV]-[Guest]-[Night].slangp"; ShaderPreset::try_parse(path).expect(&format!("Failed to parse {}", path)); } #[test] fn parses_wildcard() { let path = "../test/shaders_slang/bezel/Mega_Bezel/resource/wildcard-examples/Preset-01-Core.slangp"; let mut context = WildcardContext::new(); context.add_video_driver_defaults(VideoDriver::Vulkan); context.append_item(ContextItem::CoreName(String::from("image display"))); ShaderPreset::try_parse_with_context(path, context) .expect(&format!("Failed to parse {}", path)); }