mirror of
https://github.com/cmz0228/hysteria-dev.git
synced 2025-08-21 00:31:46 +00:00
feat(wip): test reworks for app
This commit is contained in:
@@ -1,49 +1,39 @@
|
||||
package forwarding
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/rand"
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/apernet/hysteria/app/internal/utils_test"
|
||||
)
|
||||
|
||||
func TestUDPTunnel(t *testing.T) {
|
||||
// Start the tunnel
|
||||
l, err := net.ListenPacket("udp", "127.0.0.1:34567")
|
||||
assert.NoError(t, err)
|
||||
defer l.Close()
|
||||
tunnel := &UDPTunnel{
|
||||
HyClient: &utils_test.MockEchoHyClient{},
|
||||
Remote: "whatever",
|
||||
}
|
||||
l, err := net.ListenPacket("udp", "127.0.0.1:34567")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer l.Close()
|
||||
go tunnel.Serve(l)
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
conn, err := net.Dial("udp", "127.0.0.1:34567")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
data := make([]byte, 1024)
|
||||
_, _ = rand.Read(data)
|
||||
_, err = conn.Write(data)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
recv := make([]byte, 1024)
|
||||
_, err = conn.Read(recv)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if !bytes.Equal(data, recv) {
|
||||
t.Fatalf("connection %d: data mismatch", i)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, data, recv)
|
||||
_ = conn.Close()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user