|
@@ -0,0 +1,36 @@
|
|
|
+package xudp
|
|
|
+
|
|
|
+import (
|
|
|
+ "testing"
|
|
|
+
|
|
|
+ "github.com/xtls/xray-core/common"
|
|
|
+ "github.com/xtls/xray-core/common/buf"
|
|
|
+ "github.com/xtls/xray-core/common/net"
|
|
|
+)
|
|
|
+
|
|
|
+func TestXudpReadWrite(t *testing.T) {
|
|
|
+ addr, _ := net.ParseDestination("tcp:127.0.0.1:1345")
|
|
|
+ mb := make(buf.MultiBuffer, 0, 16)
|
|
|
+ m := buf.MultiBufferContainer {
|
|
|
+ MultiBuffer: mb,
|
|
|
+ }
|
|
|
+ var arr [8]byte
|
|
|
+ writer := NewPacketWriter(&m, addr, arr)
|
|
|
+
|
|
|
+ source := make(buf.MultiBuffer, 0, 16)
|
|
|
+ b := buf.New()
|
|
|
+ b.WriteByte('a')
|
|
|
+ b.UDP = &addr
|
|
|
+ source = append(source, b)
|
|
|
+ writer.WriteMultiBuffer(source)
|
|
|
+
|
|
|
+ reader := NewPacketReader(&m)
|
|
|
+ dest, err := reader.ReadMultiBuffer()
|
|
|
+ common.Must(err)
|
|
|
+ if dest[0].Byte(0) != 'a' {
|
|
|
+ t.Error("failed to parse xudp buffer")
|
|
|
+ }
|
|
|
+ if dest[0].UDP.Port != 1345 {
|
|
|
+ t.Error("failed to parse xudp buffer")
|
|
|
+ }
|
|
|
+}
|