#include #include #include "analytics/SerdeStructVisitor.h" #include "fbs/meta/Schema.h" #include "fbs/storage/Common.h" #include "tests/GtestHelpers.h" namespace hf3fs::analytics { class DebugStructVisitor : public BaseStructVisitor { public: // default template void visit(std::string_view k) = delete; template <> void visit(std::string_view k) { XLOGF(DBG3, "uint16_t visit({})", k); } template <> void visit(std::string_view k) { XLOGF(DBG3, "uint32_t visit({})", k); } template <> void visit(std::string_view k) { XLOGF(DBG3, "uint64_t visit({})", k); } template <> void visit(std::string_view k) { XLOGF(DBG3, "int16_t visit({})", k); } template <> void visit(std::string_view k) { XLOGF(DBG3, "int32_t visit({})", k); } template <> void visit(std::string_view k) { XLOGF(DBG3, "int64_t visit({})", k); } template requires std::is_enum_v void visit(std::string_view k) { XLOGF(DBG3, "enum visit({})", k); } template void visit(std::string_view k) { XLOGF(DBG3, "string visit({})", k); } template void visit(std::string_view k) { XLOGF(DBG3, "strongtyped visit({})", k); BaseStructVisitor::visit(k); } template void visit(std::string_view k) { XLOGF(DBG3, "serdetype visit({})", k); BaseStructVisitor::visit(k); } template void visit(std::string_view k) { XLOGF(DBG3, "WithReadableSerdeMethod visit({})", k); visit>(k); } template void visit(std::string_view k) { XLOGF(DBG3, "WithSerdeMethod visit({})", k); visit>(k); } template void visit(std::string_view k) { XLOGF(DBG3, "WithReadableSerdeMemberMethod visit({})", k); visit>(k); } template void visit(std::string_view k) { XLOGF(DBG3, "WithSerdeMemberMethod visit({})", k); visit>(k); } template requires is_variant_v void visit(std::string_view k) { XLOGF(DBG3, "variant visit({})", k); BaseStructVisitor::visit(k); } template requires is_vector_v || is_set_v void visit(std::string_view k) { XLOGF(DBG3, "container visit({})", k); BaseStructVisitor::visit(k); } template requires is_optional_v void visit(std::string_view k) { XLOGF(DBG3, "container visit({})", k); BaseStructVisitor::visit(k); } }; TEST(TestSerdeStructVisitor, ChunkId) { DebugStructVisitor visitor; visitor.visit("chunkId"); } TEST(TestSerdeStructVisitor, ChunkMeta) { DebugStructVisitor visitor; visitor.visit("chunkmeta"); } TEST(TestSerdeStructVisitor, InodeId) { DebugStructVisitor visitor; visitor.visit("inodeId"); } TEST(TestSerdeStructVisitor, Inode) { DebugStructVisitor visitor; visitor.visit("inode"); } TEST(TestSerdeStructVisitor, DirEntry) { DebugStructVisitor visitor; visitor.visit("dirEntry"); } } // namespace hf3fs::analytics