Example #1
0
TEST(Recursive, Tree) {
  RecTree tree;
  RecTree child;
  tree.children.push_back(child);

  ThriftSerializerBinary<void> serializer;
  std::string serialized;
  serializer.serialize(tree, &serialized);

  RecTree result;
  serializer.deserialize(serialized, &result);
  EXPECT_EQ(tree, result);
}
Example #2
0
TEST(Recursive, CoRec) {
  CoRec c;
  std::unique_ptr<CoRec2> r(new CoRec2);
  c.other = std::move(r);

  ThriftSerializerBinary<void> serializer;
  std::string serialized;
  serializer.serialize(c, &serialized);

  RecList result;
  serializer.deserialize(serialized, &result);
  EXPECT_TRUE(c.other != nullptr);
  EXPECT_TRUE(c.other->other.other == nullptr);
}
Example #3
0
TEST(Recursive, list) {
  RecList l;
  std::unique_ptr<RecList> l2(new RecList);
  l.next = std::move(l2);

  ThriftSerializerBinary<void> serializer;
  std::string serialized;
  serializer.serialize(l, &serialized);

  RecList result;
  serializer.deserialize(serialized, &result);
  EXPECT_TRUE(result.next != nullptr);
  EXPECT_TRUE(result.next->next == nullptr);
}
TEST(Main, ThriftSerializerBinaryTest_Fail) {
  ThriftSerializerBinary<> izer;
  TestValue result;
  string serialized;
  TestValue original;

  makeTestValue(&original);

  // serialize and modify
  izer.serialize(original, &serialized);
  serialized += "Garbage";

  EXPECT_GT(serialized.length(), izer.deserialize(serialized, &result));
}
void BM_ThriftSerializerBinary_NoReuse(int count) {
  // devrs003.snc1 12/2008: 100K in 444 ms

  TestValue result;
  string serialized;
  TestValue original;

  makeTestValue(&original);

  for (int i = 0; i < count; ++i) {
    ThriftSerializerBinary<> izer;
    izer.serialize(original, &serialized);
  }
  for (int i = 0; i < count; ++i) {
    ThriftSerializerBinary<> izer;
    izer.deserialize(serialized, &result);
  }
}
void BM_ThriftSerializerBinary(int count) {
  // devrs003.sctm 9/2008: 100K in 413 ms
  // devrs003.snc1 12/2008: 100K in 292 ms

  TestValue original;
  makeTestValue(&original);

  ThriftSerializerBinary<> izer;
  string serialized;
  for (int i = 0; i < count; ++i) {
    izer.serialize(original, &serialized);
  }

  TestValue result;
  for (int i = 0; i < count; ++i) {
    izer.deserialize(serialized, &result);
  }
}
TEST(Main, ThriftSerializerBinaryTest) {
  ThriftSerializerBinary<> izer;
  TestValue result;
  string serialized;
  TestValue original;

  makeTestValue(&original);

  // serialize and deserialize
  izer.serialize(original, &serialized);
  EXPECT_EQ(serialized.length(), izer.deserialize(serialized, &result));

  expectEqualValues(original, result);

  // invoke the routines again in a strange order
  //
  // note: The implementation, we happen to know, tries to be clever
  // about reusing resources, so we'd like to test it.
  original.legalClicks = 1;
  EXPECT_EQ(serialized.length(), izer.deserialize(serialized, &result));
  izer.serialize(original, &serialized);
  izer.serialize(original, &serialized);
  EXPECT_EQ(serialized.length(), izer.deserialize(serialized, &result));

  expectEqualValues(original, result);
}