143 EXPECT_EQ(buf.pos, 4); |
143 EXPECT_EQ(buf.pos, 4); |
144 EXPECT_EQ(buf.size, 4); |
144 EXPECT_EQ(buf.size, 4); |
145 EXPECT_TRUE(memcmp(buf.space, "test________", 8) == 0); |
145 EXPECT_TRUE(memcmp(buf.space, "test________", 8) == 0); |
146 } |
146 } |
147 |
147 |
|
148 TEST_F(BufferShiftLeft, ZeroOffsetInterface) { |
|
149 ASSERT_EQ(buf.pos, 4); |
|
150 ASSERT_EQ(buf.size, 4); |
|
151 int ret = cxBufferShift(&buf, -0); |
|
152 EXPECT_EQ(ret, 0); |
|
153 EXPECT_EQ(buf.pos, 4); |
|
154 EXPECT_EQ(buf.size, 4); |
|
155 EXPECT_TRUE(memcmp(buf.space, "test________", 8) == 0); |
|
156 } |
|
157 |
148 TEST_F(BufferShiftLeft, Standard) { |
158 TEST_F(BufferShiftLeft, Standard) { |
149 ASSERT_EQ(buf.pos, 4); |
159 ASSERT_EQ(buf.pos, 4); |
150 ASSERT_EQ(buf.size, 4); |
160 ASSERT_EQ(buf.size, 4); |
151 int ret = cxBufferShiftLeft(&buf, 2); |
161 int ret = cxBufferShiftLeft(&buf, 2); |
152 EXPECT_EQ(ret, 0); |
162 EXPECT_EQ(ret, 0); |
190 |
200 |
191 TEST_F(BufferShiftRight, Zero) { |
201 TEST_F(BufferShiftRight, Zero) { |
192 ASSERT_EQ(buf.pos, 4); |
202 ASSERT_EQ(buf.pos, 4); |
193 ASSERT_EQ(buf.size, 4); |
203 ASSERT_EQ(buf.size, 4); |
194 int ret = cxBufferShiftRight(&buf, 0); |
204 int ret = cxBufferShiftRight(&buf, 0); |
|
205 EXPECT_EQ(ret, 0); |
|
206 EXPECT_EQ(buf.pos, 4); |
|
207 EXPECT_EQ(buf.size, 4); |
|
208 EXPECT_TRUE(memcmp(buf.space, "test________", 8) == 0); |
|
209 } |
|
210 |
|
211 TEST_F(BufferShiftRight, ZeroOffsetInterface) { |
|
212 ASSERT_EQ(buf.pos, 4); |
|
213 ASSERT_EQ(buf.size, 4); |
|
214 int ret = cxBufferShift(&buf, +0); |
195 EXPECT_EQ(ret, 0); |
215 EXPECT_EQ(ret, 0); |
196 EXPECT_EQ(buf.pos, 4); |
216 EXPECT_EQ(buf.pos, 4); |
197 EXPECT_EQ(buf.size, 4); |
217 EXPECT_EQ(buf.size, 4); |
198 EXPECT_TRUE(memcmp(buf.space, "test________", 8) == 0); |
218 EXPECT_TRUE(memcmp(buf.space, "test________", 8) == 0); |
199 } |
219 } |
557 EXPECT_LE(buf.capacity, 12); |
577 EXPECT_LE(buf.capacity, 12); |
558 EXPECT_EQ(target.pos, 15); |
578 EXPECT_EQ(target.pos, 15); |
559 ASSERT_EQ(target.size, 15); |
579 ASSERT_EQ(target.size, 15); |
560 EXPECT_EQ(memcmp(target.space, "prepfoobarhello", 15), 0); |
580 EXPECT_EQ(memcmp(target.space, "prepfoobarhello", 15), 0); |
561 } |
581 } |
|
582 |
|
583 class BufferSeek : public ::testing::Test { |
|
584 protected: |
|
585 void SetUp() override { |
|
586 cxBufferInit(&buf, nullptr, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); |
|
587 buf.size = 6; |
|
588 buf.pos = 3; |
|
589 } |
|
590 |
|
591 void TearDown() override { |
|
592 cxBufferDestroy(&buf); |
|
593 } |
|
594 |
|
595 CxBuffer buf{}; |
|
596 }; |
|
597 |
|
598 TEST_F(BufferSeek, SetZero) { |
|
599 int result = cxBufferSeek(&buf, 0, SEEK_SET); |
|
600 EXPECT_EQ(result, 0); |
|
601 EXPECT_EQ(buf.pos, 0); |
|
602 } |
|
603 |
|
604 TEST_F(BufferSeek, SetValid) { |
|
605 int result = cxBufferSeek(&buf, 5, SEEK_SET); |
|
606 EXPECT_EQ(result, 0); |
|
607 EXPECT_EQ(buf.pos, 5); |
|
608 } |
|
609 |
|
610 TEST_F(BufferSeek, SetInvalid) { |
|
611 ASSERT_EQ(buf.pos, 3); |
|
612 int result = cxBufferSeek(&buf, 6, SEEK_SET); |
|
613 EXPECT_NE(result, 0); |
|
614 EXPECT_EQ(buf.pos, 3); |
|
615 } |
|
616 |
|
617 TEST_F(BufferSeek, CurZero) { |
|
618 ASSERT_EQ(buf.pos, 3); |
|
619 int result = cxBufferSeek(&buf, 0, SEEK_CUR); |
|
620 EXPECT_EQ(result, 0); |
|
621 EXPECT_EQ(buf.pos, 3); |
|
622 } |
|
623 |
|
624 TEST_F(BufferSeek, CurValidPositive) { |
|
625 ASSERT_EQ(buf.pos, 3); |
|
626 int result = cxBufferSeek(&buf, 2, SEEK_CUR); |
|
627 EXPECT_EQ(result, 0); |
|
628 EXPECT_EQ(buf.pos, 5); |
|
629 } |
|
630 |
|
631 TEST_F(BufferSeek, CurValidNegative) { |
|
632 ASSERT_EQ(buf.pos, 3); |
|
633 int result = cxBufferSeek(&buf, -3, SEEK_CUR); |
|
634 EXPECT_EQ(result, 0); |
|
635 EXPECT_EQ(buf.pos, 0); |
|
636 } |
|
637 |
|
638 TEST_F(BufferSeek, CurInvalidPositive) { |
|
639 ASSERT_EQ(buf.pos, 3); |
|
640 int result = cxBufferSeek(&buf, 3, SEEK_CUR); |
|
641 EXPECT_NE(result, 0); |
|
642 EXPECT_EQ(buf.pos, 3); |
|
643 } |
|
644 |
|
645 TEST_F(BufferSeek, CurInvalidNegative) { |
|
646 ASSERT_EQ(buf.pos, 3); |
|
647 int result = cxBufferSeek(&buf, -4, SEEK_CUR); |
|
648 EXPECT_NE(result, 0); |
|
649 EXPECT_EQ(buf.pos, 3); |
|
650 } |
|
651 |
|
652 TEST_F(BufferSeek, EndZero) { |
|
653 ASSERT_EQ(buf.size, 6); |
|
654 int result = cxBufferSeek(&buf, 0, SEEK_END); |
|
655 // the (past-the-)end position is always invalid |
|
656 EXPECT_NE(result, 0); |
|
657 EXPECT_EQ(buf.pos, 3); |
|
658 } |
|
659 |
|
660 TEST_F(BufferSeek, EndValid) { |
|
661 ASSERT_EQ(buf.size, 6); |
|
662 int result = cxBufferSeek(&buf, -6, SEEK_END); |
|
663 EXPECT_EQ(result, 0); |
|
664 EXPECT_EQ(buf.pos, 0); |
|
665 } |
|
666 |
|
667 TEST_F(BufferSeek, EndInvalid) { |
|
668 ASSERT_EQ(buf.size, 6); |
|
669 int result = cxBufferSeek(&buf, 1, SEEK_END); |
|
670 EXPECT_NE(result, 0); |
|
671 EXPECT_EQ(buf.pos, 3); |
|
672 } |
|
673 |
|
674 TEST_F(BufferSeek, WhenceInvalid) { |
|
675 ASSERT_EQ(buf.size, 6); |
|
676 ASSERT_EQ(buf.pos, 3); |
|
677 int result = cxBufferSeek(&buf, 2, 9000); |
|
678 EXPECT_NE(result, 0); |
|
679 EXPECT_EQ(buf.size, 6); |
|
680 EXPECT_EQ(buf.pos, 3); |
|
681 } |