From 23bc261464a4ea0c5f9723f52767ab62927d2ebf Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Tue, 22 Jun 2021 13:00:29 +0200 Subject: [PATCH] refactor: move bytecounter to internal (#391) It's generic enough to live outside of engine/netx. Occurred to me while working on https://github.com/ooni/probe/issues/1687. --- internal/{engine/netx => }/bytecounter/bytecounter.go | 9 ++++++++- .../{engine/netx => }/bytecounter/bytecounter_test.go | 10 +++------- internal/engine/experiment.go | 2 +- .../engine/internal/sessionresolver/resolvermaker.go | 2 +- .../internal/sessionresolver/resolvermaker_test.go | 2 +- .../engine/internal/sessionresolver/sessionresolver.go | 2 +- internal/engine/netx/dialer/bytecounter.go | 2 +- internal/engine/netx/dialer/bytecounter_test.go | 2 +- internal/engine/netx/httptransport/bytecounter.go | 2 +- internal/engine/netx/httptransport/bytecounter_test.go | 2 +- internal/engine/netx/integration_test.go | 2 +- internal/engine/netx/netx.go | 2 +- internal/engine/netx/netx_test.go | 2 +- internal/engine/session.go | 2 +- 14 files changed, 23 insertions(+), 20 deletions(-) rename internal/{engine/netx => }/bytecounter/bytecounter.go (80%) rename internal/{engine/netx => }/bytecounter/bytecounter_test.go (78%) diff --git a/internal/engine/netx/bytecounter/bytecounter.go b/internal/bytecounter/bytecounter.go similarity index 80% rename from internal/engine/netx/bytecounter/bytecounter.go rename to internal/bytecounter/bytecounter.go index b1c9a02..fbc8f0d 100644 --- a/internal/engine/netx/bytecounter/bytecounter.go +++ b/internal/bytecounter/bytecounter.go @@ -1,11 +1,18 @@ +// Package bytecounter contains code to track the number of +// bytes sent and received by a probe. package bytecounter import "github.com/ooni/probe-cli/v3/internal/atomicx" // Counter counts bytes sent and received. type Counter struct { + // Received contains the bytes received. You MUST initialize + // this field, or you can just use the New factory. Received *atomicx.Int64 - Sent *atomicx.Int64 + + // Sent contains the bytes sent. You MUST initialize + // this field, or you can just use the New factory. + Sent *atomicx.Int64 } // New creates a new Counter. diff --git a/internal/engine/netx/bytecounter/bytecounter_test.go b/internal/bytecounter/bytecounter_test.go similarity index 78% rename from internal/engine/netx/bytecounter/bytecounter_test.go rename to internal/bytecounter/bytecounter_test.go index 908651a..dd0d9d9 100644 --- a/internal/engine/netx/bytecounter/bytecounter_test.go +++ b/internal/bytecounter/bytecounter_test.go @@ -1,13 +1,9 @@ -package bytecounter_test +package bytecounter -import ( - "testing" - - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" -) +import "testing" func TestGood(t *testing.T) { - counter := bytecounter.New() + counter := New() counter.CountBytesReceived(16384) counter.CountKibiBytesReceived(10) counter.CountBytesSent(2048) diff --git a/internal/engine/experiment.go b/internal/engine/experiment.go index 4035af1..acf7150 100644 --- a/internal/engine/experiment.go +++ b/internal/engine/experiment.go @@ -9,9 +9,9 @@ import ( "os" "time" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/geolocate" "github.com/ooni/probe-cli/v3/internal/engine/model" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx/dialer" "github.com/ooni/probe-cli/v3/internal/engine/netx/httptransport" "github.com/ooni/probe-cli/v3/internal/engine/probeservices" diff --git a/internal/engine/internal/sessionresolver/resolvermaker.go b/internal/engine/internal/sessionresolver/resolvermaker.go index 2452de0..f2e6f8d 100644 --- a/internal/engine/internal/sessionresolver/resolvermaker.go +++ b/internal/engine/internal/sessionresolver/resolvermaker.go @@ -6,8 +6,8 @@ import ( "time" "github.com/apex/log" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" ) // resolvemaker contains rules for making a resolver. diff --git a/internal/engine/internal/sessionresolver/resolvermaker_test.go b/internal/engine/internal/sessionresolver/resolvermaker_test.go index 3e58cfc..42ab705 100644 --- a/internal/engine/internal/sessionresolver/resolvermaker_test.go +++ b/internal/engine/internal/sessionresolver/resolvermaker_test.go @@ -6,7 +6,7 @@ import ( "testing" "github.com/apex/log" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" ) func TestDefaultByteCounter(t *testing.T) { diff --git a/internal/engine/internal/sessionresolver/sessionresolver.go b/internal/engine/internal/sessionresolver/sessionresolver.go index 9180cd2..1108fbe 100644 --- a/internal/engine/internal/sessionresolver/sessionresolver.go +++ b/internal/engine/internal/sessionresolver/sessionresolver.go @@ -33,7 +33,7 @@ import ( "sync" "time" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/multierror" "github.com/ooni/probe-cli/v3/internal/runtimex" ) diff --git a/internal/engine/netx/dialer/bytecounter.go b/internal/engine/netx/dialer/bytecounter.go index 2aede34..1a8ffca 100644 --- a/internal/engine/netx/dialer/bytecounter.go +++ b/internal/engine/netx/dialer/bytecounter.go @@ -4,7 +4,7 @@ import ( "context" "net" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" ) // byteCounterDialer is a byte-counting-aware dialer. To perform byte counting, you diff --git a/internal/engine/netx/dialer/bytecounter_test.go b/internal/engine/netx/dialer/bytecounter_test.go index a9cc189..948d001 100644 --- a/internal/engine/netx/dialer/bytecounter_test.go +++ b/internal/engine/netx/dialer/bytecounter_test.go @@ -8,7 +8,7 @@ import ( "net/http" "testing" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx/mockablex" "github.com/ooni/probe-cli/v3/internal/iox" ) diff --git a/internal/engine/netx/httptransport/bytecounter.go b/internal/engine/netx/httptransport/bytecounter.go index cc61559..67ac40b 100644 --- a/internal/engine/netx/httptransport/bytecounter.go +++ b/internal/engine/netx/httptransport/bytecounter.go @@ -4,7 +4,7 @@ import ( "io" "net/http" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" ) // ByteCountingTransport is a RoundTripper that counts bytes. diff --git a/internal/engine/netx/httptransport/bytecounter_test.go b/internal/engine/netx/httptransport/bytecounter_test.go index f1d728a..6251f17 100644 --- a/internal/engine/netx/httptransport/bytecounter_test.go +++ b/internal/engine/netx/httptransport/bytecounter_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx/httptransport" "github.com/ooni/probe-cli/v3/internal/iox" ) diff --git a/internal/engine/netx/integration_test.go b/internal/engine/netx/integration_test.go index 9f3bb37..969a3b0 100644 --- a/internal/engine/netx/integration_test.go +++ b/internal/engine/netx/integration_test.go @@ -7,8 +7,8 @@ import ( "testing" "github.com/apex/log" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx/errorx" "github.com/ooni/probe-cli/v3/internal/engine/netx/trace" "github.com/ooni/probe-cli/v3/internal/iox" diff --git a/internal/engine/netx/netx.go b/internal/engine/netx/netx.go index 3a228c6..0a3bcb8 100644 --- a/internal/engine/netx/netx.go +++ b/internal/engine/netx/netx.go @@ -31,7 +31,7 @@ import ( "net/url" "github.com/lucas-clemente/quic-go" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx/dialer" "github.com/ooni/probe-cli/v3/internal/engine/netx/httptransport" "github.com/ooni/probe-cli/v3/internal/engine/netx/quicdialer" diff --git a/internal/engine/netx/netx_test.go b/internal/engine/netx/netx_test.go index 973db12..bf41ea9 100644 --- a/internal/engine/netx/netx_test.go +++ b/internal/engine/netx/netx_test.go @@ -8,8 +8,8 @@ import ( "testing" "github.com/apex/log" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/netx/httptransport" "github.com/ooni/probe-cli/v3/internal/engine/netx/resolver" "github.com/ooni/probe-cli/v3/internal/engine/netx/tlsdialer" diff --git a/internal/engine/session.go b/internal/engine/session.go index 1cfc9fe..8fcc7c5 100644 --- a/internal/engine/session.go +++ b/internal/engine/session.go @@ -11,11 +11,11 @@ import ( "sync" "github.com/ooni/probe-cli/v3/internal/atomicx" + "github.com/ooni/probe-cli/v3/internal/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/geolocate" "github.com/ooni/probe-cli/v3/internal/engine/internal/sessionresolver" "github.com/ooni/probe-cli/v3/internal/engine/model" "github.com/ooni/probe-cli/v3/internal/engine/netx" - "github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter" "github.com/ooni/probe-cli/v3/internal/engine/probeservices" "github.com/ooni/probe-cli/v3/internal/kvstore" "github.com/ooni/probe-cli/v3/internal/platform"