stack-test.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "test_common.h"
  2. TEST_START
  3. TEST(stack, NEW) {
  4. Stack s;
  5. stack_init(&s);
  6. stack_deinit(&s);
  7. EXPECT_EQ(pikaMemNow(), 0);
  8. }
  9. TEST(stack, size) {
  10. Stack s;
  11. stack_init(&s);
  12. stack_pushSize(&s, 10);
  13. stack_pushSize(&s, 20);
  14. stack_pushSize(&s, 30);
  15. EXPECT_EQ(stack_popSize(&s), 30);
  16. EXPECT_EQ(stack_popSize(&s), 20);
  17. EXPECT_EQ(stack_popSize(&s), 10);
  18. stack_deinit(&s);
  19. EXPECT_EQ(pikaMemNow(), 0);
  20. }
  21. TEST(stack, arg) {
  22. Stack s;
  23. stack_init(&s);
  24. Arg* arg1 = arg_newInt(10);
  25. Arg* arg2 = arg_newInt(20);
  26. Arg* arg3 = arg_newInt(30);
  27. stack_pushArg(&s, arg1);
  28. stack_pushArg(&s, arg2);
  29. stack_pushArg(&s, arg3);
  30. Arg* arg4 = stack_popArg_alloc(&s);
  31. Arg* arg5 = stack_popArg_alloc(&s);
  32. Arg* arg6 = stack_popArg_alloc(&s);
  33. EXPECT_EQ(arg_getInt(arg4), 30);
  34. EXPECT_EQ(arg_getInt(arg5), 20);
  35. EXPECT_EQ(arg_getInt(arg6), 10);
  36. stack_deinit(&s);
  37. arg_deinit(arg4);
  38. arg_deinit(arg5);
  39. arg_deinit(arg6);
  40. EXPECT_EQ(pikaMemNow(), 0);
  41. }
  42. TEST(stack, str) {
  43. Stack s;
  44. stack_init(&s);
  45. stack_pushStr(&s, "abc");
  46. stack_pushStr(&s, "123");
  47. stack_pushStr(&s, "xyz");
  48. char buff[32] = {0};
  49. EXPECT_STREQ(stack_popStr(&s, buff), "xyz");
  50. EXPECT_STREQ(stack_popStr(&s, buff), "123");
  51. EXPECT_STREQ(stack_popStr(&s, buff), "abc");
  52. stack_deinit(&s);
  53. EXPECT_EQ(pikaMemNow(), 0);
  54. }
  55. TEST(stack, get_str) {
  56. Stack s;
  57. stack_init(&s);
  58. stack_pushStr(&s, "abc");
  59. stack_pushStr(&s, "123");
  60. stack_pushStr(&s, "xyz");
  61. EXPECT_STREQ(arg_getStr(stack_checkArg(&s, 0)), "xyz");
  62. EXPECT_STREQ(arg_getStr(stack_checkArg(&s, 0)), "xyz");
  63. EXPECT_STREQ(arg_getStr(stack_checkArg(&s, 1)), "123");
  64. EXPECT_STREQ(arg_getStr(stack_checkArg(&s, 2)), "abc");
  65. stack_deinit(&s);
  66. EXPECT_EQ(pikaMemNow(), 0);
  67. }
  68. TEST_END