queue-test.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #include "gtest/gtest.h"
  2. extern "C" {
  3. #include "BaseObj.h"
  4. #include "dataMemory.h"
  5. #include "dataQueue.h"
  6. #include "dataQueueObj.h"
  7. }
  8. static int mem;
  9. TEST(queue, NEW) {
  10. Queue* q = New_queue();
  11. queue_deinit(q);
  12. EXPECT_EQ(pikaMemNow(), 0);
  13. }
  14. TEST(queue, INT) {
  15. Queue* q = New_queue();
  16. queue_pushInt(q, 1);
  17. queue_pushInt(q, 2);
  18. queue_pushInt(q, 3);
  19. EXPECT_EQ(queue_popInt(q), 1);
  20. EXPECT_EQ(queue_popInt(q), 2);
  21. EXPECT_EQ(queue_popInt(q), 3);
  22. queue_deinit(q);
  23. EXPECT_EQ(pikaMemNow(), 0);
  24. }
  25. TEST(queue, arg) {
  26. Queue* q = New_queue();
  27. Arg* arg1 = arg_setInt(NULL, (char*)"", 1);
  28. Arg* arg2 = arg_setFloat(NULL, (char*)"", 1.2);
  29. Arg* arg3 = arg_setStr(NULL, (char*)"", (char*)"ij");
  30. queue_pushArg(q, arg1);
  31. queue_pushArg(q, arg2);
  32. queue_pushArg(q, arg3);
  33. EXPECT_EQ(arg_getInt(queue_popArg(q)), 1);
  34. EXPECT_FLOAT_EQ(arg_getFloat(queue_popArg(q)), 1.2);
  35. EXPECT_STREQ(arg_getStr(queue_popArg(q)), (char*)"ij");
  36. queue_deinit(q);
  37. EXPECT_EQ(pikaMemNow(), 0);
  38. }
  39. TEST(queue, FLOAT) {
  40. Queue* q = New_queue();
  41. queue_pushFloat(q, 1.1f);
  42. queue_pushFloat(q, 2.2f);
  43. queue_pushFloat(q, 3.3f);
  44. EXPECT_EQ(queue_popFloat(q), 1.1f);
  45. EXPECT_EQ(queue_popFloat(q), 2.2f);
  46. EXPECT_EQ(queue_popFloat(q), 3.3f);
  47. queue_deinit(q);
  48. EXPECT_EQ(pikaMemNow(), 0);
  49. }
  50. TEST(queue, str) {
  51. Queue* q = New_queue();
  52. queue_pushStr(q, (char*)"abc");
  53. queue_pushStr(q, (char*)"123");
  54. queue_pushStr(q, (char*)"xyz");
  55. EXPECT_STREQ(queue_popStr(q), (char*)"abc");
  56. EXPECT_STREQ(queue_popStr(q), (char*)"123");
  57. EXPECT_STREQ(queue_popStr(q), (char*)"xyz");
  58. queue_deinit(q);
  59. EXPECT_EQ(pikaMemNow(), 0);
  60. }
  61. TEST(queueObj, init) {
  62. QueueObj* q = TinyObj(NULL);
  63. queueObj_init(q);
  64. obj_deinit(q);
  65. EXPECT_EQ(pikaMemNow(), 0);
  66. }
  67. TEST(queueObj, INT) {
  68. QueueObj* q = TinyObj(NULL);
  69. queueObj_init(q);
  70. queueObj_pushInt(q, 1);
  71. queueObj_pushInt(q, 2);
  72. queueObj_pushInt(q, 3);
  73. EXPECT_EQ(queueObj_popInt(q), 1);
  74. EXPECT_EQ(queueObj_popInt(q), 2);
  75. EXPECT_EQ(queueObj_popInt(q), 3);
  76. obj_deinit(q);
  77. EXPECT_EQ(pikaMemNow(), 0);
  78. }
  79. TEST(queueObj, FLOAT) {
  80. QueueObj* q = TinyObj(NULL);
  81. queueObj_init(q);
  82. queueObj_pushFloat(q, 1.1f);
  83. queueObj_pushFloat(q, 2.2f);
  84. queueObj_pushFloat(q, 3.3f);
  85. EXPECT_EQ(queueObj_popFloat(q), 1.1f);
  86. EXPECT_EQ(queueObj_popFloat(q), 2.2f);
  87. EXPECT_EQ(queueObj_popFloat(q), 3.3f);
  88. obj_deinit(q);
  89. EXPECT_EQ(pikaMemNow(), 0);
  90. }
  91. TEST(queueObj, str) {
  92. QueueObj* q = TinyObj(NULL);
  93. queueObj_init(q);
  94. queueObj_pushStr(q, (char*)"abc");
  95. queueObj_pushStr(q, (char*)"123");
  96. queueObj_pushStr(q, (char*)"xyz");
  97. EXPECT_STREQ(queueObj_popStr(q), (char*)"abc");
  98. EXPECT_STREQ(queueObj_popStr(q), (char*)"123");
  99. EXPECT_STREQ(queueObj_popStr(q), (char*)"xyz");
  100. obj_deinit(q);
  101. EXPECT_EQ(pikaMemNow(), 0);
  102. }
  103. TEST(queueObj, obj) {
  104. QueueObj* q = TinyObj(NULL);
  105. queueObj_init(q);
  106. queueObj_pushObj(q, (char*)"type1");
  107. queueObj_pushObj(q, (char*)"type2");
  108. queueObj_pushObj(q, (char*)"type3");
  109. PikaObj* obj1 = queueObj_popObj(q);
  110. PikaObj* obj2 = queueObj_popObj(q);
  111. PikaObj* obj3 = queueObj_popObj(q);
  112. PikaObj* obj4 = queueObj_popObj(q);
  113. EXPECT_NE((int64_t)obj1, 0);
  114. EXPECT_NE((int64_t)obj2, 0);
  115. EXPECT_NE((int64_t)obj3, 0);
  116. EXPECT_EQ((int64_t)obj4, 0);
  117. obj_deinit(q);
  118. EXPECT_EQ(pikaMemNow(), 0);
  119. }
  120. TEST(queueObj, currentObj) {
  121. QueueObj* q = TinyObj(NULL);
  122. queueObj_init(q);
  123. queueObj_pushObj(q, (char*)"type1");
  124. PikaObj* currentObj = queueObj_getCurrentObj(q);
  125. char* type = args_getType(q->attributeList, (char*)"0");
  126. obj_setInt(queueObj_getCurrentObj(q), (char*)"test", 1);
  127. queueObj_pushObj(q, (char*)"type2");
  128. obj_setInt(queueObj_getCurrentObj(q), (char*)"test", 2);
  129. queueObj_pushObj(q, (char*)"type3");
  130. obj_setInt(queueObj_getCurrentObj(q), (char*)"test", 3);
  131. PikaObj* obj1 = queueObj_popObj(q);
  132. PikaObj* obj2 = queueObj_popObj(q);
  133. PikaObj* obj3 = queueObj_popObj(q);
  134. PikaObj* obj4 = queueObj_popObj(q);
  135. EXPECT_NE((int64_t)obj1, 0);
  136. EXPECT_NE((int64_t)obj2, 0);
  137. EXPECT_NE((int64_t)obj3, 0);
  138. EXPECT_EQ((int64_t)obj4, 0);
  139. EXPECT_EQ(obj_getInt(obj1, (char*)"test"), 1);
  140. EXPECT_EQ(obj_getInt(obj2, (char*)"test"), 2);
  141. EXPECT_EQ(obj_getInt(obj3, (char*)"test"), 3);
  142. obj_deinit(q);
  143. EXPECT_EQ(pikaMemNow(), 0);
  144. }