mirror of
https://github.com/p4gefau1t/trojan-go.git
synced 2024-04-21 12:21:34 +00:00
39 lines
709 B
Go
39 lines
709 B
Go
package common
|
|
|
|
import (
|
|
"bytes"
|
|
"crypto/rand"
|
|
"testing"
|
|
|
|
"github.com/v2fly/v2ray-core/v4/common"
|
|
)
|
|
|
|
func TestBufferedReader(t *testing.T) {
|
|
payload := [1024]byte{}
|
|
rand.Reader.Read(payload[:])
|
|
rawReader := bytes.NewBuffer(payload[:])
|
|
r := RewindReader{
|
|
rawReader: rawReader,
|
|
}
|
|
r.SetBufferSize(2048)
|
|
buf1 := make([]byte, 512)
|
|
buf2 := make([]byte, 512)
|
|
common.Must2(r.Read(buf1))
|
|
r.Rewind()
|
|
common.Must2(r.Read(buf2))
|
|
if !bytes.Equal(buf1, buf2) {
|
|
t.Fail()
|
|
}
|
|
buf3 := make([]byte, 512)
|
|
common.Must2(r.Read(buf3))
|
|
if !bytes.Equal(buf3, payload[512:]) {
|
|
t.Fail()
|
|
}
|
|
r.Rewind()
|
|
buf4 := make([]byte, 1024)
|
|
common.Must2(r.Read(buf4))
|
|
if !bytes.Equal(payload[:], buf4) {
|
|
t.Fail()
|
|
}
|
|
}
|