mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-17 00:10:03 -04:00
test(mkdwarfs): more --order
tests
This commit is contained in:
parent
04d1d8dde0
commit
38676f1bb6
@ -898,17 +898,36 @@ TEST_F(mkdwarfs_main_test, order_invalid) {
|
|||||||
EXPECT_THAT(err(), ::testing::HasSubstr("invalid inode order mode"));
|
EXPECT_THAT(err(), ::testing::HasSubstr("invalid inode order mode"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(mkdwarfs_main_test, order_does_not_support_options) {
|
||||||
|
EXPECT_NE(0, run({"-i", "/", "-o", "-", "--order=path:foo=42"}));
|
||||||
|
EXPECT_THAT(err(), ::testing::HasSubstr(
|
||||||
|
"inode order mode 'path' does not support options"));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(mkdwarfs_main_test, order_explicit_failed_to_open_file) {
|
||||||
|
EXPECT_NE(0,
|
||||||
|
run({"-i", "/", "-o", "-", "--order=explicit:file=explicit.txt"}));
|
||||||
|
EXPECT_THAT(err(), ::testing::HasSubstr(
|
||||||
|
"failed to open explicit order file 'explicit.txt':"));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(mkdwarfs_main_test, order_nilsimsa_invalid_option) {
|
TEST_F(mkdwarfs_main_test, order_nilsimsa_invalid_option) {
|
||||||
EXPECT_NE(0, run({"-i", "/", "-o", "-", "--order=nilsimsa:grmpf"}));
|
EXPECT_NE(0, run({"-i", "/", "-o", "-", "--order=nilsimsa:grmpf"}));
|
||||||
EXPECT_THAT(err(), ::testing::HasSubstr(
|
EXPECT_THAT(err(), ::testing::HasSubstr(
|
||||||
"invalid option(s) for choice nilsimsa: grmpf"));
|
"invalid option(s) for choice nilsimsa: grmpf"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(mkdwarfs_main_test, order_nilsimsa_invalid_value) {
|
TEST_F(mkdwarfs_main_test, order_nilsimsa_invalid_max_childre_value) {
|
||||||
EXPECT_NE(0, run({"-i", "/", "-o", "-", "--order=nilsimsa:max-children=0"}));
|
EXPECT_NE(0, run({"-i", "/", "-o", "-", "--order=nilsimsa:max-children=0"}));
|
||||||
EXPECT_THAT(err(), ::testing::HasSubstr("invalid max-children value: 0"));
|
EXPECT_THAT(err(), ::testing::HasSubstr("invalid max-children value: 0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(mkdwarfs_main_test, order_nilsimsa_invalid_max_cluster_size_value) {
|
||||||
|
EXPECT_NE(0,
|
||||||
|
run({"-i", "/", "-o", "-", "--order=nilsimsa:max-cluster-size=0"}));
|
||||||
|
EXPECT_THAT(err(), ::testing::HasSubstr("invalid max-cluster-size value: 0"));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(mkdwarfs_main_test, order_nilsimsa_cannot_parse_value) {
|
TEST_F(mkdwarfs_main_test, order_nilsimsa_cannot_parse_value) {
|
||||||
EXPECT_NE(
|
EXPECT_NE(
|
||||||
0, run({"-i", "/", "-o", "-", "--order=nilsimsa:max-cluster-size=-1"}));
|
0, run({"-i", "/", "-o", "-", "--order=nilsimsa:max-cluster-size=-1"}));
|
||||||
|
@ -860,6 +860,7 @@ TEST(mkdwarfs_test, max_similarity_size) {
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
std::array const fragment_orders{
|
std::array const fragment_orders{
|
||||||
|
std::pair{"none"sv, "a/c,b,c/a,c/d,e"sv},
|
||||||
std::pair{"path"sv, "a/c,b,c/a,c/d,e"sv},
|
std::pair{"path"sv, "a/c,b,c/a,c/d,e"sv},
|
||||||
std::pair{"revpath"sv, "c/a,b,a/c,c/d,e"sv},
|
std::pair{"revpath"sv, "c/a,b,a/c,c/d,e"sv},
|
||||||
std::pair{"explicit:file=order.dat"sv, "c/d,b,a/c,e,c/a"sv},
|
std::pair{"explicit:file=order.dat"sv, "c/d,b,a/c,e,c/a"sv},
|
||||||
@ -888,7 +889,7 @@ TEST_P(fragment_order_test, basic) {
|
|||||||
t.os->add_file("c/d", 16, true);
|
t.os->add_file("c/d", 16, true);
|
||||||
t.os->add_file("e", 32, true);
|
t.os->add_file("e", 32, true);
|
||||||
|
|
||||||
ASSERT_EQ(0, t.run({"-i", "/", "-o", image_file,
|
ASSERT_EQ(0, t.run({"-i", "/", "-o", image_file, "--log-level=verbose",
|
||||||
"--order=" + std::string{option}, "-B0"}))
|
"--order=" + std::string{option}, "-B0"}))
|
||||||
<< t.err();
|
<< t.err();
|
||||||
|
|
||||||
@ -907,8 +908,15 @@ TEST_P(fragment_order_test, basic) {
|
|||||||
|
|
||||||
EXPECT_EQ(file_offsets.size(), 5);
|
EXPECT_EQ(file_offsets.size(), 5);
|
||||||
|
|
||||||
std::ranges::sort(file_offsets, std::less{},
|
if (option == "none") {
|
||||||
&std::pair<std::string, size_t>::second);
|
// just make sure everything is there, order doesn't matter
|
||||||
|
std::ranges::sort(file_offsets, std::less{},
|
||||||
|
&std::pair<std::string, size_t>::first);
|
||||||
|
} else {
|
||||||
|
std::ranges::sort(file_offsets, std::less{},
|
||||||
|
&std::pair<std::string, size_t>::second);
|
||||||
|
}
|
||||||
|
|
||||||
auto got = file_offsets | ranges::views::keys | ranges::views::join(","sv) |
|
auto got = file_offsets | ranges::views::keys | ranges::views::join(","sv) |
|
||||||
ranges::to<std::string>();
|
ranges::to<std::string>();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user