tendermint/p2p/upnp/upnp_test.go

52 lines
1003 B
Go
Raw Normal View History

package upnp
import (
"net"
2014-07-01 14:50:24 -07:00
"testing"
"time"
)
/*
This is a manual test.
TODO: set up or find a service to probe open ports.
*/
2014-11-07 23:27:03 -08:00
func _TestUPNP(t *testing.T) {
2014-07-01 14:50:24 -07:00
t.Log("hello!")
2014-07-01 14:50:24 -07:00
nat, err := Discover()
if err != nil {
t.Fatalf("NAT upnp could not be discovered: %v", err)
}
2014-07-01 14:50:24 -07:00
t.Log("ourIP: ", nat.(*upnpNAT).ourIP)
2014-07-01 14:50:24 -07:00
ext, err := nat.GetExternalAddress()
if err != nil {
t.Fatalf("External address error: %v", err)
}
t.Logf("External address: %v", ext)
2014-07-01 14:50:24 -07:00
port, err := nat.AddPortMapping("tcp", 8001, 8001, "testing", 0)
if err != nil {
t.Fatalf("Port mapping error: %v", err)
}
t.Logf("Port mapping mapped: %v", port)
2014-07-01 14:50:24 -07:00
// also run the listener, open for all remote addresses.
listener, err := net.Listen("tcp", ":8001")
if err != nil {
panic(err)
}
2014-07-01 14:50:24 -07:00
// now sleep for 10 seconds
time.Sleep(10 * time.Second)
2014-07-01 14:50:24 -07:00
err = nat.DeletePortMapping("tcp", 8001, 8001)
if err != nil {
t.Fatalf("Port mapping delete error: %v", err)
}
t.Logf("Port mapping deleted")
listener.Close()
}