From 612b5ad8b13126929d8aecb4104ea747d2807f41 Mon Sep 17 00:00:00 2001 From: Dane Strandboge <136023093+DStrand1@users.noreply.github.com> Date: Tue, 4 Jun 2024 03:33:37 -0500 Subject: [PATCH] chore: Fix errcheck CI warnings outside of plugins directory (#15390) --- .golangci.yml | 8 +++ cmd/telegraf/telegraf.go | 3 +- config/config.go | 4 +- config/config_test.go | 11 ++-- config/envvar.go | 55 +++++++++++--------- filter/filter_test.go | 18 ++++--- internal/globpath/globpath.go | 4 ++ internal/globpath/globpath_test.go | 3 +- internal/internal_test.go | 38 +++++++------- internal/process/process.go | 3 +- internal/rotate/file_writer_test.go | 29 +++++++---- internal/snmp/field.go | 20 ++++--- internal/snmp/translator_gosmi.go | 5 +- internal/templating/engine_test.go | 3 +- logger/default_logger_test.go | 3 +- migrations/inputs_httpjson/migration_test.go | 3 +- testutil/accumulator.go | 9 ---- tools/package_incus_test/container.go | 35 +++++++++---- 18 files changed, 159 insertions(+), 95 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index e06919170..4de39de91 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -71,6 +71,7 @@ linters-settings: - "(*hash/maphash.Hash).Write" - "(*hash/maphash.Hash).WriteByte" - "(*hash/maphash.Hash).WriteString" + check-blank: true gocritic: # Disable all checks. # Default: false @@ -325,6 +326,9 @@ issues: - package comment should be of the form "(.+)... # EXC0015 revive: Annoying issue about not having a comment. The rare codebase has such comments - should have a package comment + # nolintlint: directive `//nolint:errcheck` is unused for linter "errcheck" + # temporary while these are being fixed + - directive `//nolint:errcheck //.*` is unused for linter "errcheck" # Excluding configuration per-path, per-linter, per-text and per-source exclude-rules: @@ -335,6 +339,10 @@ issues: - path: cmd/telegraf/(main|printer|cmd_plugins).go text: "Error return value of `outputBuffer.Write` is not checked" #errcheck + - path: plugins/* + linters: + - errcheck # temporary as this linter is gradually being applied across the codebase + - path: _test\.go text: "Potential hardcoded credentials" #gosec:G101 diff --git a/cmd/telegraf/telegraf.go b/cmd/telegraf/telegraf.go index c026283a6..a324a4e07 100644 --- a/cmd/telegraf/telegraf.go +++ b/cmd/telegraf/telegraf.go @@ -406,7 +406,8 @@ func (t *Telegraf) runAgent(ctx context.Context, reloadConfig bool) error { // SdNotify() only tries to notify if the NOTIFY_SOCKET environment is set, so it's safe to call when systemd isn't present. // Ignore the return values here because they're not valid for platforms that don't use systemd. // For platforms that use systemd, telegraf doesn't log if the notification failed. - _, _ = daemon.SdNotify(false, daemon.SdNotifyReady) + //nolint:errcheck // see above + daemon.SdNotify(false, daemon.SdNotifyReady) if t.once { wait := time.Duration(t.testWait) * time.Second diff --git a/config/config.go b/config/config.go index c038ab23a..821dd83ef 100644 --- a/config/config.go +++ b/config/config.go @@ -955,9 +955,9 @@ func (c *Config) probeParser(parentcategory string, parentname string, table *as } // Try to parse the options to detect if any of them is misspelled - // We don't actually use the parser, so no need to check the error. parser := creator("") - _ = c.toml.UnmarshalTable(table, parser) + //nolint:errcheck // We don't actually use the parser, so no need to check the error. + c.toml.UnmarshalTable(table, parser) return true } diff --git a/config/config_test.go b/config/config_test.go index 4f22ef1e6..5ad37cc82 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -519,7 +519,8 @@ func TestConfig_AzureMonitorNamespacePrefix(t *testing.T) { func TestGetDefaultConfigPathFromEnvURL(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) - _, _ = w.Write([]byte("[agent]\ndebug = true")) + _, err := w.Write([]byte("[agent]\ndebug = true")) + require.NoError(t, err) })) defer ts.Close() @@ -1193,7 +1194,8 @@ func TestPersisterInputStoreLoad(t *testing.T) { p.state.Version++ p.state.Offset += uint64(i + 1) p.state.Bits = append(p.state.Bits, len(p.state.Bits)) - p.state.Modified, _ = time.Parse(time.RFC3339, "2022-11-03T16:49:00+02:00") + p.state.Modified, err = time.Parse(time.RFC3339, "2022-11-03T16:49:00+02:00") + require.NoError(t, err) // Store the state for later comparison expected[plugin.ID()] = p.GetState() @@ -1542,7 +1544,10 @@ type MockupStatePlugin struct { } func (m *MockupStatePlugin) Init() error { - t0, _ := time.Parse(time.RFC3339, "2021-04-24T23:42:00+02:00") + t0, err := time.Parse(time.RFC3339, "2021-04-24T23:42:00+02:00") + if err != nil { + return err + } m.state = MockupState{ Name: "mockup", Bits: []int{}, diff --git a/config/envvar.go b/config/envvar.go index 22f48c7bd..981c82249 100644 --- a/config/envvar.go +++ b/config/envvar.go @@ -39,17 +39,20 @@ func (t *trimmer) process() error { // Switch states if we need to switch c { case '\\': - _ = t.input.UnreadByte() + //nolint:errcheck // next byte is known + t.input.UnreadByte() err = t.escape() case '\'': - _ = t.input.UnreadByte() + //nolint:errcheck // next byte is known + t.input.UnreadByte() if t.hasNQuotes(c, 3) { err = t.tripleSingleQuote() } else { err = t.singleQuote() } case '"': - _ = t.input.UnreadByte() + //nolint:errcheck // next byte is known + t.input.UnreadByte() if t.hasNQuotes(c, 3) { err = t.tripleDoubleQuote() } else { @@ -85,8 +88,8 @@ func (t *trimmer) hasNQuotes(ref byte, limit int64) bool { if count < limit { offset-- } - // Unread the matched characters - _, _ = t.input.Seek(offset, io.SeekCurrent) + //nolint:errcheck // Unread the already matched characters + t.input.Seek(offset, io.SeekCurrent) return count >= limit } @@ -99,8 +102,8 @@ func (t *trimmer) readWriteByte() (byte, error) { } func (t *trimmer) escape() error { - // Consumer the known starting backslash and quote - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the known starting backslash and quote + t.readWriteByte() // Read the next character which is the escaped one and exit _, err := t.readWriteByte() @@ -108,8 +111,8 @@ func (t *trimmer) escape() error { } func (t *trimmer) singleQuote() error { - // Consumer the known starting quote - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the known starting quote + t.readWriteByte() // Read bytes until EOF, line end or another single quote for { @@ -121,8 +124,8 @@ func (t *trimmer) singleQuote() error { func (t *trimmer) tripleSingleQuote() error { for i := 0; i < 3; i++ { - // Consumer the known starting quotes - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the known starting quotes + t.readWriteByte() } // Read bytes until EOF or another set of triple single quotes @@ -133,17 +136,18 @@ func (t *trimmer) tripleSingleQuote() error { } if c == '\'' && t.hasNQuotes('\'', 2) { - // Consumer the two additional ending quotes - _, _ = t.readWriteByte() - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the two additional ending quotes + t.readWriteByte() + //nolint:errcheck // Consume the two additional ending quotes + t.readWriteByte() return nil } } } func (t *trimmer) doubleQuote() error { - // Consumer the known starting quote - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the known starting quote + t.readWriteByte() // Read bytes until EOF, line end or another double quote for { @@ -153,8 +157,8 @@ func (t *trimmer) doubleQuote() error { } switch c { case '\\': - // Found escaped character - _ = t.input.UnreadByte() + //nolint:errcheck // Consume the found escaped character + t.input.UnreadByte() if err := t.escape(); err != nil { return err } @@ -169,8 +173,8 @@ func (t *trimmer) doubleQuote() error { func (t *trimmer) tripleDoubleQuote() error { for i := 0; i < 3; i++ { - // Consumer the known starting quotes - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the known starting quotes + t.readWriteByte() } // Read bytes until EOF or another set of triple double quotes @@ -181,8 +185,8 @@ func (t *trimmer) tripleDoubleQuote() error { } switch c { case '\\': - // Found escaped character - _ = t.input.UnreadByte() + //nolint:errcheck // Consume the found escape character + t.input.UnreadByte() if err := t.escape(); err != nil { return err } @@ -190,9 +194,10 @@ func (t *trimmer) tripleDoubleQuote() error { case '"': t.output.WriteByte(c) if t.hasNQuotes('"', 2) { - // Consumer the two additional ending quotes - _, _ = t.readWriteByte() - _, _ = t.readWriteByte() + //nolint:errcheck // Consume the two additional ending quotes + t.readWriteByte() + //nolint:errcheck // Consume the two additional ending quotes + t.readWriteByte() return nil } continue diff --git a/filter/filter_test.go b/filter/filter_test.go index 4268ccbbc..05a78bd4a 100644 --- a/filter/filter_test.go +++ b/filter/filter_test.go @@ -70,7 +70,8 @@ func TestIncludeExclude(t *testing.T) { var benchbool bool func BenchmarkFilterSingleNoGlobFalse(b *testing.B) { - f, _ := Compile([]string{"cpu"}) + f, err := Compile([]string{"cpu"}) + require.NoError(b, err) var tmp bool for n := 0; n < b.N; n++ { tmp = f.Match("network") @@ -79,7 +80,8 @@ func BenchmarkFilterSingleNoGlobFalse(b *testing.B) { } func BenchmarkFilterSingleNoGlobTrue(b *testing.B) { - f, _ := Compile([]string{"cpu"}) + f, err := Compile([]string{"cpu"}) + require.NoError(b, err) var tmp bool for n := 0; n < b.N; n++ { tmp = f.Match("cpu") @@ -88,7 +90,8 @@ func BenchmarkFilterSingleNoGlobTrue(b *testing.B) { } func BenchmarkFilter(b *testing.B) { - f, _ := Compile([]string{"cpu", "mem", "net*"}) + f, err := Compile([]string{"cpu", "mem", "net*"}) + require.NoError(b, err) var tmp bool for n := 0; n < b.N; n++ { tmp = f.Match("network") @@ -97,7 +100,8 @@ func BenchmarkFilter(b *testing.B) { } func BenchmarkFilterNoGlob(b *testing.B) { - f, _ := Compile([]string{"cpu", "mem", "net"}) + f, err := Compile([]string{"cpu", "mem", "net"}) + require.NoError(b, err) var tmp bool for n := 0; n < b.N; n++ { tmp = f.Match("net") @@ -106,8 +110,9 @@ func BenchmarkFilterNoGlob(b *testing.B) { } func BenchmarkFilter2(b *testing.B) { - f, _ := Compile([]string{"aa", "bb", "c", "ad", "ar", "at", "aq", + f, err := Compile([]string{"aa", "bb", "c", "ad", "ar", "at", "aq", "aw", "az", "axxx", "ab", "cpu", "mem", "net*"}) + require.NoError(b, err) var tmp bool for n := 0; n < b.N; n++ { tmp = f.Match("network") @@ -116,8 +121,9 @@ func BenchmarkFilter2(b *testing.B) { } func BenchmarkFilter2NoGlob(b *testing.B) { - f, _ := Compile([]string{"aa", "bb", "c", "ad", "ar", "at", "aq", + f, err := Compile([]string{"aa", "bb", "c", "ad", "ar", "at", "aq", "aw", "az", "axxx", "ab", "cpu", "mem", "net"}) + require.NoError(b, err) var tmp bool for n := 0; n < b.N; n++ { tmp = f.Match("net") diff --git a/internal/globpath/globpath.go b/internal/globpath/globpath.go index 98b286d79..d18b90b9d 100644 --- a/internal/globpath/globpath.go +++ b/internal/globpath/globpath.go @@ -50,6 +50,7 @@ func (g *GlobPath) Match() []string { g.path = strings.ReplaceAll(g.path, "**/**", "**") g.path = strings.ReplaceAll(g.path, "**", "**/**") + //nolint:errcheck // pattern is known files, _ := doublestar.Glob(g.path) return files } @@ -58,6 +59,7 @@ func (g *GlobPath) Match() []string { // the host platform separator. func (g *GlobPath) MatchString(path string) bool { if !g.HasSuperMeta { + //nolint:errcheck // pattern is known res, _ := filepath.Match(g.path, path) return res } @@ -75,9 +77,11 @@ func (g *GlobPath) GetRoots() []string { return []string{g.path} } if !g.HasSuperMeta { + //nolint:errcheck // pattern is known matches, _ := filepath.Glob(g.path) return matches } + //nolint:errcheck // pattern is known roots, _ := filepath.Glob(g.rootGlob) return roots } diff --git a/internal/globpath/globpath_test.go b/internal/globpath/globpath_test.go index a245489b0..0f5408095 100644 --- a/internal/globpath/globpath_test.go +++ b/internal/globpath/globpath_test.go @@ -69,7 +69,8 @@ func TestRootGlob(t *testing.T) { } for _, test := range tests { - actual, _ := Compile(test.input) + actual, err := Compile(test.input) + require.NoError(t, err) require.Equal(t, actual.rootGlob, test.output) } } diff --git a/internal/internal_test.go b/internal/internal_test.go index fd2b9d0f4..5d0fde9d7 100644 --- a/internal/internal_test.go +++ b/internal/internal_test.go @@ -44,21 +44,17 @@ func TestSnakeCase(t *testing.T) { } } -var ( - sleepbin, _ = exec.LookPath("sleep") - echobin, _ = exec.LookPath("echo") - shell, _ = exec.LookPath("sh") -) - func TestRunTimeout(t *testing.T) { t.Skip("Skipping test due to random failures & a data race when running test-all.") - if sleepbin == "" { + sleepbin, err := exec.LookPath("sleep") + if err != nil || sleepbin == "" { t.Skip("'sleep' binary not available on OS, skipping.") } + cmd := exec.Command(sleepbin, "10") start := time.Now() - err := RunTimeout(cmd, time.Millisecond*20) + err = RunTimeout(cmd, time.Millisecond*20) elapsed := time.Since(start) require.Equal(t, ErrTimeout, err) @@ -71,12 +67,13 @@ func TestRunTimeoutFastExit(t *testing.T) { if testing.Short() { t.Skip("Skipping test due to random failures.") } - if echobin == "" { + echobin, err := exec.LookPath("echo") + if err != nil || echobin == "" { t.Skip("'echo' binary not available on OS, skipping.") } cmd := exec.Command(echobin) start := time.Now() - err := RunTimeout(cmd, time.Millisecond*20) + err = RunTimeout(cmd, time.Millisecond*20) buf := &bytes.Buffer{} log.SetOutput(buf) elapsed := time.Since(start) @@ -93,12 +90,13 @@ func TestRunTimeoutFastExit(t *testing.T) { func TestCombinedOutputTimeout(t *testing.T) { // TODO: Fix this test t.Skip("Test failing too often, skip for now and revisit later.") - if sleepbin == "" { + sleepbin, err := exec.LookPath("sleep") + if err != nil || sleepbin == "" { t.Skip("'sleep' binary not available on OS, skipping.") } cmd := exec.Command(sleepbin, "10") start := time.Now() - _, err := CombinedOutputTimeout(cmd, time.Millisecond*20) + _, err = CombinedOutputTimeout(cmd, time.Millisecond*20) elapsed := time.Since(start) require.Equal(t, ErrTimeout, err) @@ -107,7 +105,8 @@ func TestCombinedOutputTimeout(t *testing.T) { } func TestCombinedOutput(t *testing.T) { - if echobin == "" { + echobin, err := exec.LookPath("echo") + if err != nil || echobin == "" { t.Skip("'echo' binary not available on OS, skipping.") } cmd := exec.Command(echobin, "foo") @@ -120,7 +119,8 @@ func TestCombinedOutput(t *testing.T) { // test that CombinedOutputTimeout and exec.Cmd.CombinedOutput return // the same output from a failed command. func TestCombinedOutputError(t *testing.T) { - if shell == "" { + shell, err := exec.LookPath("sh") + if err != nil || shell == "" { t.Skip("'sh' binary not available on OS, skipping.") } cmd := exec.Command(shell, "-c", "false") @@ -135,11 +135,12 @@ func TestCombinedOutputError(t *testing.T) { } func TestRunError(t *testing.T) { - if shell == "" { + shell, err := exec.LookPath("sh") + if err != nil || shell == "" { t.Skip("'sh' binary not available on OS, skipping.") } cmd := exec.Command(shell, "-c", "false") - err := RunTimeout(cmd, time.Second) + err = RunTimeout(cmd, time.Second) require.Error(t, err) } @@ -306,8 +307,9 @@ func TestAlignDuration(t *testing.T) { func TestAlignTime(t *testing.T) { rfc3339 := func(value string) time.Time { - t, _ := time.Parse(time.RFC3339, value) - return t + tt, err := time.Parse(time.RFC3339, value) + require.NoError(t, err) + return tt } tests := []struct { diff --git a/internal/process/process.go b/internal/process/process.go index 979a53848..784cf91f5 100644 --- a/internal/process/process.go +++ b/internal/process/process.go @@ -210,5 +210,6 @@ func isQuitting(ctx context.Context) bool { } func defaultReadPipe(r io.Reader) { - _, _ = io.Copy(io.Discard, r) + //nolint:errcheck // Discarding the data, no need to handle an error + io.Copy(io.Discard, r) } diff --git a/internal/rotate/file_writer_test.go b/internal/rotate/file_writer_test.go index 5b11f996b..4ebc74c12 100644 --- a/internal/rotate/file_writer_test.go +++ b/internal/rotate/file_writer_test.go @@ -19,13 +19,15 @@ func TestFileWriter_NoRotation(t *testing.T) { require.NoError(t, err) _, err = writer.Write([]byte("Hello World 2")) require.NoError(t, err) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 1) } func TestFileWriter_TimeRotation(t *testing.T) { tempDir := t.TempDir() - interval, _ := time.ParseDuration("10ms") + interval, err := time.ParseDuration("10ms") + require.NoError(t, err) writer, err := NewFileWriter(filepath.Join(tempDir, "test"), interval, 0, -1) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, writer.Close()) }) @@ -35,22 +37,25 @@ func TestFileWriter_TimeRotation(t *testing.T) { time.Sleep(interval) _, err = writer.Write([]byte("Hello World 2")) require.NoError(t, err) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 2) } func TestFileWriter_ReopenTimeRotation(t *testing.T) { tempDir := t.TempDir() - interval, _ := time.ParseDuration("10ms") + interval, err := time.ParseDuration("10ms") + require.NoError(t, err) filePath := filepath.Join(tempDir, "test.log") - err := os.WriteFile(filePath, []byte("Hello World"), 0640) + err = os.WriteFile(filePath, []byte("Hello World"), 0640) time.Sleep(interval) require.NoError(t, err) writer, err := NewFileWriter(filepath.Join(tempDir, "test.log"), interval, 0, -1) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, writer.Close()) }) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 2) } @@ -65,7 +70,8 @@ func TestFileWriter_SizeRotation(t *testing.T) { require.NoError(t, err) _, err = writer.Write([]byte("World 2")) require.NoError(t, err) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 2) } @@ -81,7 +87,8 @@ func TestFileWriter_ReopenSizeRotation(t *testing.T) { _, err = writer.Write([]byte("Hello World Again")) require.NoError(t, err) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 2) } @@ -108,7 +115,8 @@ func TestFileWriter_DeleteArchives(t *testing.T) { _, err = writer.Write([]byte("Third file")) require.NoError(t, err) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 3) for _, tempFile := range files { @@ -135,7 +143,8 @@ func TestFileWriter_CloseDoesNotRotate(t *testing.T) { require.NoError(t, err) require.NoError(t, writer.Close()) - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 1) require.Regexp(t, "^test.log$", files[0].Name()) } diff --git a/internal/snmp/field.go b/internal/snmp/field.go index 603897ca4..328037003 100644 --- a/internal/snmp/field.go +++ b/internal/snmp/field.go @@ -92,7 +92,7 @@ func (f *Field) Init(tr Translator) error { } // fieldConvert converts from any type according to the conv specification -func (f *Field) Convert(ent gosnmp.SnmpPDU) (v interface{}, err error) { +func (f *Field) Convert(ent gosnmp.SnmpPDU) (interface{}, error) { if f.Conversion == "" { if bs, ok := ent.Value.([]byte); ok { return string(bs), nil @@ -100,6 +100,7 @@ func (f *Field) Convert(ent gosnmp.SnmpPDU) (v interface{}, err error) { return ent.Value, nil } + var v interface{} var d int if _, err := fmt.Sscanf(f.Conversion, "float(%d)", &d); err == nil || f.Conversion == "float" { v = ent.Value @@ -129,10 +130,16 @@ func (f *Field) Convert(ent gosnmp.SnmpPDU) (v interface{}, err error) { case uint64: v = float64(vt) / math.Pow10(d) case []byte: - vf, _ := strconv.ParseFloat(string(vt), 64) + vf, err := strconv.ParseFloat(string(vt), 64) + if err != nil { + return nil, fmt.Errorf("failed to convert field to float with value %s: %w", vt, err) + } v = vf / math.Pow10(d) case string: - vf, _ := strconv.ParseFloat(vt, 64) + vf, err := strconv.ParseFloat(vt, 64) + if err != nil { + return nil, fmt.Errorf("failed to convert field to float with value %s: %w", vt, err) + } v = vf / math.Pow10(d) } return v, nil @@ -140,6 +147,7 @@ func (f *Field) Convert(ent gosnmp.SnmpPDU) (v interface{}, err error) { if f.Conversion == "int" { v = ent.Value + var err error switch vt := v.(type) { case float32: v = int64(vt) @@ -166,11 +174,11 @@ func (f *Field) Convert(ent gosnmp.SnmpPDU) (v interface{}, err error) { case uint64: v = int64(vt) case []byte: - v, _ = strconv.ParseInt(string(vt), 10, 64) + v, err = strconv.ParseInt(string(vt), 10, 64) case string: - v, _ = strconv.ParseInt(vt, 10, 64) + v, err = strconv.ParseInt(vt, 10, 64) } - return v, nil + return v, err } if f.Conversion == "hwaddr" { diff --git a/internal/snmp/translator_gosmi.go b/internal/snmp/translator_gosmi.go index 10509c62e..dc9e10195 100644 --- a/internal/snmp/translator_gosmi.go +++ b/internal/snmp/translator_gosmi.go @@ -136,7 +136,10 @@ func snmpTranslateCall(oid string) (mibName string, oidNum string, oidText strin } } oidNum = strings.Join(s, ".") - out, _ = gosmi.GetNodeByOID(types.OidMustFromString(oidNum)) + out, err = gosmi.GetNodeByOID(types.OidMustFromString(oidNum)) + if err != nil { + return oid, oid, oid, "", out, err + } } else { out, err = gosmi.GetNodeByOID(types.OidMustFromString(oid)) oidNum = oid diff --git a/internal/templating/engine_test.go b/internal/templating/engine_test.go index 1246db24d..726a2d560 100644 --- a/internal/templating/engine_test.go +++ b/internal/templating/engine_test.go @@ -7,7 +7,8 @@ import ( ) func TestEngineAlternateSeparator(t *testing.T) { - defaultTemplate, _ := NewDefaultTemplateWithPattern("topic*") + defaultTemplate, err := NewDefaultTemplateWithPattern("measurement*") + require.NoError(t, err) engine, err := NewEngine("_", defaultTemplate, []string{ "/ /*/*/* /measurement/origin/measurement*", }) diff --git a/logger/default_logger_test.go b/logger/default_logger_test.go index e4641b7ed..a93e73d55 100644 --- a/logger/default_logger_test.go +++ b/logger/default_logger_test.go @@ -111,7 +111,8 @@ func TestWriteToFileInRotation(t *testing.T) { log.Printf("I! TEST 1") // Writes 31 bytes, will rotate log.Printf("I! TEST") // Writes 29 byes, no rotation expected - files, _ := os.ReadDir(tempDir) + files, err := os.ReadDir(tempDir) + require.NoError(t, err) require.Len(t, files, 2) } diff --git a/migrations/inputs_httpjson/migration_test.go b/migrations/inputs_httpjson/migration_test.go index 02cbce2ea..fda159bcc 100644 --- a/migrations/inputs_httpjson/migration_test.go +++ b/migrations/inputs_httpjson/migration_test.go @@ -112,7 +112,8 @@ func TestParsing(t *testing.T) { // Start the test-server server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Path == "/stats" { - _, _ = w.Write(input) + _, err = w.Write(input) + require.NoError(t, err) } else { w.WriteHeader(http.StatusNotFound) } diff --git a/testutil/accumulator.go b/testutil/accumulator.go index 7be2fee35..be1f92b3c 100644 --- a/testutil/accumulator.go +++ b/testutil/accumulator.go @@ -1,7 +1,6 @@ package testutil import ( - "encoding/json" "fmt" "reflect" "sync" @@ -130,14 +129,6 @@ func (a *Accumulator) addMeasurement( } } - if a.debug { - pretty, _ := json.MarshalIndent(fields, "", " ") - prettyTags, _ := json.MarshalIndent(tags, "", " ") - msg := fmt.Sprintf("Adding Measurement [%s]\nFields:%s\nTags:%s\n", - measurement, string(pretty), string(prettyTags)) - fmt.Print(msg) - } - m := &Metric{ Measurement: measurement, Fields: fieldsCopy, diff --git a/tools/package_incus_test/container.go b/tools/package_incus_test/container.go index 101c1765e..4d5d42b2e 100644 --- a/tools/package_incus_test/container.go +++ b/tools/package_incus_test/container.go @@ -68,8 +68,10 @@ func (c *Container) Create(image string) error { // delete the container func (c *Container) Delete() { - _ = c.client.Stop(c.Name) - _ = c.client.Delete(c.Name) + //nolint:errcheck // cleaning up state so no need to check for error + c.client.Stop(c.Name) + //nolint:errcheck // cleaning up state so no need to check for error + c.client.Delete(c.Name) } // installs the package from configured repos @@ -121,14 +123,17 @@ func (c *Container) CheckStatus(serviceName string) error { err = c.client.Exec(c.Name, "systemctl", "start", serviceName) if err != nil { - _ = c.client.Exec(c.Name, "systemctl", "status", serviceName) - _ = c.client.Exec(c.Name, "journalctl", "--no-pager", "--unit", serviceName) + //nolint:errcheck // cleaning up state so no need to check for error + c.client.Exec(c.Name, "systemctl", "status", serviceName) + //nolint:errcheck // cleaning up state so no need to check for error + c.client.Exec(c.Name, "journalctl", "--no-pager", "--unit", serviceName) return err } err = c.client.Exec(c.Name, "systemctl", "status", serviceName) if err != nil { - _ = c.client.Exec(c.Name, "journalctl", "--no-pager", "--unit", serviceName) + //nolint:errcheck // cleaning up state so no need to check for error + c.client.Exec(c.Name, "journalctl", "--no-pager", "--unit", serviceName) return err } @@ -188,11 +193,14 @@ func (c *Container) configureApt() error { return err } - _ = c.client.Exec( + err = c.client.Exec( c.Name, "bash", "-c", "--", "cat /etc/apt/sources.list.d/influxdata.list", ) + if err != nil { + return err + } err = c.client.Exec(c.Name, "apt-get", "update") if err != nil { @@ -213,11 +221,14 @@ func (c *Container) configureYum() error { return err } - _ = c.client.Exec( + err = c.client.Exec( c.Name, "bash", "-c", "--", "cat /etc/yum.repos.d/influxdata.repo", ) + if err != nil { + return err + } // will return a non-zero return code if there are packages to update return c.client.Exec(c.Name, "bash", "-c", "yum check-update || true") @@ -234,11 +245,14 @@ func (c *Container) configureDnf() error { return err } - _ = c.client.Exec( + err = c.client.Exec( c.Name, "bash", "-c", "--", "cat /etc/yum.repos.d/influxdata.repo", ) + if err != nil { + return err + } // will return a non-zero return code if there are packages to update return c.client.Exec(c.Name, "bash", "-c", "dnf check-update || true") @@ -255,11 +269,14 @@ func (c *Container) configureZypper() error { return err } - _ = c.client.Exec( + err = c.client.Exec( c.Name, "bash", "-c", "--", "cat /etc/zypp/repos.d/influxdata.repo", ) + if err != nil { + return err + } return c.client.Exec(c.Name, "zypper", "--no-gpg-checks", "refresh") }