#![deny(clippy::all)] #[macro_use] pub mod common; use common::{setup_output_path, SicTestCommandBuilder}; use std::ffi::OsStr; use std::path::Path; #[test] fn keep_format() { const OUT: &str = "globtest/unmodified_format"; let mut process = SicTestCommandBuilder::new() .glob_input_from_resources("*.png") .glob_output_in_target(OUT) .spawn_child(); let exit_status = process.wait().unwrap(); assert!(exit_status.success()); let check_path = setup_output_path(OUT); assert!(count_files_with_ext_in_folder(check_path, "png") >= 12) } #[test] fn modify_format() { const OUT: &str = "globtest/modified_format_and_ext/"; let mut process = SicTestCommandBuilder::new() .glob_input_from_resources("*.png") .glob_output_in_target(OUT) .with_args(["--output-format", "jpg"]) .spawn_child(); let exit_status = process.wait().unwrap(); assert!(exit_status.success()); let check_path = setup_output_path(OUT); assert!(count_files_with_ext_in_folder(check_path, "jpg") >= 12) } fn count_files_with_ext_in_folder, S: AsRef>(path: P, ext: S) -> usize { std::fs::read_dir(path) .unwrap() .filter_map(|entry| { if let Ok(entry) = entry { if let Some(found_ext) = entry.path().extension() { if found_ext == ext.as_ref() { return Some(found_ext.to_os_string()); } } } None }) .count() }