| 700 | } |
| 701 | |
| 702 | template <typename T> void test_roundtrip(const T &original) { |
| 703 | auto fory = |
| 704 | Fory::builder().xlang(true).compatible(false).track_ref(false).build(); |
| 705 | register_all_test_types(fory); |
| 706 | |
| 707 | auto serialize_result = fory.serialize(original); |
| 708 | ASSERT_TRUE(serialize_result.ok()) |
| 709 | << "Serialization failed: " << serialize_result.error().to_string(); |
| 710 | |
| 711 | std::vector<uint8_t> bytes = std::move(serialize_result).value(); |
| 712 | ASSERT_GT(bytes.size(), 0); |
| 713 | |
| 714 | auto deserialize_result = fory.deserialize<T>(bytes.data(), bytes.size()); |
| 715 | ASSERT_TRUE(deserialize_result.ok()) |
| 716 | << "Deserialization failed: " << deserialize_result.error().to_string(); |
| 717 | |
| 718 | T deserialized = std::move(deserialize_result).value(); |
| 719 | EXPECT_EQ(original, deserialized); |
| 720 | } |
| 721 | |
| 722 | // ============================================================================ |
| 723 | // TESTS |
no test coverage detected