mirror of
https://github.com/soypat/lneto.git
synced 2026-08-08 00:43:40 +00:00
37 lines
786 B
Go
37 lines
786 B
Go
package tcp
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestTxQueueWrite(t *testing.T) {
|
|
const (
|
|
bufsize = 1024
|
|
maxPkt = 3
|
|
msg = "hello world"
|
|
)
|
|
buf := make([]byte, bufsize)
|
|
rtx := newRingTx(buf, maxPkt)
|
|
|
|
bufs := bytes.SplitAfter([]byte(msg), []byte("e"))
|
|
var data [bufsize]byte
|
|
for i, buf := range bufs {
|
|
n, err := rtx.Write(buf)
|
|
if err != nil {
|
|
t.Fatalf("writing packet %d: %s", i, err)
|
|
} else if n != len(buf) {
|
|
t.Fatalf("want %d written, got %d", len(buf), n)
|
|
}
|
|
|
|
n, err = rtx.MakePacket(data[:])
|
|
if err != nil {
|
|
t.Fatalf("making packet %d: %s", i, err)
|
|
} else if n != len(buf) {
|
|
t.Fatalf("want %d packet read, got %d", len(buf), n)
|
|
} else if !bytes.Equal(buf, data[:n]) {
|
|
t.Fatalf("want data %q, got data read %q", buf, data[:n])
|
|
}
|
|
}
|
|
}
|