fix(reduceErrors): return error when given an empty list (#675)
See https://github.com/ooni/probe/issues/1985 for context. While there, ensure nextlite has 100% of coverage.
This commit is contained in:
parent
4d50dd6d54
commit
ce8ec5b391
|
@ -208,6 +208,7 @@ func TestDNSOverTCP(t *testing.T) {
|
|||
if txp.Address() != address {
|
||||
t.Fatal("invalid Address")
|
||||
}
|
||||
txp.CloseIdleConnections()
|
||||
})
|
||||
|
||||
t.Run("other functions okay with TLS", func(t *testing.T) {
|
||||
|
@ -222,5 +223,6 @@ func TestDNSOverTCP(t *testing.T) {
|
|||
if txp.Address() != address {
|
||||
t.Fatal("invalid Address")
|
||||
}
|
||||
txp.CloseIdleConnections()
|
||||
})
|
||||
}
|
||||
|
|
|
@ -59,6 +59,13 @@ func TestHTTP3Transport(t *testing.T) {
|
|||
}
|
||||
})
|
||||
|
||||
t.Run("Network", func(t *testing.T) {
|
||||
txp := &http3Transport{}
|
||||
if txp.Network() != "quic" {
|
||||
t.Fatal("unexpected .Network return value")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("RoundTrip", func(t *testing.T) {
|
||||
expected := errors.New("mocked error")
|
||||
txp := &http3Transport{
|
||||
|
|
|
@ -439,7 +439,6 @@ func TestHTTPTLSDialerWithReadTimeout(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestNewHTTPTransportStdlib(t *testing.T) {
|
||||
// What to test about this factory?
|
||||
txp := NewHTTPTransportStdlib(log.Log)
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
cancel() // immediately!
|
||||
|
@ -454,6 +453,9 @@ func TestNewHTTPTransportStdlib(t *testing.T) {
|
|||
if resp != nil {
|
||||
t.Fatal("unexpected resp")
|
||||
}
|
||||
if txp.Network() != "tcp" {
|
||||
t.Fatal("unexpected .Network return value")
|
||||
}
|
||||
txp.CloseIdleConnections()
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,9 @@ import (
|
|||
// the original netx implementation and that we cannot remove
|
||||
// or change without thinking about the consequences.
|
||||
|
||||
// See https://github.com/ooni/probe/issues/1985
|
||||
var errReduceErrorsEmptyList = errors.New("bug: reduceErrors given an empty list")
|
||||
|
||||
// quirkReduceErrors finds a known error in a list of errors since
|
||||
// it's probably most relevant. If this error is not found, just
|
||||
// return the first error according to this reasoning:
|
||||
|
@ -31,7 +34,8 @@ import (
|
|||
// See TODO(https://github.com/ooni/probe/issues/1779).
|
||||
func quirkReduceErrors(errorslist []error) error {
|
||||
if len(errorslist) == 0 {
|
||||
return nil
|
||||
// See https://github.com/ooni/probe/issues/1985
|
||||
return errReduceErrorsEmptyList
|
||||
}
|
||||
for _, err := range errorslist {
|
||||
var wrapper *ErrWrapper
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
func TestQuirkReduceErrors(t *testing.T) {
|
||||
t.Run("no errors", func(t *testing.T) {
|
||||
result := quirkReduceErrors(nil)
|
||||
if result != nil {
|
||||
if !errors.Is(result, errReduceErrorsEmptyList) {
|
||||
t.Fatal("wrong result")
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue
Block a user