queue-test.cpp 4.1 KB

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