fix: ooporthelper connection_refused (#974)
Closes https://github.com/ooni/probe/issues/2338 Co-authored-by: decfox <decfox@github.com>
This commit is contained in:
parent
18a9523496
commit
62e9f8e101
|
@ -31,7 +31,7 @@ func shutdown(ctx context.Context, l net.Listener) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(DecFox): Add the ability of an echo service to generate some traffic
|
// TODO(DecFox): Add the ability of an echo service to generate some traffic
|
||||||
func handleConnetion(ctx context.Context, conn net.Conn) {
|
func handleConnection(ctx context.Context, conn net.Conn) {
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
@ -48,10 +48,10 @@ func listenTCP(ctx context.Context, port string) {
|
||||||
for {
|
for {
|
||||||
conn, err := listener.Accept()
|
conn, err := listener.Accept()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Infof("listener unable to accept connections on port%s", port)
|
log.Infof("listener unable to accept connections on port: %s", port)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
go handleConnetion(ctx, conn)
|
go handleConnection(ctx, conn)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,13 +9,19 @@ import (
|
||||||
"github.com/ooni/probe-cli/v3/internal/netxlite"
|
"github.com/ooni/probe-cli/v3/internal/netxlite"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
portsMap = make(map[string]bool)
|
||||||
|
)
|
||||||
|
|
||||||
func TestMainWorkingAsIntended(t *testing.T) {
|
func TestMainWorkingAsIntended(t *testing.T) {
|
||||||
t.Skip("// TODO(https://github.com/ooni/probe/issues/2338)")
|
|
||||||
srvTest = true // toggle to imply that we are running in test mode
|
srvTest = true // toggle to imply that we are running in test mode
|
||||||
|
for _, port := range TestPorts {
|
||||||
|
portsMap[port] = false
|
||||||
|
}
|
||||||
go main()
|
go main()
|
||||||
dialer := netxlite.NewDialerWithoutResolver(model.DiscardLogger)
|
dialer := netxlite.NewDialerWithoutResolver(model.DiscardLogger)
|
||||||
for _, port := range TestPorts {
|
for i := 0; i < len(TestPorts); i++ {
|
||||||
<-srvTestChan
|
port := <-srvTestChan
|
||||||
addr := net.JoinHostPort("127.0.0.1", port)
|
addr := net.JoinHostPort("127.0.0.1", port)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
conn, err := dialer.DialContext(ctx, "tcp", addr)
|
conn, err := dialer.DialContext(ctx, "tcp", addr)
|
||||||
|
@ -26,7 +32,14 @@ func TestMainWorkingAsIntended(t *testing.T) {
|
||||||
t.Fatal("expected non-nil conn")
|
t.Fatal("expected non-nil conn")
|
||||||
}
|
}
|
||||||
conn.Close()
|
conn.Close()
|
||||||
|
portsMap[port] = true
|
||||||
}
|
}
|
||||||
srvCancel() // shutdown server
|
srvCancel() // shutdown server
|
||||||
srvWg.Wait() // wait for listeners on all ports to close
|
srvWg.Wait() // wait for listeners on all ports to close
|
||||||
|
// check if all ports were covered
|
||||||
|
for _, port := range TestPorts {
|
||||||
|
if !portsMap[port] {
|
||||||
|
t.Fatal("missed port in test", port)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user