stack-test.cpp 1.4 KB

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