blob: 8973a6c108f5aed3b3115ddb071cb89a7146df2e [file] [log] [blame]
Brian Silvermaneda63f32017-10-08 18:57:33 -04001#include "motors/usb/queue.h"
2
3#include "gtest/gtest.h"
4
Stephan Pleinesf63bde82024-01-13 15:59:33 -08005namespace frc971::teensy::testing {
Brian Silvermaneda63f32017-10-08 18:57:33 -04006
7TEST(QueueTest, Basic) {
8 Queue queue(64);
9 ASSERT_EQ(0u, queue.data_queued());
10 ASSERT_TRUE(queue.empty());
11 ASSERT_EQ(5u, queue.Write("abcde", 5));
12 ASSERT_EQ(5u, queue.data_queued());
13 ASSERT_FALSE(queue.empty());
14 char buffer[5];
15 ASSERT_EQ(5u, queue.Read(buffer, 5));
16 ASSERT_EQ("abcde", ::std::string(buffer, 5));
17 ASSERT_TRUE(queue.empty());
18}
19
20TEST(QueueTest, Fill) {
21 Queue queue(8);
22 ASSERT_EQ(0u, queue.data_queued());
23 ASSERT_EQ(7u, queue.Write("abcdefgh", 8));
24 ASSERT_EQ(7u, queue.data_queued());
25 char buffer[7];
26 ASSERT_EQ(7u, queue.Read(buffer, 100));
27 ASSERT_EQ("abcdefg", ::std::string(buffer, 7));
28 ASSERT_TRUE(queue.empty());
29
30 ASSERT_EQ(3u, queue.Write("xyz", 3));
31 ASSERT_EQ(3u, queue.Read(buffer, 100));
32 ASSERT_EQ(0u, queue.data_queued());
33
34 ASSERT_EQ(7u, queue.Write("abcdefgh", 8));
35 ASSERT_EQ(7u, queue.data_queued());
36 ASSERT_EQ(7u, queue.Read(buffer, 100));
37 ASSERT_EQ("abcdefg", ::std::string(buffer, 7));
38 ASSERT_TRUE(queue.empty());
39}
40
Stephan Pleinesf63bde82024-01-13 15:59:33 -080041} // namespace frc971::teensy::testing