Update tests; expand verbose_mode test
This commit is contained in:
parent
bd815bc386
commit
c6c270cd28
8 changed files with 106 additions and 190 deletions
|
|
@ -16,14 +16,7 @@ fn deflate_16_bits_strategy_0(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 0, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -34,14 +27,7 @@ fn deflate_8_bits_strategy_0(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 0, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,14 +40,7 @@ fn deflate_4_bits_strategy_0(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 0, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,14 +53,7 @@ fn deflate_2_bits_strategy_0(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 0, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,14 +66,7 @@ fn deflate_1_bits_strategy_0(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 0, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -112,14 +77,7 @@ fn deflate_16_bits_strategy_1(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 1, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
1,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,14 +88,7 @@ fn deflate_8_bits_strategy_1(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 1, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
1,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -150,14 +101,7 @@ fn deflate_4_bits_strategy_1(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 1, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
1,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -170,14 +114,7 @@ fn deflate_2_bits_strategy_1(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 1, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
1,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -190,14 +127,7 @@ fn deflate_1_bits_strategy_1(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 1, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
1,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -208,14 +138,7 @@ fn deflate_16_bits_strategy_2(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 2, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
2,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -226,14 +149,7 @@ fn deflate_8_bits_strategy_2(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 2, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
2,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -246,14 +162,7 @@ fn deflate_4_bits_strategy_2(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 2, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
2,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -266,14 +175,7 @@ fn deflate_2_bits_strategy_2(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 2, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
2,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -286,14 +188,7 @@ fn deflate_1_bits_strategy_2(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 2, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
2,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -304,14 +199,7 @@ fn deflate_16_bits_strategy_3(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 3, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
3,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -322,14 +210,7 @@ fn deflate_8_bits_strategy_3(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 3, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
3,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -342,14 +223,7 @@ fn deflate_4_bits_strategy_3(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 3, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
3,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -362,14 +236,7 @@ fn deflate_2_bits_strategy_3(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 3, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
3,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -382,14 +249,7 @@ fn deflate_1_bits_strategy_3(b: &mut Bencher) {
|
||||||
|
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
let min = AtomicMin::new(None);
|
let min = AtomicMin::new(None);
|
||||||
deflate(
|
deflate(png.raw.data.as_ref(), 9, 3, 15, &min, &Deadline::new(None))
|
||||||
png.raw.data.as_ref(),
|
|
||||||
9,
|
|
||||||
3,
|
|
||||||
15,
|
|
||||||
&min,
|
|
||||||
&Deadline::new(None, false),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ fn compress_test() {
|
||||||
Z_DEFAULT_STRATEGY as u8,
|
Z_DEFAULT_STRATEGY as u8,
|
||||||
15,
|
15,
|
||||||
&AtomicMin::new(None),
|
&AtomicMin::new(None),
|
||||||
&Deadline::new(None, false),
|
&Deadline::new(None),
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let res = crate::deflate::inflate(&vec).unwrap();
|
let res = crate::deflate::inflate(&vec).unwrap();
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ use std::path::PathBuf;
|
||||||
|
|
||||||
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
||||||
let mut options = oxipng::Options::default();
|
let mut options = oxipng::Options::default();
|
||||||
options.verbosity = None;
|
|
||||||
options.force = true;
|
options.force = true;
|
||||||
let mut filter = IndexSet::new();
|
let mut filter = IndexSet::new();
|
||||||
filter.insert(0);
|
filter.insert(0);
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ use std::path::PathBuf;
|
||||||
|
|
||||||
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
||||||
let mut options = oxipng::Options::default();
|
let mut options = oxipng::Options::default();
|
||||||
options.verbosity = None;
|
|
||||||
options.force = true;
|
options.force = true;
|
||||||
let mut filter = IndexSet::new();
|
let mut filter = IndexSet::new();
|
||||||
filter.insert(0);
|
filter.insert(0);
|
||||||
|
|
@ -56,10 +55,55 @@ fn test_it_converts(
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn verbose_mode() {
|
fn verbose_mode() {
|
||||||
let input = PathBuf::from("tests/files/verbose_mode.png");
|
use log::{set_logger, set_max_level, Level, LevelFilter, Log, Metadata, Record};
|
||||||
let (output, mut opts) = get_opts(&input);
|
use std::cell::RefCell;
|
||||||
opts.verbosity = Some(1);
|
use std::sync::mpsc::{sync_channel, SyncSender};
|
||||||
|
|
||||||
|
// Rust runs tests in parallel by default.
|
||||||
|
// We want to make sure that we verify only logs from our test.
|
||||||
|
//
|
||||||
|
// For that, we store an Option in a thread-local variable and
|
||||||
|
// initialise it with Some(sender) only on threads spawned within
|
||||||
|
// our test.
|
||||||
|
thread_local! {
|
||||||
|
static VERBOSE_LOGS: RefCell<Option<SyncSender<String>>> = RefCell::new(None);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct LogTester;
|
||||||
|
|
||||||
|
impl Log for LogTester {
|
||||||
|
fn enabled(&self, metadata: &Metadata) -> bool {
|
||||||
|
metadata.level() <= Level::Debug
|
||||||
|
}
|
||||||
|
|
||||||
|
fn log(&self, record: &Record) {
|
||||||
|
if record.level() == Level::Debug {
|
||||||
|
VERBOSE_LOGS.with(|logs| {
|
||||||
|
// If current thread has a storage for logs, add our line.
|
||||||
|
// Otherwise our handler is invoked from an unrelated test.
|
||||||
|
if let Some(logs) = logs.borrow().as_ref() {
|
||||||
|
logs.send(record.args().to_string()).unwrap();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn flush(&self) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
set_logger(&LogTester).unwrap();
|
||||||
|
set_max_level(LevelFilter::Debug);
|
||||||
|
|
||||||
|
let input = PathBuf::from("tests/files/verbose_mode.png");
|
||||||
|
let (output, opts) = get_opts(&input);
|
||||||
|
|
||||||
|
let (sender, receiver) = sync_channel(4);
|
||||||
|
|
||||||
|
let thread_init = move || {
|
||||||
|
// Initialise logs storage for all threads within our test.
|
||||||
|
VERBOSE_LOGS.with(|logs| *logs.borrow_mut() = Some(sender.clone()));
|
||||||
|
};
|
||||||
|
let thread_exec = move || {
|
||||||
test_it_converts(
|
test_it_converts(
|
||||||
input,
|
input,
|
||||||
&output,
|
&output,
|
||||||
|
|
@ -69,6 +113,28 @@ fn verbose_mode() {
|
||||||
ColorType::RGB,
|
ColorType::RGB,
|
||||||
BitDepth::Eight,
|
BitDepth::Eight,
|
||||||
);
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
#[cfg(feature = "rayon")]
|
||||||
|
rayon::ThreadPoolBuilder::new()
|
||||||
|
.start_handler(move |_| thread_init())
|
||||||
|
.build()
|
||||||
|
.unwrap()
|
||||||
|
.install(move || rayon::spawn(thread_exec));
|
||||||
|
|
||||||
|
#[cfg(not(feature = "rayon"))]
|
||||||
|
std::thread::spawn(move || {
|
||||||
|
thread_init();
|
||||||
|
thread_exec();
|
||||||
|
});
|
||||||
|
|
||||||
|
let mut logs: Vec<_> = receiver.into_iter().collect();
|
||||||
|
assert_eq!(logs.len(), 4);
|
||||||
|
logs.sort();
|
||||||
|
for (i, log) in logs.into_iter().enumerate() {
|
||||||
|
let expected_prefix = format!(" zc = 9 zs = {} f = 0 ", i);
|
||||||
|
assert!(log.starts_with(&expected_prefix), "logs[{}] = {:?} doesn't start with {:?}", i, log, expected_prefix);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ use std::path::PathBuf;
|
||||||
|
|
||||||
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
||||||
let mut options = oxipng::Options::default();
|
let mut options = oxipng::Options::default();
|
||||||
options.verbosity = None;
|
|
||||||
options.force = true;
|
options.force = true;
|
||||||
let mut filter = IndexSet::new();
|
let mut filter = IndexSet::new();
|
||||||
filter.insert(0);
|
filter.insert(0);
|
||||||
|
|
|
||||||
18
tests/lib.rs
18
tests/lib.rs
|
|
@ -13,8 +13,7 @@ fn optimize_from_memory() {
|
||||||
let mut in_file_buf: Vec<u8> = Vec::new();
|
let mut in_file_buf: Vec<u8> = Vec::new();
|
||||||
in_file.read_to_end(&mut in_file_buf).unwrap();
|
in_file.read_to_end(&mut in_file_buf).unwrap();
|
||||||
|
|
||||||
let mut opts: oxipng::Options = Default::default();
|
let opts: oxipng::Options = Default::default();
|
||||||
opts.verbosity = Some(1);
|
|
||||||
|
|
||||||
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
||||||
assert!(result.is_ok());
|
assert!(result.is_ok());
|
||||||
|
|
@ -26,8 +25,7 @@ fn optimize_from_memory_corrupted() {
|
||||||
let mut in_file_buf: Vec<u8> = Vec::new();
|
let mut in_file_buf: Vec<u8> = Vec::new();
|
||||||
in_file.read_to_end(&mut in_file_buf).unwrap();
|
in_file.read_to_end(&mut in_file_buf).unwrap();
|
||||||
|
|
||||||
let mut opts: oxipng::Options = Default::default();
|
let opts: oxipng::Options = Default::default();
|
||||||
opts.verbosity = Some(1);
|
|
||||||
|
|
||||||
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
||||||
assert!(result.is_err());
|
assert!(result.is_err());
|
||||||
|
|
@ -39,8 +37,7 @@ fn optimize_from_memory_apng() {
|
||||||
let mut in_file_buf: Vec<u8> = Vec::new();
|
let mut in_file_buf: Vec<u8> = Vec::new();
|
||||||
in_file.read_to_end(&mut in_file_buf).unwrap();
|
in_file.read_to_end(&mut in_file_buf).unwrap();
|
||||||
|
|
||||||
let mut opts: oxipng::Options = Default::default();
|
let opts: oxipng::Options = Default::default();
|
||||||
opts.verbosity = Some(1);
|
|
||||||
|
|
||||||
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
let result = oxipng::optimize_from_memory(&in_file_buf, &opts);
|
||||||
assert!(result.is_err());
|
assert!(result.is_err());
|
||||||
|
|
@ -48,8 +45,7 @@ fn optimize_from_memory_apng() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn optimize() {
|
fn optimize() {
|
||||||
let mut opts: oxipng::Options = Default::default();
|
let opts: oxipng::Options = Default::default();
|
||||||
opts.verbosity = Some(1);
|
|
||||||
|
|
||||||
let result = oxipng::optimize(
|
let result = oxipng::optimize(
|
||||||
&"tests/files/fully_optimized.png".into(),
|
&"tests/files/fully_optimized.png".into(),
|
||||||
|
|
@ -61,8 +57,7 @@ fn optimize() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn optimize_corrupted() {
|
fn optimize_corrupted() {
|
||||||
let mut opts: oxipng::Options = Default::default();
|
let opts: oxipng::Options = Default::default();
|
||||||
opts.verbosity = Some(1);
|
|
||||||
|
|
||||||
let result = oxipng::optimize(
|
let result = oxipng::optimize(
|
||||||
&"tests/files/corrupted_header.png".into(),
|
&"tests/files/corrupted_header.png".into(),
|
||||||
|
|
@ -74,8 +69,7 @@ fn optimize_corrupted() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn optimize_apng() {
|
fn optimize_apng() {
|
||||||
let mut opts: oxipng::Options = Default::default();
|
let opts: oxipng::Options = Default::default();
|
||||||
opts.verbosity = Some(1);
|
|
||||||
|
|
||||||
let result = oxipng::optimize(
|
let result = oxipng::optimize(
|
||||||
&"tests/files/apng_file.png".into(),
|
&"tests/files/apng_file.png".into(),
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ use std::path::PathBuf;
|
||||||
|
|
||||||
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
||||||
let mut options = oxipng::Options::default();
|
let mut options = oxipng::Options::default();
|
||||||
options.verbosity = None;
|
|
||||||
options.force = true;
|
options.force = true;
|
||||||
let mut filter = IndexSet::new();
|
let mut filter = IndexSet::new();
|
||||||
filter.insert(0);
|
filter.insert(0);
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ use std::path::PathBuf;
|
||||||
|
|
||||||
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
|
||||||
let mut options = oxipng::Options::default();
|
let mut options = oxipng::Options::default();
|
||||||
options.verbosity = None;
|
|
||||||
options.force = true;
|
options.force = true;
|
||||||
let mut filter = IndexSet::new();
|
let mut filter = IndexSet::new();
|
||||||
filter.insert(0);
|
filter.insert(0);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue