fix(dnscheck): log "ok" rather than "<nil>" on success (#695)

See https://github.com/ooni/probe/issues/2020
This commit is contained in:
Yeganathan S
2022-02-16 19:47:44 +00:00
committed by GitHub
parent 88236a4352
commit 6a63f1b044
5 changed files with 33 additions and 2 deletions
@@ -272,7 +272,7 @@ func Collect(ctx context.Context, multi urlgetter.Multi, inputs []urlgetter.Mult
count++
percentage := float64(count) / float64(expect)
callbacks.OnProgress(percentage, fmt.Sprintf(
"dnscheck: measure %s: %+v", entry.Input.Config.ResolverURL, entry.Err,
"dnscheck: measure %s: %+v", entry.Input.Config.ResolverURL, model.ErrorToStringOrOK(entry.Err),
))
outputch <- entry
}
+8
View File
@@ -61,3 +61,11 @@ func (logDiscarder) Warn(msg string) {}
// Warnf implements Logger.Warnf
func (logDiscarder) Warnf(format string, v ...interface{}) {}
// ErrorToStringOrOK emits "ok" on "<nil>"" values for success.
func ErrorToStringOrOK(err error) string {
if err != nil {
return err.Error()
}
return "ok"
}
+21 -1
View File
@@ -1,6 +1,9 @@
package model
import "testing"
import (
"io"
"testing"
)
func TestDiscardLoggerWorksAsIntended(t *testing.T) {
logger := DiscardLogger
@@ -11,3 +14,20 @@ func TestDiscardLoggerWorksAsIntended(t *testing.T) {
logger.Warn("foo")
logger.Warnf("%s", "foo")
}
func TestErrorToStringOrOK(t *testing.T) {
t.Run("on success", func(t *testing.T) {
expectedResult := ErrorToStringOrOK(nil)
if expectedResult != "ok" {
t.Fatal("expected ok")
}
})
t.Run("on failure", func(t *testing.T) {
err := io.EOF
expectedResult := ErrorToStringOrOK(err)
if expectedResult != err.Error() {
t.Fatal("not the result we expected", expectedResult)
}
})
}