#include #include #include "simplesync.hpp" TEST(simplesync_test, varint) { uint8_t buf[1024]; for (int i = -999999; i < 999999; i += 29) { int offset = simplesync::encode_varint(i, buf); ASSERT_LE(1, offset); for (int o = 0; o < offset - 1; o += 1) EXPECT_FALSE(buf[o] & 0x80) << "offset:" << offset << " " << (uint32_t)(buf[o] & 0x7F); EXPECT_TRUE(buf[offset - 1] & 0x80) << "offset:" << offset << " " << (uint32_t)(buf[offset - 1] & 0x7F); int out; offset = simplesync::decode_varint(buf, out); ASSERT_LE(1, offset); ASSERT_EQ(out, i); } } TEST(simplesync_test, encode_decode) { uint8_t buf[1024]; unsigned int buf_size = sizeof(buf); simplesync::SimpleSync s; int number = 42; simplesync::NumberPointerInterface number_if("n1", &number, s); ASSERT_EQ(s.num_interfaces(), 1); number_if.sync_requested = true; int buf_used = s.generate_message(buf, buf_size); ASSERT_LE(1, buf_used); number = 0; int buf_parsed = s.update(buf, buf_used); ASSERT_LE(0, buf_parsed); ASSERT_EQ(buf_parsed, buf_used); ASSERT_EQ(number, 42); } /*#include TEST(simplesync_test, encode_decode) { const char* test_str_key = "stringKey"; const char* test_str_value = "Just a medium length string"; // This is the buffer to be used by the library. uint8_t buffer[256]; BSONPP doc(buffer, sizeof(buffer)); doc.append(test_str_key, "Just a medium length string"); doc.append("num", 10234234); // To read BSON from a buffer pass in the buffer, length and false. By default // when passed a buffer it clears the buffer and initialises a new BSON // object. Set false to avoid that. BSONPP parsed(buffer, sizeof(buffer), false); char *val; ASSERT_EQ(BSONPP_SUCCESS, parsed.get(test_str_key, &val)); EXPECT_STREQ(val, test_str_value); // ASSERT_TRUE(strcmp(decoded.str, "Hello") == 0); }*/ int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }