mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-12 22:10:54 -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);
|
||||
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) {
|
||||
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_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