fix(all): introduce and use iox.CopyContext (#380)
* fix(all): introduce and use iox.CopyContext This PR is part of https://github.com/ooni/probe/issues/1417. In https://github.com/ooni/probe-cli/pull/379 we introduced a context aware wrapper for io.ReadAll (formerly ioutil.ReadAll). Here we introduce a context aware wrapper for io.Copy. * fix(humanize): more significant digits * fix: rename humanize files to follow the common pattern * fix aligment * fix test
This commit is contained in:
@@ -82,7 +82,7 @@ func (mgr downloadManager) doRun(ctx context.Context) error {
|
||||
}
|
||||
continue
|
||||
}
|
||||
n, err := io.Copy(io.Discard, reader)
|
||||
n, err := iox.CopyContext(ctx, io.Discard, reader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import (
|
||||
|
||||
const (
|
||||
testName = "ndt"
|
||||
testVersion = "0.8.0"
|
||||
testVersion = "0.9.0"
|
||||
)
|
||||
|
||||
// Config contains the experiment settings
|
||||
|
||||
@@ -17,7 +17,7 @@ func TestNewExperimentMeasurer(t *testing.T) {
|
||||
if measurer.ExperimentName() != "ndt" {
|
||||
t.Fatal("unexpected name")
|
||||
}
|
||||
if measurer.ExperimentVersion() != "0.8.0" {
|
||||
if measurer.ExperimentVersion() != "0.9.0" {
|
||||
t.Fatal("unexpected version")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/cookiejar"
|
||||
@@ -13,6 +12,7 @@ import (
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/httpheader"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/netx"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/netx/errorx"
|
||||
"github.com/ooni/probe-cli/v3/internal/iox"
|
||||
"github.com/ooni/probe-cli/v3/internal/runtimex"
|
||||
)
|
||||
|
||||
@@ -92,7 +92,7 @@ func (r Runner) httpGet(ctx context.Context, url string) error {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if _, err = io.Copy(ioutil.Discard, resp.Body); err != nil {
|
||||
if _, err = iox.CopyContext(ctx, ioutil.Discard, resp.Body); err != nil {
|
||||
return err
|
||||
}
|
||||
// Implementation note: we shall check for this error once we have read the
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/netx/bytecounter"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/netx/mockablex"
|
||||
"github.com/ooni/probe-cli/v3/internal/iox"
|
||||
)
|
||||
|
||||
func dorequest(ctx context.Context, url string) error {
|
||||
@@ -27,7 +28,7 @@ func dorequest(ctx context.Context, url string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := io.Copy(ioutil.Discard, resp.Body); err != nil {
|
||||
if _, err := iox.CopyContext(ctx, ioutil.Discard, resp.Body); err != nil {
|
||||
return err
|
||||
}
|
||||
return resp.Body.Close()
|
||||
|
||||
@@ -3,7 +3,6 @@ package engine
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
@@ -17,6 +16,7 @@ import (
|
||||
"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/probeservices"
|
||||
"github.com/ooni/probe-cli/v3/internal/iox"
|
||||
"github.com/ooni/probe-cli/v3/internal/version"
|
||||
)
|
||||
|
||||
@@ -31,7 +31,8 @@ func TestSessionByteCounter(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if _, err := io.Copy(ioutil.Discard, resp.Body); err != nil {
|
||||
ctx := context.Background()
|
||||
if _, err := iox.CopyContext(ctx, ioutil.Discard, resp.Body); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if s.KibiBytesSent() <= 0 || s.KibiBytesReceived() <= 0 {
|
||||
|
||||
Reference in New Issue
Block a user