Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(linters): Enable usetesting linter #16456

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ linters:
- unconvert
- unparam
- unused
- usetesting

linters-settings:
depguard:
Expand Down
3 changes: 1 addition & 2 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1103,11 +1103,10 @@ func TestConfigPluginIDsSame(t *testing.T) {

func TestPersisterInputStoreLoad(t *testing.T) {
// Reserve a temporary state file
file, err := os.CreateTemp("", "telegraf_state-*.json")
file, err := os.CreateTemp(t.TempDir(), "telegraf_state-*.json")
require.NoError(t, err)
filename := file.Name()
require.NoError(t, file.Close())
defer os.Remove(filename)

// Load the plugins
cstore := config.NewConfig()
Expand Down
16 changes: 16 additions & 0 deletions logger/structured_logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ func TestStructuredStderr(t *testing.T) {
}

func TestStructuredFile(t *testing.T) {
// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredFile"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Copy link
Member

@srebhan srebhan Jan 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm how about

Suggested change
// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredFile"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
tmpfile := filepath.Join(t.TempDir(), "test.log")

of course including the changes for the parameters... Same for the instances below.

Expand Down Expand Up @@ -59,6 +61,8 @@ func TestStructuredFile(t *testing.T) {
}

func TestStructuredFileDebug(t *testing.T) {
// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredFileDebug"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down Expand Up @@ -91,6 +95,8 @@ func TestStructuredFileDebug(t *testing.T) {
}

func TestStructuredFileError(t *testing.T) {
// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredFileError"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down Expand Up @@ -125,6 +131,8 @@ func TestStructuredFileError(t *testing.T) {
}

func TestStructuredAddDefaultLogLevel(t *testing.T) {
// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredAddDefaultLogLevel"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down Expand Up @@ -159,6 +167,8 @@ func TestStructuredAddDefaultLogLevel(t *testing.T) {
func TestStructuredDerivedLogger(t *testing.T) {
instance = defaultHandler()

// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredDerivedLogger"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down Expand Up @@ -196,6 +206,8 @@ func TestStructuredDerivedLogger(t *testing.T) {
func TestStructuredDerivedLoggerWithAttributes(t *testing.T) {
instance = defaultHandler()

// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredDerivedLoggerWithAttributes"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down Expand Up @@ -236,6 +248,8 @@ func TestStructuredDerivedLoggerWithAttributes(t *testing.T) {
}

func TestStructuredWriteToTruncatedFile(t *testing.T) {
// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredWriteToTruncatedFile"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down Expand Up @@ -310,6 +324,8 @@ func TestStructuredWriteToFileInRotation(t *testing.T) {
func TestStructuredLogMessageKey(t *testing.T) {
instance = defaultHandler()

// t.TempDir() doesn't work properly on windows for this case
//nolint:usetesting // "os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestStructuredLogMessageKey"
tmpfile, err := os.CreateTemp("", "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())
Expand Down
21 changes: 7 additions & 14 deletions logger/text_logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,8 @@ func TestTextStderr(t *testing.T) {
}

func TestTextFile(t *testing.T) {
tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand All @@ -46,9 +45,8 @@ func TestTextFile(t *testing.T) {
}

func TestTextFileDebug(t *testing.T) {
tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand All @@ -67,9 +65,8 @@ func TestTextFileDebug(t *testing.T) {
}

func TestTextFileError(t *testing.T) {
tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand All @@ -89,9 +86,8 @@ func TestTextFileError(t *testing.T) {
}

func TestTextAddDefaultLogLevel(t *testing.T) {
tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand All @@ -110,9 +106,8 @@ func TestTextAddDefaultLogLevel(t *testing.T) {
}

func TestTextWriteToTruncatedFile(t *testing.T) {
tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand Down Expand Up @@ -162,9 +157,8 @@ func TestTextWriteToFileInRotation(t *testing.T) {
func TestTextWriteDerivedLogger(t *testing.T) {
instance = defaultHandler()

tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand All @@ -186,9 +180,8 @@ func TestTextWriteDerivedLogger(t *testing.T) {
func TestTextWriteDerivedLoggerWithAttributes(t *testing.T) {
instance = defaultHandler()

tmpfile, err := os.CreateTemp("", "")
tmpfile, err := os.CreateTemp(t.TempDir(), "")
require.NoError(t, err)
defer os.Remove(tmpfile.Name())

cfg := &Config{
Logfile: tmpfile.Name(),
Expand Down
6 changes: 2 additions & 4 deletions plugins/inputs/bcache/bcache_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,14 @@ const (
)

func TestBcacheGeneratesMetrics(t *testing.T) {
tmpDir, err := os.MkdirTemp("", "telegraf-bcache")
require.NoError(t, err)
defer os.RemoveAll(tmpDir)
tmpDir := t.TempDir()

testBcachePath := tmpDir + "/telegraf-bcache/sys/fs/bcache"
testBcacheUUIDPath := testBcachePath + "/663955a3-765a-4737-a9fd-8250a7a78411"
testBcacheDevPath := tmpDir + "/telegraf/sys/devices/virtual/block/bcache0"
testBcacheBackingDevPath := tmpDir + "/telegraf/sys/devices/virtual/block/md10"

err = os.MkdirAll(testBcacheUUIDPath, 0750)
err := os.MkdirAll(testBcacheUUIDPath, 0750)
require.NoError(t, err)

err = os.MkdirAll(testBcacheDevPath, 0750)
Expand Down
8 changes: 2 additions & 6 deletions plugins/inputs/conntrack/conntrack_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,7 @@ func TestNoFilesFound(t *testing.T) {

func TestDefaultsUsed(t *testing.T) {
defer restoreDflts(dfltFiles, dfltDirs)
tmpdir, err := os.MkdirTemp("", "tmp1")
require.NoError(t, err)
defer os.Remove(tmpdir)
tmpdir := t.TempDir()

tmpFile, err := os.CreateTemp(tmpdir, "ip_conntrack_count")
require.NoError(t, err)
Expand All @@ -61,9 +59,7 @@ func TestDefaultsUsed(t *testing.T) {

func TestConfigsUsed(t *testing.T) {
defer restoreDflts(dfltFiles, dfltDirs)
tmpdir, err := os.MkdirTemp("", "tmp1")
require.NoError(t, err)
defer os.Remove(tmpdir)
tmpdir := t.TempDir()

cntFile, err := os.CreateTemp(tmpdir, "nf_conntrack_count")
require.NoError(t, err)
Expand Down
3 changes: 3 additions & 0 deletions plugins/inputs/dpdk/dpdk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,9 @@ func createSocketForTest(t *testing.T, dirPath string) (string, net.Listener) {
var pathToSocket string

if len(dirPath) == 0 {
// The Maximum length of the socket path is 104/108 characters, path created with t.TempDir() is too long for some cases
// (it combines test name with subtest name and some random numbers in the path)
//nolint:usetesting // "os.MkdirTemp() could be replaced by t.TempDir() in createSocketForTest"
dirPath, err = os.MkdirTemp("", "dpdk-test-socket")
require.NoError(t, err)
pathToSocket = filepath.Join(dirPath, dpdkSocketTemplateName)
Expand Down
4 changes: 2 additions & 2 deletions plugins/inputs/http_listener_v2/http_listener_v2_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -736,10 +736,10 @@ func TestServerHeaders(t *testing.T) {
func TestUnixSocket(t *testing.T) {
listener, err := newTestHTTPListenerV2()
require.NoError(t, err)
file, err := os.CreateTemp("", "*.socket")
file, err := os.CreateTemp(t.TempDir(), "*.socket")
require.NoError(t, err)
require.NoError(t, file.Close())
defer os.Remove(file.Name())

socketName := file.Name()
if runtime.GOOS == "windows" {
listener.ServiceAddress = "unix:///" + socketName
Expand Down
5 changes: 4 additions & 1 deletion plugins/inputs/intel_baseband/intel_baseband_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ func (ts *tempSocket) Close() {
}

func newTempSocket(t *testing.T) *tempSocket {
// The Maximum length of the socket path is 104/108 characters, path created with t.TempDir() is too long for some cases
// (it combines test name with subtest name and some random numbers in the path)
//nolint:usetesting // "os.MkdirTemp() could be replaced by t.TempDir() in newTempSocket"
dirPath, err := os.MkdirTemp("", "test-socket")
require.NoError(t, err)

Expand Down Expand Up @@ -160,7 +163,7 @@ func (tlf *tempLogFile) close() {
}

func newTempLogFile(t *testing.T) *tempLogFile {
file, err := os.CreateTemp("", "*.log")
file, err := os.CreateTemp(t.TempDir(), "*.log")
require.NoError(t, err)

return &tempLogFile{
Expand Down
2 changes: 1 addition & 1 deletion plugins/inputs/intel_dlb/intel_dlb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -879,7 +879,7 @@ func Test_gatherRasMetrics(t *testing.T) {
func Test_rasReader(t *testing.T) {
file := rasReaderImpl{}
// Create unique temporary file
fileobj, err := os.CreateTemp("", "qat")
fileobj, err := os.CreateTemp(t.TempDir(), "qat")
require.NoError(t, err)

t.Run("tests with existing file", func(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion plugins/inputs/kernel_vmstat/kernel_vmstat_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ thp_collapse_alloc_failed 102214
thp_split abcd`

func makeFakeVMStatFile(t *testing.T, content []byte) string {
tmpfile, err := os.CreateTemp("", "kernel_vmstat_test")
tmpfile, err := os.CreateTemp(t.TempDir(), "kernel_vmstat_test")
require.NoError(t, err)

_, err = tmpfile.Write(content)
Expand Down
13 changes: 1 addition & 12 deletions plugins/inputs/logparser/logparser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,18 +109,7 @@ func TestGrokParseLogFiles(t *testing.T) {
}

func TestGrokParseLogFilesAppearLater(t *testing.T) {
// TODO: t.TempDir will fail on Windows because it could not remove
// test.a.log file. This seems like an issue with the tail package, it
// is not closing the os.File properly on Stop.
// === RUN TestGrokParseLogFilesAppearLater
// 2022/04/16 11:05:13 D! [] Tail added for file: C:\Users\circleci\AppData\Local\Temp\TestGrokParseLogFilesAppearLater3687440534\001\test_a.log
// 2022/04/16 11:05:13 D! [] Tail dropped for file: C:\Users\circleci\AppData\Local\Temp\TestGrokParseLogFilesAppearLater3687440534\001\test_a.log
// testing.go:1090: TempDir RemoveAll cleanup:
// CreateFile C:\Users\circleci\AppData\Local\Temp\TestGrokParseLogFilesAppearLater3687440534\001: Access is denied.
// --- FAIL: TestGrokParseLogFilesAppearLater (1.68s)
emptydir, err := os.MkdirTemp("", "TestGrokParseLogFilesAppearLater")
require.NoError(t, err)
defer os.RemoveAll(emptydir)
emptydir := t.TempDir()

logparser := &LogParser{
Log: testutil.Logger{},
Expand Down
Loading
Loading