|
|
@@ -175,6 +175,29 @@ func TestCompact(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func TestCompactWithConsumed(t *testing.T) {
|
|
|
+ // make a consumed buffer (a.Start != 0)
|
|
|
+ a := New()
|
|
|
+ for range 8192 {
|
|
|
+ common.Must2(a.WriteString("a"))
|
|
|
+ }
|
|
|
+ a.Read(make([]byte, 2))
|
|
|
+
|
|
|
+ b := New()
|
|
|
+ for range 2 {
|
|
|
+ common.Must2(b.WriteString("b"))
|
|
|
+ }
|
|
|
+
|
|
|
+ mb := MultiBuffer{a, b}
|
|
|
+ cmb := Compact(mb)
|
|
|
+ mbc := &MultiBufferContainer{mb}
|
|
|
+ mbc.Read(make([]byte, 8190))
|
|
|
+
|
|
|
+ if w := cmb.String(); w != "bb" {
|
|
|
+ t.Error("unexpected Compact result ", w)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func BenchmarkSplitBytes(b *testing.B) {
|
|
|
var mb MultiBuffer
|
|
|
raw := make([]byte, Size)
|