test_iobuffer.cpp 928 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "iobuffer.h"
  2. #ifdef TEST_WITH_CTEST
  3. int test_iobuffer(int argc, char* argv[])
  4. {
  5. return 0;
  6. }
  7. #else
  8. #include <gtest/gtest.h>
  9. TEST(LibToolkitTest, IOBufferTest) {
  10. int v;
  11. char* str;
  12. iobuffer_t* iob = iobuffer_create(-1, -1);
  13. v = 1;
  14. iobuffer_write(iob, IOBUF_T_I4, &v, 0);
  15. v = 2;
  16. iobuffer_write(iob, IOBUF_T_I4, &v, 0);
  17. v = 3;
  18. iobuffer_write(iob, IOBUF_T_I4, &v, 0);
  19. v = 0;
  20. iobuffer_write_head(iob, IOBUF_T_I4, &v, 0);
  21. iobuffer_write(iob, IOBUF_T_STR, "abc", -1);
  22. iobuffer_read(iob, IOBUF_T_I4, &v, NULL);
  23. ASSERT_EQ(0, v);
  24. iobuffer_read(iob, IOBUF_T_I4, &v, NULL);
  25. ASSERT_EQ(1, v);
  26. iobuffer_read(iob, IOBUF_T_I4, &v, NULL);
  27. ASSERT_EQ(2, v);
  28. iobuffer_read(iob, IOBUF_T_I4, &v, NULL);
  29. ASSERT_EQ(3, v);
  30. iobuffer_read(iob, IOBUF_T_STR, NULL, &v);
  31. str = (char*)malloc(v + 1);
  32. iobuffer_read(iob, IOBUF_T_STR, str, NULL);
  33. ASSERT_STREQ("abc", str);
  34. free(str);
  35. iobuffer_destroy(iob);
  36. }
  37. #endif