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