Files
3FS/tests/common/serde/TestMessagePacket.cc
2025-02-27 21:53:53 +08:00

35 lines
805 B
C++

#include "common/serde/MessagePacket.h"
#include "common/serde/Serde.h"
#include "tests/GtestHelpers.h"
namespace hf3fs::serde::test {
namespace {
struct Demo {
bool operator==(const Demo &) const = default;
SERDE_STRUCT_FIELD(foo, int{}, nullptr);
SERDE_STRUCT_FIELD(bar, std::string{}, nullptr);
};
TEST(TestMessagePacket, Normal) {
// send.
Demo req;
req.foo = 100;
req.bar = "Good";
MessagePacket send(req);
auto bytes = serde::serialize(send);
XLOGF(INFO, "send json: {}, binary: {:02X}", send, fmt::join(bytes, "-"));
// recv.
MessagePacket recv;
ASSERT_OK(serde::deserialize(recv, bytes));
Demo rsp;
ASSERT_OK(serde::deserialize(rsp, recv.payload));
ASSERT_EQ(req, rsp);
XLOGF(INFO, "rsp json: {}", rsp);
}
} // namespace
} // namespace hf3fs::serde::test