6 #include <gtest/gtest.h>
16 ASSERT_GE(40,
sizeof(CanTxQueueEntry));
23 CanTxQueue queue(pool, clockmock, 99999);
24 EXPECT_TRUE(queue.isEmpty());
40 queue.push(f4,
tsMono(100), flags);
41 EXPECT_FALSE(queue.isEmpty());
42 EXPECT_TRUE(queue.contains(f4));
43 EXPECT_EQ(1, queue.getSize());
46 EXPECT_EQ(f4, queue.peek()->frame);
47 EXPECT_TRUE(queue.topPriorityHigherOrEqual(f5));
48 EXPECT_TRUE(queue.topPriorityHigherOrEqual(f4));
49 EXPECT_FALSE(queue.topPriorityHigherOrEqual(f3));
51 queue.push(f3,
tsMono(200), flags);
52 EXPECT_EQ(f3, queue.peek()->frame);
53 EXPECT_EQ(2, queue.getSize());
56 queue.push(f0,
tsMono(300), flags);
57 EXPECT_EQ(f0, queue.peek()->frame);
58 EXPECT_EQ(3, queue.getSize());
61 queue.push(f1,
tsMono(400), flags);
62 EXPECT_EQ(f0, queue.peek()->frame);
63 EXPECT_TRUE(queue.topPriorityHigherOrEqual(f0));
64 EXPECT_TRUE(queue.topPriorityHigherOrEqual(f1));
66 EXPECT_EQ(0, queue.getRejectedFrameCount());
67 EXPECT_EQ(4, queue.getSize());
69 EXPECT_TRUE(queue.contains(f0));
70 EXPECT_TRUE(queue.contains(f1));
71 EXPECT_TRUE(queue.contains(f3));
72 EXPECT_TRUE(queue.contains(f4));
74 EXPECT_FALSE(queue.contains(f2));
75 EXPECT_FALSE(queue.contains(f5));
76 EXPECT_FALSE(queue.contains(f6));
82 CanTxQueueEntry* entry = queue.peek();
87 EXPECT_EQ(3, queue.getSize());
89 EXPECT_FALSE(queue.contains(f0));
90 EXPECT_TRUE(queue.contains(f1));
91 EXPECT_TRUE(queue.contains(f3));
92 EXPECT_TRUE(queue.contains(f4));
93 EXPECT_FALSE(queue.contains(f2));
94 EXPECT_FALSE(queue.contains(f5));
95 EXPECT_FALSE(queue.contains(f6));
98 queue.remove(queue.peek());
101 EXPECT_FALSE(queue.peek());
102 EXPECT_FALSE(queue.contains(f0));
103 EXPECT_FALSE(queue.contains(f5));
105 EXPECT_EQ(0, queue.getSize());
107 EXPECT_FALSE(queue.peek());
108 EXPECT_FALSE(queue.topPriorityHigherOrEqual(f0));
114 queue.push(f0,
tsMono(999), flags);
115 queue.push(f4,
tsMono(101), flags);
118 EXPECT_TRUE(queue.contains(f0));
119 EXPECT_TRUE(queue.contains(f4));
121 CanTxQueueEntry* peek = queue.peek();
122 EXPECT_EQ(f0, peek->frame);
126 EXPECT_EQ(1, queue.getSize());
129 EXPECT_FALSE(queue.peek());
130 EXPECT_FALSE(queue.contains(f4));
132 EXPECT_EQ(0, queue.getSize());
135 queue.push(f4,
tsMono(98), flags);
137 EXPECT_FALSE(queue.peek());
138 EXPECT_EQ(1, queue.getRejectedFrameCount());
139 EXPECT_EQ(0, queue.getSize());
146 queue.push(f0,
tsMono(900), flags);
149 queue.push(f1,
tsMono(1000), flags);
152 queue.push(f2,
tsMono(1100), flags);
155 queue.push(f3,
tsMono(1200), flags);
157 EXPECT_TRUE(queue.contains(f3));
159 queue.push(f4,
tsMono(1300), flags);
161 EXPECT_FALSE(queue.contains(f4));
163 EXPECT_EQ(4, queue.getSize());
165 EXPECT_FALSE(queue.contains(f4));
166 EXPECT_EQ(2, queue.getRejectedFrameCount());
173 queue.remove(queue.peek());
176 EXPECT_EQ(0, queue.getSize());