From 270edffc95323feda2b0829affcb7df1ad93b07f Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Fri, 22 Dec 2023 13:23:59 +0100 Subject: [PATCH] test: simple categorizer and json metadata tests --- test/catdata.dwarfs | Bin 0 -> 174714 bytes test/dwarfs_tools.cpp | 177 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 test/catdata.dwarfs diff --git a/test/catdata.dwarfs b/test/catdata.dwarfs new file mode 100644 index 0000000000000000000000000000000000000000..9635c52238d89a4c7138685ac3e475ad39597522 GIT binary patch literal 174714 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 literal 0 HcmV?d00001 diff --git a/test/dwarfs_tools.cpp b/test/dwarfs_tools.cpp index 40b4670b2..dcb90b6fc 100644 --- a/test/dwarfs_tools.cpp +++ b/test/dwarfs_tools.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include @@ -61,6 +62,7 @@ namespace fs = std::filesystem; auto test_dir = fs::path(TEST_DATA_DIR).make_preferred(); auto test_data_dwarfs = test_dir / "data.dwarfs"; +auto test_catdata_dwarfs = test_dir / "catdata.dwarfs"; #ifdef _WIN32 #define EXE_EXT ".exe" @@ -124,6 +126,7 @@ struct compare_directories_result { std::set directories; std::set symlinks; std::set regular_files; + size_t total_regular_file_size{0}; }; std::ostream& @@ -182,6 +185,7 @@ bool compare_directories(fs::path const& p1, fs::path const& p2, res->directories.clear(); res->symlinks.clear(); res->regular_files.clear(); + res->total_regular_file_size = 0; } bool rv = true; @@ -225,6 +229,7 @@ bool compare_directories(fs::path const& p1, fs::path const& p2, } if (res) { res->regular_files.insert(p); + res->total_regular_file_size += e1.file_size(); } break; @@ -1061,5 +1066,177 @@ TEST_P(tools_test, mutating_ops) { } } +TEST_P(tools_test, categorize) { + auto mode = GetParam(); + + std::chrono::seconds const timeout{5}; + folly::test::TemporaryDirectory tempdir("dwarfs"); + auto td = fs::path(tempdir.path().string()); + auto image = td / "test.dwarfs"; + auto image_recompressed = td / "test2.dwarfs"; + auto fsdata_dir = td / "fsdata"; + auto universal_symlink_dwarfs_bin = td / "dwarfs" EXE_EXT; + auto universal_symlink_mkdwarfs_bin = td / "mkdwarfs" EXE_EXT; + auto universal_symlink_dwarfsck_bin = td / "dwarfsck" EXE_EXT; + auto universal_symlink_dwarfsextract_bin = td / "dwarfsextract" EXE_EXT; + std::vector mkdwarfs_tool_arg; + std::vector dwarfsck_tool_arg; + std::vector dwarfsextract_tool_arg; + fs::path const* mkdwarfs_test_bin = &mkdwarfs_bin; + fs::path const* dwarfsck_test_bin = &dwarfsck_bin; + fs::path const* dwarfsextract_test_bin = &dwarfsextract_bin; + + if (mode == binary_mode::universal_symlink) { + fs::create_symlink(universal_bin, universal_symlink_dwarfs_bin); + fs::create_symlink(universal_bin, universal_symlink_mkdwarfs_bin); + fs::create_symlink(universal_bin, universal_symlink_dwarfsck_bin); + fs::create_symlink(universal_bin, universal_symlink_dwarfsextract_bin); + } + + if (mode == binary_mode::universal_tool) { + mkdwarfs_test_bin = &universal_bin; + dwarfsck_test_bin = &universal_bin; + dwarfsextract_test_bin = &universal_bin; + mkdwarfs_tool_arg.push_back("--tool=mkdwarfs"); + dwarfsck_tool_arg.push_back("--tool=dwarfsck"); + dwarfsextract_tool_arg.push_back("--tool=dwarfsextract"); + } + + ASSERT_TRUE(fs::create_directory(fsdata_dir)); + ASSERT_TRUE(subprocess::check_run(*dwarfsextract_test_bin, + dwarfsextract_tool_arg, "-i", + test_catdata_dwarfs, "-o", fsdata_dir)); + + ASSERT_TRUE(fs::exists(fsdata_dir / "random")); + EXPECT_EQ(4096, fs::file_size(fsdata_dir / "random")); + + std::vector mkdwarfs_args{ + "-i", fsdata_dir, "-o", image, "--no-progress", + "--categorize", "-S", "16", "-W", "pcmaudio/waveform::8"}; + + ASSERT_TRUE(subprocess::check_run(*mkdwarfs_test_bin, mkdwarfs_tool_arg, + mkdwarfs_args)); + + ASSERT_TRUE(fs::exists(image)); + auto const image_size = fs::file_size(image); + EXPECT_GT(image_size, 150000); + EXPECT_LT(image_size, 300000); + + std::vector mkdwarfs_args_recompress{ + "-i", + image, + "-o", + image_recompressed, + "--no-progress", + "--recompress=block", + "--recompress-categories=pcmaudio/waveform", + "-C", + "pcmaudio/waveform::flac:level=8"}; + + ASSERT_TRUE(subprocess::check_run(*mkdwarfs_test_bin, mkdwarfs_tool_arg, + mkdwarfs_args_recompress)); + + ASSERT_TRUE(fs::exists(image_recompressed)); + { + auto const image_size_recompressed = fs::file_size(image_recompressed); + EXPECT_GT(image_size_recompressed, 100000); + EXPECT_LT(image_size_recompressed, image_size); + } + + { + auto mountpoint = td / "mnt"; + fs::path driver; + + switch (mode) { + case binary_mode::standalone: + driver = fuse3_bin; + break; + + case binary_mode::universal_tool: + driver = universal_bin; + break; + + case binary_mode::universal_symlink: + driver = universal_symlink_dwarfs_bin; + break; + } + + driver_runner runner(driver_runner::foreground, driver, + mode == binary_mode::universal_tool, image, + mountpoint); + + ASSERT_TRUE(wait_until_file_ready(mountpoint / "random", timeout)) + << runner.cmdline(); + compare_directories_result cdr; + ASSERT_TRUE(compare_directories(fsdata_dir, mountpoint, &cdr)) + << runner.cmdline() << ": " << cdr; + EXPECT_EQ(cdr.regular_files.size(), 151) << runner.cmdline() << ": " << cdr; + EXPECT_EQ(cdr.total_regular_file_size, 679'077'701) + << runner.cmdline() << ": " << cdr; + + EXPECT_TRUE(runner.unmount()) << runner.cmdline(); + } + + auto json_info = subprocess::check_run(*dwarfsck_test_bin, dwarfsck_tool_arg, + image_recompressed, "--json"); + ASSERT_TRUE(json_info); + + auto info = folly::parseJson(*json_info); + + EXPECT_EQ(info["block_size"], 65'536); + EXPECT_EQ(info["image_offset"], 0); + EXPECT_EQ(info["inode_count"], 154); + EXPECT_EQ(info["original_filesystem_size"], 679'077'701); + EXPECT_EQ(info["categories"].size(), 4); + + EXPECT_TRUE(info.count("created_by")); + EXPECT_TRUE(info.count("created_on")); + + { + auto it = info["categories"].find(""); + ASSERT_NE(it, info["categories"].items().end()); + EXPECT_EQ(it->second["block_count"].asInt(), 1); + } + + { + auto it = info["categories"].find("incompressible"); + ASSERT_NE(it, info["categories"].items().end()); + EXPECT_EQ(it->second["block_count"].asInt(), 1); + EXPECT_EQ(it->second["compressed_size"].asInt(), 4'096); + EXPECT_EQ(it->second["uncompressed_size"].asInt(), 4'096); + } + + { + auto it = info["categories"].find("pcmaudio/metadata"); + ASSERT_NE(it, info["categories"].items().end()); + EXPECT_EQ(it->second["block_count"].asInt(), 3); + } + + { + auto it = info["categories"].find("pcmaudio/waveform"); + ASSERT_NE(it, info["categories"].items().end()); + EXPECT_EQ(it->second["block_count"].asInt(), 48); + } + + ASSERT_EQ(info["history"].size(), 2); + for (auto const& entry : info["history"]) { + ASSERT_TRUE(entry.count("arguments")); + EXPECT_TRUE(entry.count("compiler_id")); + EXPECT_TRUE(entry.count("libdwarfs_version")); + EXPECT_TRUE(entry.count("system_id")); + EXPECT_TRUE(entry.count("timestamp")); + } + + folly::dynamic ref_args = folly::dynamic::array(); + ref_args.push_back(mkdwarfs_test_bin->string()); + ref_args.insert(ref_args.end(), mkdwarfs_args.begin(), mkdwarfs_args.end()); + EXPECT_EQ(ref_args, info["history"][0]["arguments"]); + + ref_args.resize(1); + ref_args.insert(ref_args.end(), mkdwarfs_args_recompress.begin(), + mkdwarfs_args_recompress.end()); + EXPECT_EQ(ref_args, info["history"][1]["arguments"]); +} + INSTANTIATE_TEST_SUITE_P(dwarfs, tools_test, ::testing::ValuesIn(tools_test_modes));