From 87ada9b4936a5fd26b0b7c469f1af5131981142e Mon Sep 17 00:00:00 2001 From: Ming-Hung Tsai Date: Thu, 8 Jul 2021 00:31:09 +0800 Subject: [PATCH] [tests] Add basic tests for cache_dump --- tests/cache_dump.rs | 85 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/cache_dump.rs diff --git a/tests/cache_dump.rs b/tests/cache_dump.rs new file mode 100644 index 0000000..a8f3754 --- /dev/null +++ b/tests/cache_dump.rs @@ -0,0 +1,85 @@ +use anyhow::Result; + +mod common; + +use common::common_args::*; +use common::input_arg::*; +use common::test_dir::*; +use common::*; + +//------------------------------------------ + +const USAGE: &str = "Usage: cache_dump [options] {device|file}\n\ + Options:\n \ + {-h|--help}\n \ + {-o }\n \ + {-V|--version}\n \ + {--repair}"; + +//------------------------------------------ + +struct CacheDump; + +impl<'a> Program<'a> for CacheDump { + fn name() -> &'a str { + "cache_dump" + } + + fn path() -> &'a str { + CACHE_DUMP + } + + fn usage() -> &'a str { + USAGE + } + + fn arg_type() -> ArgType { + ArgType::InputArg + } + + fn bad_option_hint(option: &str) -> String { + msg::bad_option_hint(option) + } +} + +impl<'a> InputProgram<'a> for CacheDump { + fn mk_valid_input(td: &mut TestDir) -> Result { + mk_valid_md(td) + } + + fn file_not_found() -> &'a str { + msg::FILE_NOT_FOUND + } + + fn missing_input_arg() -> &'a str { + msg::MISSING_INPUT_ARG + } + + fn corrupted_input() -> &'a str { + msg::BAD_SUPERBLOCK + } +} + +//------------------------------------------ + +test_accepts_help!(CacheDump); +test_accepts_version!(CacheDump); +test_rejects_bad_option!(CacheDump); + +test_missing_input_arg!(CacheDump); +test_input_file_not_found!(CacheDump); +test_input_cannot_be_a_directory!(CacheDump); +test_unreadable_input_file!(CacheDump); + +//------------------------------------------ + +/* + (define-scenario (cache-dump restore-is-noop) + "cache_dump followed by cache_restore is a noop." + (with-valid-metadata (md) + (run-ok-rcv (d1-stdout _) (cache-dump md) + (with-temp-file-containing ((xml "cache.xml" d1-stdout)) + (run-ok (cache-restore "-i" xml "-o" md)) + (run-ok-rcv (d2-stdout _) (cache-dump md) + (assert-equal d1-stdout d2-stdout)))))) +*/