test/test_buffer.cpp

changeset 547
9e933920dcf9
parent 546
900795d59d03
child 548
459bca1cdf8d
equal deleted inserted replaced
546:900795d59d03 547:9e933920dcf9
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 }

mercurial