queue-test.cpp 4.1 KB

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