feat: clearly indicate which resolver we're using (#885)
See what we documented at https://github.com/ooni/spec/pull/257 Reference issue: https://github.com/ooni/probe/issues/2238 See also the related ooni/spec PR: https://github.com/ooni/spec/pull/257 See also https://github.com/ooni/probe/issues/2237 While there, bump webconnectivity@v0.5 version because this change has an impact onto the generated data format. The drop in coverage is unavoidable because we've written some tests for `measurex` to ensure we deal with DNS resolvers and transport names correctly depending on the splitting policy we use. (However, `measurex` is only used for the `tor` experiment and, per the step-by-step design document, new experiments should use `measurexlite` instead, so this is hopefully fine(TM).) While there, fix a broken integration test that does not run in `-short` mode.
This commit is contained in:
parent
c3964e43b3
commit
8a0c062844
19 changed files with 362 additions and 59 deletions
58
internal/measurex/resolver_test.go
Normal file
58
internal/measurex/resolver_test.go
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
package measurex
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/ooni/probe-cli/v3/internal/model"
|
||||
"github.com/ooni/probe-cli/v3/internal/netxlite"
|
||||
)
|
||||
|
||||
func TestResolverModifiesStdlibResolverName(t *testing.T) {
|
||||
// See https://github.com/ooni/spec/pull/257 for more information.
|
||||
|
||||
t.Run("for LookupHost", func(t *testing.T) {
|
||||
child := netxlite.NewStdlibResolver(model.DiscardLogger)
|
||||
mx := NewMeasurerWithDefaultSettings()
|
||||
dbout := &MeasurementDB{}
|
||||
txp := mx.WrapResolver(dbout, child)
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
cancel() // we want to fail immediately
|
||||
_, _ = txp.LookupHost(ctx, "dns.google")
|
||||
measurement := dbout.AsMeasurement()
|
||||
var good int
|
||||
for _, rtinfo := range measurement.LookupHost {
|
||||
network := rtinfo.Network
|
||||
if network != netxlite.StdlibResolverSystem {
|
||||
t.Fatal("unexpected network", network)
|
||||
}
|
||||
good++
|
||||
}
|
||||
if good < 1 {
|
||||
t.Fatal("no good entry seen")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("for LookupHTTPS", func(t *testing.T) {
|
||||
child := netxlite.NewStdlibResolver(model.DiscardLogger)
|
||||
mx := NewMeasurerWithDefaultSettings()
|
||||
dbout := &MeasurementDB{}
|
||||
txp := mx.WrapResolver(dbout, child)
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
cancel() // we want to fail immediately
|
||||
_, _ = txp.LookupHTTPS(ctx, "dns.google")
|
||||
measurement := dbout.AsMeasurement()
|
||||
var good int
|
||||
for _, rtinfo := range measurement.LookupHTTPSSvc {
|
||||
network := rtinfo.Network
|
||||
if network != netxlite.StdlibResolverSystem {
|
||||
t.Fatal("unexpected network", network)
|
||||
}
|
||||
good++
|
||||
}
|
||||
if good < 1 {
|
||||
t.Fatal("no good entry seen")
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
Loading…
Reference in a new issue