Mon, 25 Jul 2022 15:40:27 +0200
#170 test cxBufferRead
test/test_buffer.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/test/test_buffer.cpp Mon Jul 25 15:34:19 2022 +0200 1.2 +++ b/test/test_buffer.cpp Mon Jul 25 15:40:27 2022 +0200 1.3 @@ -777,3 +777,39 @@ 1.4 buf.pos = buf.size; 1.5 EXPECT_EQ(cxBufferGet(&buf), EOF); 1.6 } 1.7 + 1.8 +TEST_F(BufferRead, ReadWithinBounds) { 1.9 + buf.pos = 2; 1.10 + char target[4]; 1.11 + auto read = cxBufferRead(&target, 1, 4, &buf); 1.12 + ASSERT_EQ(read, 4); 1.13 + EXPECT_EQ(memcmp(&target, "me d", 4), 0); 1.14 + EXPECT_EQ(buf.pos, 6); 1.15 +} 1.16 + 1.17 +TEST_F(BufferRead, ReadOutOfBounds) { 1.18 + buf.pos = 6; 1.19 + char target[4]; 1.20 + auto read = cxBufferRead(&target, 1, 4, &buf); 1.21 + ASSERT_EQ(read, 3); 1.22 + EXPECT_EQ(memcmp(&target, "ata", 3), 0); 1.23 + EXPECT_EQ(buf.pos, 9); 1.24 +} 1.25 + 1.26 +TEST_F(BufferRead, ReadOutOfBoundsMultibyte) { 1.27 + buf.pos = 6; 1.28 + char target[4]; 1.29 + target[2] = '\0'; 1.30 + auto read = cxBufferRead(&target, 2, 2, &buf); 1.31 + ASSERT_EQ(read, 1); 1.32 + EXPECT_EQ(memcmp(&target, "at\0", 3), 0); 1.33 + EXPECT_EQ(buf.pos, 8); 1.34 +} 1.35 + 1.36 +TEST_F(BufferRead, ReadEof) { 1.37 + buf.pos = 9; 1.38 + char target[4]; 1.39 + auto read = cxBufferRead(&target, 1, 1, &buf); 1.40 + ASSERT_EQ(read, 0); 1.41 + EXPECT_EQ(buf.pos, 9); 1.42 +}