device: get free port when testing
Signed-off-by: Sina Siadat <siadat@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
507f148e1c
commit
bc3f505efa
|
@ -8,6 +8,7 @@ package device
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -16,16 +17,30 @@ import (
|
||||||
"golang.zx2c4.com/wireguard/tun/tuntest"
|
"golang.zx2c4.com/wireguard/tun/tuntest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func getFreePort(t *testing.T) string {
|
||||||
|
l, err := net.ListenPacket("udp", "localhost:0")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer l.Close()
|
||||||
|
return fmt.Sprintf("%d", l.LocalAddr().(*net.UDPAddr).Port)
|
||||||
|
}
|
||||||
|
|
||||||
func TestTwoDevicePing(t *testing.T) {
|
func TestTwoDevicePing(t *testing.T) {
|
||||||
// TODO(crawshaw): pick unused ports on localhost
|
port1 := getFreePort(t)
|
||||||
|
port2 := getFreePort(t)
|
||||||
|
|
||||||
cfg1 := `private_key=481eb0d8113a4a5da532d2c3e9c14b53c8454b34ab109676f6b58c2245e37b58
|
cfg1 := `private_key=481eb0d8113a4a5da532d2c3e9c14b53c8454b34ab109676f6b58c2245e37b58
|
||||||
listen_port=53511
|
listen_port={{PORT1}}
|
||||||
replace_peers=true
|
replace_peers=true
|
||||||
public_key=f70dbb6b1b92a1dde1c783b297016af3f572fef13b0abb16a2623d89a58e9725
|
public_key=f70dbb6b1b92a1dde1c783b297016af3f572fef13b0abb16a2623d89a58e9725
|
||||||
protocol_version=1
|
protocol_version=1
|
||||||
replace_allowed_ips=true
|
replace_allowed_ips=true
|
||||||
allowed_ip=1.0.0.2/32
|
allowed_ip=1.0.0.2/32
|
||||||
endpoint=127.0.0.1:53512`
|
endpoint=127.0.0.1:{{PORT2}}`
|
||||||
|
cfg1 = strings.ReplaceAll(cfg1, "{{PORT1}}", port1)
|
||||||
|
cfg1 = strings.ReplaceAll(cfg1, "{{PORT2}}", port2)
|
||||||
|
|
||||||
tun1 := tuntest.NewChannelTUN()
|
tun1 := tuntest.NewChannelTUN()
|
||||||
dev1 := NewDevice(tun1.TUN(), NewLogger(LogLevelDebug, "dev1: "))
|
dev1 := NewDevice(tun1.TUN(), NewLogger(LogLevelDebug, "dev1: "))
|
||||||
dev1.Up()
|
dev1.Up()
|
||||||
|
@ -35,13 +50,16 @@ endpoint=127.0.0.1:53512`
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg2 := `private_key=98c7989b1661a0d64fd6af3502000f87716b7c4bbcf00d04fc6073aa7b539768
|
cfg2 := `private_key=98c7989b1661a0d64fd6af3502000f87716b7c4bbcf00d04fc6073aa7b539768
|
||||||
listen_port=53512
|
listen_port={{PORT2}}
|
||||||
replace_peers=true
|
replace_peers=true
|
||||||
public_key=49e80929259cebdda4f322d6d2b1a6fad819d603acd26fd5d845e7a123036427
|
public_key=49e80929259cebdda4f322d6d2b1a6fad819d603acd26fd5d845e7a123036427
|
||||||
protocol_version=1
|
protocol_version=1
|
||||||
replace_allowed_ips=true
|
replace_allowed_ips=true
|
||||||
allowed_ip=1.0.0.1/32
|
allowed_ip=1.0.0.1/32
|
||||||
endpoint=127.0.0.1:53511`
|
endpoint=127.0.0.1:{{PORT1}}`
|
||||||
|
cfg2 = strings.ReplaceAll(cfg2, "{{PORT1}}", port1)
|
||||||
|
cfg2 = strings.ReplaceAll(cfg2, "{{PORT2}}", port2)
|
||||||
|
|
||||||
tun2 := tuntest.NewChannelTUN()
|
tun2 := tuntest.NewChannelTUN()
|
||||||
dev2 := NewDevice(tun2.TUN(), NewLogger(LogLevelDebug, "dev2: "))
|
dev2 := NewDevice(tun2.TUN(), NewLogger(LogLevelDebug, "dev2: "))
|
||||||
dev2.Up()
|
dev2.Up()
|
||||||
|
|
Loading…
Reference in a new issue