mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-13 14:27:30 -04:00
fix: error handling when using compression with metadata requirements
This commit is contained in:
parent
2a9f301b80
commit
4868612f4d
@ -1224,7 +1224,18 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
categorizer_list.add_implicit_defaults(cop);
|
categorizer_list.add_implicit_defaults(cop);
|
||||||
LOG_VERBOSE << cop.as_string();
|
LOG_VERBOSE << cop.as_string();
|
||||||
|
|
||||||
fsw->add_default_compressor(compression_opt.get());
|
{
|
||||||
|
auto bc = compression_opt.get();
|
||||||
|
|
||||||
|
if (!bc.metadata_requirements().empty()) {
|
||||||
|
throw std::runtime_error(
|
||||||
|
fmt::format("compression '{}' cannot be used without a category: "
|
||||||
|
"metadata requirements not met",
|
||||||
|
bc.describe()));
|
||||||
|
}
|
||||||
|
|
||||||
|
fsw->add_default_compressor(std::move(bc));
|
||||||
|
}
|
||||||
|
|
||||||
if (recompress) {
|
if (recompress) {
|
||||||
compression_opt.visit_contextual(
|
compression_opt.visit_contextual(
|
||||||
|
@ -1071,3 +1071,10 @@ TEST(mkdwarfs_test, output_file_fail_close) {
|
|||||||
EXPECT_NE(0, t.run({"-i", "/", "-o", "test.dwarfs"})) << t.err();
|
EXPECT_NE(0, t.run({"-i", "/", "-o", "test.dwarfs"})) << t.err();
|
||||||
EXPECT_THAT(t.err(), ::testing::HasSubstr("failed to close output file"));
|
EXPECT_THAT(t.err(), ::testing::HasSubstr("failed to close output file"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(mkdwarfs_test, compression_cannot_be_used) {
|
||||||
|
mkdwarfs_tester t;
|
||||||
|
EXPECT_NE(0, t.run({"-i", "/", "-o", "-", "-C", "flac"}));
|
||||||
|
EXPECT_THAT(t.err(),
|
||||||
|
::testing::HasSubstr("cannot be used without a category"));
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user