diff --git a/.golangci.yml b/.golangci.yml index 8f7fa32..b62a27c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -15,6 +15,10 @@ output: format: colored-line-number linters-settings: + funlen: + lines: 100 + statements: 50 + ignore-comments: true gocognit: min-complexity: 10 gocyclo: @@ -42,107 +46,114 @@ linters-settings: - $gostd - github.com/stretchr +issues: + exclude-rules: + - path: _test.go + linters: + - dupl + - funlen + #fix: true + linters: enable: - # Enabled by default: - # - deadcode # Finds unused code [fast: false, auto-fix: false] - - errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false] - - gosimple # Linter for Go source code that specializes in simplifying a code [fast: false, auto-fix: false] - - govet # Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false] - - ineffassign # Detects when assignments to existing variables are not used [fast: true, auto-fix: false] - - staticcheck # Staticcheck is a go vet on steroids, applying a ton of static analysis checks [fast: false, auto-fix: false] - # - structcheck # Finds unused struct fields [fast: false, auto-fix: false] - - typecheck # Like the front-end of a Go compiler, parses and type-checks Go code [fast: false, auto-fix: false] - - unused # Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false] - # - varcheck # Finds unused global variables and constants [fast: false, auto-fix: false] - # Disabled by default: - - asasalint # check for pass []any as any in variadic func(...any) [fast # false, auto-fix # false] - - asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers [fast: true, auto-fix: false] - - bidichk # Checks for dangerous unicode character sequences [fast: true, auto-fix: false] - - bodyclose # checks whether HTTP response body is closed successfully [fast: false, auto-fix: false] - # - contextcheck # check the function whether use a non-inherited context [fast: false, auto-fix: false] - # - cyclop # checks function and package cyclomatic complexity [fast: false, auto-fix: false] - - decorder # check declaration order and count of types, constants, variables and functions [fast # true, auto-fix # false] - # - depguard # Go linter that checks if package imports are in a list of acceptable packages [fast: false, auto-fix: false] - - dogsled # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) [fast: true, auto-fix: false] - - dupl # Tool for code clone detection [fast: true, auto-fix: false] - - dupword # checks for duplicate words in the source code [fast # true, auto-fix # true] - - durationcheck # check for two durations multiplied together [fast: false, auto-fix: false] - - errchkjson # Checks types passed to the json encoding functions. Reports unsupported types and optionally reports occasions, where the check for the returned error can be omitted. [fast # false, auto-fix # false] - - errname # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false] - - errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false] - - execinquery # execinquery is a linter about query string checker in Query function which reads your Go src files and warning it finds [fast # false, auto-fix # false] - - exhaustive # check exhaustiveness of enum switch statements [fast: false, auto-fix: false] - # - exhaustruct # Checks if all structure fields are initialized [fast # false, auto-fix # false] - - exportloopref # checks for pointers to enclosing loop variables [fast: false, auto-fix: false] - - forbidigo # Forbids identifiers [fast: true, auto-fix: false] - - forcetypeassert # finds forced type assertions [fast: true, auto-fix: false] - # - funlen # Tool for detection of long functions [fast: true, auto-fix: false] - - gci # Gci control golang package import order and make it always deterministic. [fast: true, auto-fix: true] - - gochecknoglobals # check that no global variables exist [fast: true, auto-fix: false] + - asasalint # check for pass []any as any in variadic func(...any) [fast: false, auto-fix: false] + - asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers [fast: true, auto-fix: false] + - bidichk # Checks for dangerous unicode character sequences [fast: true, auto-fix: false] + - bodyclose # checks whether HTTP response body is closed successfully [fast: false, auto-fix: false] + - containedctx # containedctx is a linter that detects struct contained context.Context field [fast: false, auto-fix: false] + - contextcheck # check whether the function uses a non-inherited context [fast: false, auto-fix: false] + - cyclop # checks function and package cyclomatic complexity [fast: false, auto-fix: false] + - decorder # check declaration order and count of types, constants, variables and functions [fast: true, auto-fix: false] + #- depguard # Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false] + - dogsled # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) [fast: true, auto-fix: false] + - dupl # Tool for code clone detection [fast: true, auto-fix: false] + - dupword # checks for duplicate words in the source code [fast: true, auto-fix: true] + - durationcheck # check for two durations multiplied together [fast: false, auto-fix: false] + - errcheck # errcheck is a program for checking for unchecked errors in Go code. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false] + - errchkjson # Checks types passed to the json encoding functions. Reports unsupported types and optionally reports occasions, where the check for the returned error can be omitted. [fast: false, auto-fix: false] + - errname # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false] + - errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false] + - execinquery # execinquery is a linter about query string checker in Query function which reads your Go src files and warning it finds [fast: false, auto-fix: false] + - exhaustive # check exhaustiveness of enum switch statements [fast: false, auto-fix: false] + #- exhaustruct # Checks if all structure fields are initialized [fast: false, auto-fix: false] + - exportloopref # checks for pointers to enclosing loop variables [fast: false, auto-fix: false] + - forbidigo # Forbids identifiers [fast: false, auto-fix: false] + - forcetypeassert # finds forced type assertions [fast: true, auto-fix: false] + - funlen # Tool for detection of long functions [fast: true, auto-fix: false] + - gci # Gci controls Go package import order and makes it always deterministic. [fast: true, auto-fix: false] + - ginkgolinter # enforces standards of using ginkgo and gomega [fast: false, auto-fix: false] + - gocheckcompilerdirectives # Checks that go compiler directive comments (//go:) are valid. [fast: true, auto-fix: false] + - gochecknoglobals # check that no global variables exist [fast: false, auto-fix: false] - gochecknoinits # Checks that no init functions are present in Go code [fast: true, auto-fix: false] - - gocognit # Computes and checks the cognitive complexity of functions [fast: true, auto-fix: false] - - goconst # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false] - - gocritic # Provides diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false] - - gocyclo # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false] - - godot # Check if comments end in a period [fast: true, auto-fix: true] - - godox # Tool for detection of FIXME, TODO and other comment keywords [fast: true, auto-fix: false] - # - goerr113 # Golang linter to check the errors handling expressions [fast: false, auto-fix: false] - - gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true] - - gofumpt # Gofumpt checks whether code was gofumpt-ed. [fast: true, auto-fix: true] - - goheader # Checks is file header matches to pattern [fast: true, auto-fix: false] - - goimports # In addition to fixing imports, goimports also formats your code in the same style as gofmt. [fast: true, auto-fix: true] - # - golint # [deprecated] Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes [fast # false, auto-fix # false] - # - gomnd # An analyzer to detect magic numbers. [fast: true, auto-fix: false] - # - gomoddirectives # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. [fast: true, auto-fix: false] - - gomodguard # Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations. [fast: true, auto-fix: false] - - goprintffuncname # Checks that printf-like functions are named with `f` at the end [fast: true, auto-fix: false] - - gosec # Inspects source code for security problems [fast: false, auto-fix: false] - - grouper # An analyzer to analyze expression groups. [fast # true, auto-fix # false] - # - ifshort # [deprecated] # Checks that your code uses short syntax for if-statements whenever possible [fast # true, auto-fix # false] - - importas # Enforces consistent import aliases [fast: false, auto-fix: false] - - interfacebloat # A linter that checks the number of methods inside an interface. [fast # true, auto-fix # false] - # - interfacer # [deprecated] # Linter that suggests narrower interface types [fast # false, auto-fix # false] - # - ireturn # Accept Interfaces, Return Concrete Types [fast: false, auto-fix: false] - # - lll # Reports long lines [fast: true, auto-fix: false] - - loggercheck # (logrlint) Checks key valur pairs for common logger libraries (kitlog,klog,logr,zap). [fast # false, auto-fix # false] - - maintidx # maintidx measures the maintainability index of each function. [fast # true, auto-fix # false] - - makezero # Finds slice declarations with non-zero initial length [fast: false, auto-fix: false] - # - maligned # [deprecated] Tool to detect Go structs that would take less memory if their fields were sorted [fast # false, auto-fix # false] - - misspell # Finds commonly misspelled English words in comments [fast: true, auto-fix: true] - - nakedret # Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false] - - nestif # Reports deeply nested if statements [fast: true, auto-fix: false] - - nilerr # Finds the code that returns nil even if it checks that the error is not nil. [fast: false, auto-fix: false] - # - nilnil # Checks that there is no simultaneous return of `nil` error and an invalid value. [fast: false, auto-fix: false] - # - nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false] - - noctx # noctx finds sending http request without context.Context [fast: false, auto-fix: false] - - nolintlint # Reports ill-formed or insufficient nolint directives [fast: true, auto-fix: false] - - nonamedreturns # Reports all named returns [fast # false, auto-fix # false] - # - nosnakecase # [deprecated] nosnakecase is a linter that detects snake case of variable naming and function name. [fast # true, auto-fix # false] - - nosprintfhostport # Checks for misuse of Sprintf to construct a host with port in a URL. [fast # true, auto-fix # false] - - paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test [fast: true, auto-fix: false] - - prealloc # Finds slice declarations that could potentially be preallocated [fast: true, auto-fix: false] - - predeclared # find code that shadows one of Go's predeclared identifiers [fast: true, auto-fix: false] - # - promlinter # Check Prometheus metrics naming via promlint [fast: true, auto-fix: false] - - reassign # Checks that package variables are not reassigned [fast # false, auto-fix # false] - - revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. [fast: false, auto-fix: false] - - rowserrcheck # checks whether Err of rows is checked successfully [fast: false, auto-fix: false] - # - scopelint # [deprecated] Scopelint checks for unpinned variables in go programs [fast # true, auto-fix # false] - - sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed. [fast: false, auto-fix: false] - # - structcheck # [deprecated] Finds unused struct fields [fast # false, auto-fix # false] - - stylecheck # Stylecheck is a replacement for golint [fast: false, auto-fix: false] - # - tagliatelle # Checks the struct tags. [fast: true, auto-fix: false] - - tenv # tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17 [fast: false, auto-fix: false] - - testableexamples # linter checks if examples are testable (have an expected output) [fast # true, auto-fix # false] - # - testpackage # linter that makes you use a separate _test package [fast: true, auto-fix: false] - - thelper # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers [fast: false, auto-fix: false] - - tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes [fast: false, auto-fix: false] - - unconvert # Remove unnecessary type conversions [fast: false, auto-fix: false] - - unparam # Reports unused function parameters [fast: false, auto-fix: false] - - usestdlibvars # A linter that detect the possibility to use variables/constants from the Go standard library. [fast # true, auto-fix # false] - # - varcheck # [deprecated] Finds unused global variables and constants [fast # false, auto-fix # false] - # - varnamelen # checks that the length of a variable's name matches its scope [fast: false, auto-fix: false] - - wastedassign # wastedassign finds wasted assignment statements. [fast: false, auto-fix: false] - - whitespace # Tool for detection of leading and trailing whitespace [fast: true, auto-fix: true] - - wrapcheck # Checks that errors returned from external packages are wrapped [fast: false, auto-fix: false] - - wsl # Whitespace Linter - Forces you to use empty lines! [fast: true, auto-fix: false] + - gochecksumtype # Run exhaustiveness checks on Go "sum types" [fast: false, auto-fix: false] + - gocognit # Computes and checks the cognitive complexity of functions [fast: true, auto-fix: false] + - goconst # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false] + - gocritic # Provides diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false] + - gocyclo # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false] + - godot # Check if comments end in a period [fast: true, auto-fix: true] + - godox # Tool for detection of FIXME, TODO and other comment keywords [fast: true, auto-fix: false] + #- goerr113 # Go linter to check the errors handling expressions [fast: false, auto-fix: false] + - gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true] + - gofumpt # Gofumpt checks whether code was gofumpt-ed. [fast: true, auto-fix: true] + - goheader # Checks is file header matches to pattern [fast: true, auto-fix: false] + - goimports # Check import statements are formatted according to the 'goimport' command. Reformat imports in autofix mode. [fast: true, auto-fix: true] + #- gomnd # An analyzer to detect magic numbers. [fast: true, auto-fix: false] + - gomoddirectives # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. [fast: true, auto-fix: false] + - gomodguard # Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations. [fast: true, auto-fix: false] + - goprintffuncname # Checks that printf-like functions are named with `f` at the end [fast: true, auto-fix: false] + - gosec # (gas): Inspects source code for security problems [fast: false, auto-fix: false] + - gosimple # (megacheck): Linter for Go source code that specializes in simplifying code [fast: false, auto-fix: false] + - gosmopolitan # Report certain i18n/l10n anti-patterns in your Go codebase [fast: false, auto-fix: false] + - govet # (vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false] + - grouper # An analyzer to analyze expression groups. [fast: true, auto-fix: false] + - importas # Enforces consistent import aliases [fast: false, auto-fix: false] + - inamedparam # reports interfaces with unnamed method parameters [fast: true, auto-fix: false] + - ineffassign # Detects when assignments to existing variables are not used [fast: true, auto-fix: false] + - interfacebloat # A linter that checks the number of methods inside an interface. [fast: true, auto-fix: false] + #- ireturn # Accept Interfaces, Return Concrete Types [fast: false, auto-fix: false] + #- lll # Reports long lines [fast: true, auto-fix: false] + - loggercheck # (logrlint): Checks key value pairs for common logger libraries (kitlog,klog,logr,zap). [fast: false, auto-fix: false] + - maintidx # maintidx measures the maintainability index of each function. [fast: true, auto-fix: false] + - makezero # Finds slice declarations with non-zero initial length [fast: false, auto-fix: false] + - mirror # reports wrong mirror patterns of bytes/strings usage [fast: false, auto-fix: false] + - misspell # Finds commonly misspelled English words in comments [fast: true, auto-fix: true] + #- musttag # enforce field tags in (un)marshaled structs [fast: false, auto-fix: false] + - nakedret # Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false] + - nestif # Reports deeply nested if statements [fast: true, auto-fix: false] + - nilerr # Finds the code that returns nil even if it checks that the error is not nil. [fast: false, auto-fix: false] + - nilnil # Checks that there is no simultaneous return of `nil` error and an invalid value. [fast: false, auto-fix: false] + #- nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false] + - noctx # noctx finds sending http request without context.Context [fast: false, auto-fix: false] + - nolintlint # Reports ill-formed or insufficient nolint directives [fast: true, auto-fix: false] + - nonamedreturns # Reports all named returns [fast: false, auto-fix: false] + - nosprintfhostport # Checks for misuse of Sprintf to construct a host with port in a URL. [fast: true, auto-fix: false] + - paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test [fast: false, auto-fix: false] + - perfsprint # Checks that fmt.Sprintf can be replaced with a faster alternative. [fast: false, auto-fix: false] + - prealloc # Finds slice declarations that could potentially be pre-allocated [fast: true, auto-fix: false] + - predeclared # find code that shadows one of Go's predeclared identifiers [fast: true, auto-fix: false] + - promlinter # Check Prometheus metrics naming via promlint [fast: true, auto-fix: false] + - protogetter # Reports direct reads from proto message fields when getters should be used [fast: false, auto-fix: true] + - reassign # Checks that package variables are not reassigned [fast: false, auto-fix: false] + - revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. [fast: false, auto-fix: false] + - rowserrcheck # checks whether Err of rows is checked successfully [fast: false, auto-fix: false] + - sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed. [fast: false, auto-fix: false] + - staticcheck # (megacheck): It's a set of rules from staticcheck. It's not the same thing as the staticcheck binary. The author of staticcheck doesn't support or approve the use of staticcheck as a library inside golangci-lint. [fast: false, auto-fix: false] + - stylecheck # Stylecheck is a replacement for golint [fast: false, auto-fix: false] + - tagalign # check that struct tags are well aligned [fast: true, auto-fix: true] + #- tagliatelle # Checks the struct tags. [fast: true, auto-fix: false] + - tenv # tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17 [fast: false, auto-fix: false] + - testableexamples # linter checks if examples are testable (have an expected output) [fast: true, auto-fix: false] + - testifylint # Checks usage of github.com/stretchr/testify. [fast: false, auto-fix: false] + #- testpackage # linter that makes you use a separate _test package [fast: true, auto-fix: false] + - thelper # thelper detects Go test helpers without t.Helper() call and checks the consistency of test helpers [fast: false, auto-fix: false] + - tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes [fast: false, auto-fix: false] + - unconvert # Remove unnecessary type conversions [fast: false, auto-fix: false] + - unparam # Reports unused function parameters [fast: false, auto-fix: false] + - unused # (megacheck): Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false] + - usestdlibvars # A linter that detect the possibility to use variables/constants from the Go standard library. [fast: true, auto-fix: false] + #- varnamelen # checks that the length of a variable's name matches its scope [fast: false, auto-fix: false] + - wastedassign # wastedassign finds wasted assignment statements. [fast: false, auto-fix: false] + - whitespace # Tool for detection of leading and trailing whitespace [fast: true, auto-fix: true] + - wrapcheck # Checks that errors returned from external packages are wrapped [fast: false, auto-fix: false] + - wsl # Whitespace Linter - Forces you to use empty lines! [fast: true, auto-fix: false] + - zerologlint # Detects the wrong usage of `zerolog` that a user forgets to dispatch with `Send` or `Msg`. [fast: false, auto-fix: false] diff --git a/.travis.yml b/.travis.yml index 5afe1e4..1112c13 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ branches: - develop go: - - '1.18' + - '1.21' services: - docker diff --git a/internal/cli/bind_test.go b/internal/cli/bind_test.go index 5ce0189..c689cee 100644 --- a/internal/cli/bind_test.go +++ b/internal/cli/bind_test.go @@ -2,7 +2,6 @@ package cli import ( "context" - "errors" "net" "sync" "testing" @@ -108,10 +107,10 @@ func Test_bind(t *testing.T) { require.Error(t, err, "bind() error = %v, wantErr %v", err, tt.wantErr) } if tt.wantTimeoutErr { - require.True(t, errors.Is(err, context.DeadlineExceeded), + require.ErrorIs(t, err, context.DeadlineExceeded, "bind() error = %v, wantErr %v", err, context.DeadlineExceeded) } else { - require.False(t, errors.Is(err, context.DeadlineExceeded), "bind() unexpected timeout error") + require.NotErrorIs(t, err, context.DeadlineExceeded, "bind() unexpected timeout error") } }) } diff --git a/internal/cli/config_test.go b/internal/cli/config_test.go index 4acea3f..ef214ea 100644 --- a/internal/cli/config_test.go +++ b/internal/cli/config_test.go @@ -16,7 +16,7 @@ func Test_appConfig_SetDefaults(t *testing.T) { c.SetDefaults(v) require.True(t, v.GetBool("enabled")) - require.Equal(t, 5, len(v.AllKeys())) + require.Len(t, v.AllKeys(), 5) } func getValidTestConfig() appConfig { diff --git a/internal/httphandler/httphandler_test.go b/internal/httphandler/httphandler_test.go index e4c7cdf..4718922 100644 --- a/internal/httphandler/httphandler_test.go +++ b/internal/httphandler/httphandler_test.go @@ -24,7 +24,7 @@ func TestHTTPHandler_BindHTTP(t *testing.T) { mtr := metrics.New() h := &HTTPHandler{mtr} got := h.BindHTTP(testutil.Context()) - require.Equal(t, 1, len(got)) + require.Len(t, got, 1) } func TestHTTPHandler_handleStats(t *testing.T) { diff --git a/internal/metrics/metrics_test.go b/internal/metrics/metrics_test.go index 9cdd93a..a542344 100644 --- a/internal/metrics/metrics_test.go +++ b/internal/metrics/metrics_test.go @@ -33,7 +33,7 @@ func TestSetUptime(t *testing.T) { m.SetUptime(v) i := testutil.ToFloat64(m.collectorUptime) - require.Equal(t, float64(v), i) + require.InDelta(t, float64(v), i, 0.001) } func TestSetMemoryTotal(t *testing.T) { @@ -45,7 +45,7 @@ func TestSetMemoryTotal(t *testing.T) { m.SetMemoryTotal(v) i := testutil.ToFloat64(m.collectorMemoryTotal) - require.Equal(t, float64(v), i) + require.InDelta(t, float64(v), i, 0.001) } func TestSetMemoryFree(t *testing.T) { @@ -57,7 +57,7 @@ func TestSetMemoryFree(t *testing.T) { m.SetMemoryFree(v) i := testutil.ToFloat64(m.collectorMemoryFree) - require.Equal(t, float64(v), i) + require.InDelta(t, float64(v), i, 0.001) } func TestSetLoad1(t *testing.T) { @@ -69,7 +69,7 @@ func TestSetLoad1(t *testing.T) { m.SetLoad1(v) i := testutil.ToFloat64(m.collectorLoad1) - require.Equal(t, v, i) + require.InDelta(t, v, i, 0.001) } func TestSetLoad5(t *testing.T) { @@ -81,7 +81,7 @@ func TestSetLoad5(t *testing.T) { m.SetLoad5(v) i := testutil.ToFloat64(m.collectorLoad5) - require.Equal(t, v, i) + require.InDelta(t, v, i, 0.001) } func TestSetLoad15(t *testing.T) { @@ -93,7 +93,7 @@ func TestSetLoad15(t *testing.T) { m.SetLoad15(v) i := testutil.ToFloat64(m.collectorLoad15) - require.Equal(t, v, i) + require.InDelta(t, v, i, 0.001) } func TestSetTempCPU(t *testing.T) { @@ -105,7 +105,7 @@ func TestSetTempCPU(t *testing.T) { m.SetTempCPU(v) i := testutil.ToFloat64(m.collectorTempCPU) - require.Equal(t, v, i) + require.InDelta(t, v, i, 0.001) } func TestSetDiskTotal(t *testing.T) { @@ -117,7 +117,7 @@ func TestSetDiskTotal(t *testing.T) { m.SetDiskTotal(v) i := testutil.ToFloat64(m.collectorDiskTotal) - require.Equal(t, float64(v), i) + require.InDelta(t, float64(v), i, 0.001) } func TestSetDiskFree(t *testing.T) { @@ -129,7 +129,7 @@ func TestSetDiskFree(t *testing.T) { m.SetDiskFree(v) i := testutil.ToFloat64(m.collectorDiskFree) - require.Equal(t, float64(v), i) + require.InDelta(t, float64(v), i, 0.001) } func TestSetNetwork(t *testing.T) { @@ -143,8 +143,8 @@ func TestSetNetwork(t *testing.T) { m.SetNetwork("test", rx, tx) rc := testutil.ToFloat64(m.collectorNetworkRx) - require.Equal(t, float64(rx), rc) + require.InDelta(t, float64(rx), rc, 0.001) tc := testutil.ToFloat64(m.collectorNetworkTx) - require.Equal(t, float64(tx), tc) + require.InDelta(t, float64(tx), tc, 0.001) }