refactor(measurexlite): make buffered channels private (#864)

Closes https://github.com/ooni/probe/issues/2215
This commit is contained in:
DecFox 2022-08-17 23:40:48 +05:30 committed by GitHub
commit e1d014e826
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 326 additions and 51 deletions

View file

@ -193,7 +193,7 @@ func TestNewResolver(t *testing.T) {
zeroTime := time.Now()
td := testingx.NewTimeDeterministic(zeroTime)
trace := NewTrace(0, zeroTime)
trace.DNSLookup = make(chan *model.ArchivalDNSLookupResult) // no buffer
trace.dnsLookup = make(chan *model.ArchivalDNSLookupResult) // no buffer
trace.TimeNowFn = td.Now
txp := &mocks.DNSTransport{
MockRoundTrip: func(ctx context.Context, query model.DNSQuery) (model.DNSResponse, error) {
@ -285,6 +285,43 @@ func TestNewWrappedResolvers(t *testing.T) {
})
}
func TestFirstDNSLookup(t *testing.T) {
t.Run("returns nil when buffer is empty", func(t *testing.T) {
zeroTime := time.Now()
trace := NewTrace(0, zeroTime)
got := trace.FirstDNSLookup()
if got != nil {
t.Fatal("expected nil event")
}
})
t.Run("return first non-nil DNSLookup", func(t *testing.T) {
filler := func(tx *Trace, events []*model.ArchivalDNSLookupResult) {
for _, ev := range events {
tx.dnsLookup <- ev
}
}
zeroTime := time.Now()
trace := NewTrace(0, zeroTime)
expect := []*model.ArchivalDNSLookupResult{{
Engine: "doh",
Failure: nil,
Hostname: "example.com",
QueryType: "A",
}, {
Engine: "doh",
Failure: nil,
Hostname: "example.com",
QueryType: "AAAA",
}}
filler(trace, expect)
got := trace.FirstDNSLookup()
if diff := cmp.Diff(got, expect[0]); diff != "" {
t.Fatal(diff)
}
})
}
func TestAnswersFromAddrs(t *testing.T) {
tests := []struct {
name string