hal-test.cpp 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "test_common.h"
  2. TEST(hal, open) {
  3. pika_dev* io = pika_hal_open(PIKA_HAL_GPIO, "PA10");
  4. pika_hal_close(io);
  5. EXPECT_EQ(pikaMemNow(), 0);
  6. }
  7. TEST(hal, cq_init) {
  8. pika_hal_CircularQueue* cq = pika_hal_circularQueue_create(10);
  9. pika_hal_circularQueue_deinit(cq);
  10. EXPECT_EQ(pikaMemNow(), 0);
  11. }
  12. TEST(hal, cq_enqueue_dequeue) {
  13. pika_hal_CircularQueue* cq = pika_hal_circularQueue_create(10);
  14. pika_hal_circularQueue_enqueue(cq, 1);
  15. pika_hal_circularQueue_enqueue(cq, 2);
  16. pika_hal_circularQueue_enqueue(cq, 3);
  17. uint8_t recv = 0;
  18. pika_hal_circularQueue_dequeue(cq, &recv);
  19. EXPECT_EQ(recv, 1);
  20. pika_hal_circularQueue_dequeue(cq, &recv);
  21. EXPECT_EQ(recv, 2);
  22. pika_hal_circularQueue_dequeue(cq, &recv);
  23. EXPECT_EQ(recv, 3);
  24. pika_hal_circularQueue_deinit(cq);
  25. EXPECT_EQ(pikaMemNow(), 0);
  26. }
  27. TEST(hal, cq_enqueue_overflow) {
  28. pika_hal_CircularQueue* cq = pika_hal_circularQueue_create(10);
  29. for (int i = 0; i < 10; i++) {
  30. pika_hal_circularQueue_enqueue(cq, i);
  31. }
  32. EXPECT_EQ(pika_hal_circularQueue_enqueue(cq, 10), -1);
  33. pika_hal_circularQueue_deinit(cq);
  34. EXPECT_EQ(pikaMemNow(), 0);
  35. }
  36. TEST(hal, cq_dequeue_empty) {
  37. pika_hal_CircularQueue* cq = pika_hal_circularQueue_create(10);
  38. uint8_t recv = 0;
  39. EXPECT_EQ(pika_hal_circularQueue_dequeue(cq, &recv), -1);
  40. pika_hal_circularQueue_deinit(cq);
  41. EXPECT_EQ(pikaMemNow(), 0);
  42. }
  43. TEST(hal, cq_enqueue_dequeue_wrap) {
  44. pika_hal_CircularQueue* cq = pika_hal_circularQueue_create(10);
  45. for (int i = 0; i < 10; i++) {
  46. pika_hal_circularQueue_enqueue(cq, i);
  47. }
  48. uint8_t recv = 0;
  49. for (int i = 0; i < 10; i++) {
  50. pika_hal_circularQueue_dequeue(cq, &recv);
  51. EXPECT_EQ(recv, i);
  52. }
  53. pika_hal_circularQueue_deinit(cq);
  54. EXPECT_EQ(pikaMemNow(), 0);
  55. }
  56. TEST(hal, cq_enqueue_dequeue_wrap2) {
  57. pika_hal_CircularQueue* cq = pika_hal_circularQueue_create(10);
  58. for (int i = 0; i < 10; i++) {
  59. pika_hal_circularQueue_enqueue(cq, i);
  60. }
  61. uint8_t recv = 0;
  62. for (int i = 0; i < 5; i++) {
  63. pika_hal_circularQueue_dequeue(cq, &recv);
  64. EXPECT_EQ(recv, i);
  65. }
  66. for (int i = 10; i < 15; i++) {
  67. pika_hal_circularQueue_enqueue(cq, i);
  68. }
  69. for (int i = 5; i < 15; i++) {
  70. pika_hal_circularQueue_dequeue(cq, &recv);
  71. EXPECT_EQ(recv, i);
  72. }
  73. pika_hal_circularQueue_deinit(cq);
  74. EXPECT_EQ(pikaMemNow(), 0);
  75. }