mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-12-17 20:54:36 +03:00
common/buf/multi_buffer.go: Fix Compact() (#5015)
Fixes https://github.com/XTLS/Xray-core/issues/5012 Co-authored-by: patterniha <71074308+patterniha@users.noreply.github.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user