| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | #include "pch.h" | |||
| 2 | ||||
| 3 | #include "buffered_writer.h" | |||
| 4 | ||||
| 5 | using ::testing::_; | |||
| 6 | using ::testing::Return; | |||
| 7 | using ::testing::StrictMock; | |||
| 8 | ||||
| 9 | template <int TBufferSize> | |||
| 10 | struct MockBufferedWriter : public BufferedWriter<TBufferSize> | |||
| 11 | { | |||
| 12 |
6/6MockBufferedWriter<50>::gmock_writeInternal(testing::Matcher<char const*> const&, testing::Matcher<unsigned long> const&):
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
MockBufferedWriter<10>::gmock_writeInternal(testing::Matcher<char const*> const&, testing::Matcher<unsigned long> const&):
✓ Branch 3 taken 6 times.
✓ Branch 7 taken 6 times.
✓ Branch 10 taken 6 times.
|
14 | MOCK_METHOD(size_t, writeInternal, (const char*, size_t), (override)); | |
| 13 | }; | |||
| 14 | ||||
| 15 | static const char* testBuffer = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; | |||
| 16 | ||||
| 17 | 4 | TEST(BufferedWriter, WriteSmall) { | ||
| 18 | // No calls to dut expected | |||
| 19 |
1/1✓ Branch 2 taken 1 time.
|
1 | StrictMock<MockBufferedWriter<10>> dut; | |
| 20 | ||||
| 21 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.write(testBuffer, 5)); | |
| 22 | 2 | } | ||
| 23 | ||||
| 24 | 4 | TEST(BufferedWriter, WriteSmallFlush) { | ||
| 25 |
1/1✓ Branch 2 taken 1 time.
|
1 | StrictMock<MockBufferedWriter<10>> dut; | |
| 26 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 5)).WillOnce(Return(5)); | |
| 27 | ||||
| 28 |
4/9✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 31 taken 1 time.
✗ Branch 32 not taken.
|
1 | ASSERT_EQ(0u, dut.write(testBuffer, 5)); | |
| 29 | ||||
| 30 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.flush(), 5u); | |
| 31 | 1 | } | ||
| 32 | ||||
| 33 | 4 | TEST(BufferedWriter, WriteMultipleSmall) { | ||
| 34 |
1/1✓ Branch 2 taken 1 time.
|
1 | StrictMock<MockBufferedWriter<10>> dut; | |
| 35 | { | |||
| 36 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 10)).WillOnce(Return(10)); | |
| 37 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 2)).WillOnce(Return(2)); | |
| 38 | } | |||
| 39 | ||||
| 40 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.write(testBuffer, 3)); | |
| 41 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.write(testBuffer, 3)); | |
| 42 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.write(testBuffer, 3)); | |
| 43 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(10u, dut.write(testBuffer, 3)); // <- this one should trigger a flush | |
| 44 | ||||
| 45 | // Flush the remainder | |||
| 46 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.flush(), 2u); | |
| 47 | 2 | } | ||
| 48 | ||||
| 49 | 4 | TEST(BufferedWriter, WriteSingleFullBufferSize) { | ||
| 50 |
1/1✓ Branch 2 taken 1 time.
|
1 | StrictMock<MockBufferedWriter<50>> dut; | |
| 51 | ||||
| 52 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 50)).WillOnce(Return(50)); | |
| 53 | ||||
| 54 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(50u, dut.write(testBuffer, 50)); | |
| 55 | ||||
| 56 | // Nothing left to flush! | |||
| 57 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.flush()); | |
| 58 | 2 | } | ||
| 59 | ||||
| 60 | 4 | TEST(BufferedWriter, WriteLarge) { | ||
| 61 |
1/1✓ Branch 2 taken 1 time.
|
1 | StrictMock<MockBufferedWriter<10>> dut; | |
| 62 | ||||
| 63 | { | |||
| 64 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 45)).WillOnce(Return(45)); | |
| 65 | } | |||
| 66 | ||||
| 67 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(45u, dut.write(testBuffer, 45)); | |
| 68 | ||||
| 69 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.flush()); | |
| 70 | 2 | } | ||
| 71 | ||||
| 72 | 4 | TEST(BufferedWriter, WriteLargeAfterSmall) { | ||
| 73 |
1/1✓ Branch 2 taken 1 time.
|
1 | StrictMock<MockBufferedWriter<10>> dut; | |
| 74 | ||||
| 75 | { | |||
| 76 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 10)).WillOnce(Return(10)); | |
| 77 |
8/8✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
|
1 | EXPECT_CALL(dut, writeInternal(_, 36)).WillOnce(Return(36)); | |
| 78 | } | |||
| 79 | ||||
| 80 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.write(testBuffer, 1)); | |
| 81 | ||||
| 82 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(46u, dut.write(testBuffer, 45)); | |
| 83 | ||||
| 84 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0u, dut.flush()); | |
| 85 | 2 | } | ||
| 86 |