Skip to content

Commit 982fb20

Browse files
hegner123claude
andcommitted
Fix golangci-lint configuration and resolve all linter errors
- Update .golangci.yml for v2 compatibility - Add build ignore tags to test fixture files - Fix 10 errcheck errors (unchecked os.Mkdir, os.Chmod, os.WriteFile) - Fix 5 staticcheck errors (deprecated rand.Seed, unnecessary fmt.Sprintf) - All tests pass, 0 linter issues Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 3d54eb3 commit 982fb20

10 files changed

Lines changed: 58 additions & 37 deletions

File tree

.golangci.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
linters:
2-
enable:
3-
- gofmt
4-
- govet
5-
- errcheck
6-
- staticcheck
7-
- unused
8-
- gosimple
9-
- ineffassign
10-
- typecheck
1+
version: 2
112

123
linters-settings:
134
errcheck:
145
check-blank: true
156

7+
linters:
8+
exclusions:
9+
paths:
10+
- "test_files/"
11+
- "trash/"
12+
1613
issues:
1714
exclude-use-default: false
1815
max-issues-per-linter: 0

main_concurrency_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestReplaceInFile_Concurrent(t *testing.T) {
2525
numFiles := 100
2626
filePaths := make([]string, numFiles)
2727
for i := 0; i < numFiles; i++ {
28-
content := fmt.Sprintf("Line 1 contains target\nLine 2 has target\nLine 3 target here\n")
28+
content := "Line 1 contains target\nLine 2 has target\nLine 3 target here\n"
2929
filePaths[i] = createTestFile(t, tmpDir, fmt.Sprintf("file%03d.txt", i), content)
3030
}
3131

@@ -135,7 +135,9 @@ func TestReplaceInDirectories_ParallelDirectories(t *testing.T) {
135135
dirs := make([]string, numDirs)
136136
for i := 0; i < numDirs; i++ {
137137
dir := filepath.Join(tmpDir, fmt.Sprintf("dir%03d", i))
138-
os.Mkdir(dir, 0755)
138+
if err := os.Mkdir(dir, 0755); err != nil {
139+
t.Fatal(err)
140+
}
139141
dirs[i] = dir
140142

141143
// Create files in each directory
@@ -537,7 +539,9 @@ func TestReplaceInDirectories_ConcurrentDirs(t *testing.T) {
537539
dirs := make([]string, numDirs)
538540
for i := 0; i < numDirs; i++ {
539541
dir := filepath.Join(tmpDir, fmt.Sprintf("dir%02d", i))
540-
os.Mkdir(dir, 0755)
542+
if err := os.Mkdir(dir, 0755); err != nil {
543+
t.Fatal(err)
544+
}
541545
dirs[i] = dir
542546

543547
for j := 0; j < 50; j++ {

main_failure_test.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestReplaceInFile_ReadOnlyFile(t *testing.T) {
3636
if err := os.Chmod(filePath, 0444); err != nil {
3737
t.Fatalf("Failed to chmod: %v", err)
3838
}
39-
defer os.Chmod(filePath, 0644) // Restore permissions for cleanup
39+
defer func() { _ = os.Chmod(filePath, 0644) }() // Restore permissions for cleanup
4040

4141
config := Config{
4242
Search: "target",
@@ -61,7 +61,7 @@ func TestReplaceInFile_DryRunReadOnly(t *testing.T) {
6161
if err := os.Chmod(filePath, 0444); err != nil {
6262
t.Fatalf("Failed to chmod: %v", err)
6363
}
64-
defer os.Chmod(filePath, 0644)
64+
defer func() { _ = os.Chmod(filePath, 0644) }()
6565

6666
config := Config{
6767
Search: "target",
@@ -152,7 +152,7 @@ func TestReplaceInDirectory_NoReadPermission(t *testing.T) {
152152
if err := os.Chmod(subDir, 0000); err != nil {
153153
t.Fatalf("Failed to chmod: %v", err)
154154
}
155-
defer os.Chmod(subDir, 0755) // Restore for cleanup
155+
defer func() { _ = os.Chmod(subDir, 0755) }() // Restore for cleanup
156156

157157
config := Config{
158158
Search: "test",
@@ -226,7 +226,7 @@ func TestReplaceInFile_ConcurrentModification(t *testing.T) {
226226
// This is a race condition we want to detect
227227
go func() {
228228
// Modify file after a brief delay
229-
os.WriteFile(filePath, []byte("modified content\n"), 0644)
229+
_ = os.WriteFile(filePath, []byte("modified content\n"), 0644)
230230
}()
231231

232232
// Try to replace
@@ -285,7 +285,9 @@ func TestReplaceInDirectory_SkipsSubdirectories(t *testing.T) {
285285
// Create files and subdirectory
286286
createTestFile(t, tmpDir, "file1.txt", "target\n")
287287
subDir := filepath.Join(tmpDir, "subdir")
288-
os.Mkdir(subDir, 0755)
288+
if err := os.Mkdir(subDir, 0755); err != nil {
289+
t.Fatal(err)
290+
}
289291
createTestFile(t, subDir, "file2.txt", "target\n")
290292

291293
config := Config{
@@ -422,8 +424,10 @@ func TestReplaceInDirectory_PartialFailure(t *testing.T) {
422424

423425
badPath := filepath.Join(tmpDir, "bad.txt")
424426
createTestFile(t, tmpDir, "bad.txt", "target\n")
425-
os.Chmod(badPath, 0000)
426-
defer os.Chmod(badPath, 0644)
427+
if err := os.Chmod(badPath, 0000); err != nil {
428+
t.Fatal(err)
429+
}
430+
defer func() { _ = os.Chmod(badPath, 0644) }()
427431

428432
config := Config{
429433
Search: "target",
@@ -449,7 +453,9 @@ func TestReplaceInDirectories_MixedValidInvalid(t *testing.T) {
449453
defer cleanupTestDir(t, tmpDir)
450454

451455
validDir := filepath.Join(tmpDir, "valid")
452-
os.Mkdir(validDir, 0755)
456+
if err := os.Mkdir(validDir, 0755); err != nil {
457+
t.Fatal(err)
458+
}
453459
createTestFile(t, validDir, "test.txt", "target\n")
454460

455461
config := Config{

main_fuzz_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,12 @@ func TestReplaceInLine_RandomInputs(t *testing.T) {
200200
t.Skip("Skipping randomized test in short mode")
201201
}
202202

203-
rand.Seed(42) // Deterministic randomness
203+
r := rand.New(rand.NewSource(42)) // Deterministic randomness
204204

205205
for i := 0; i < 1000; i++ {
206-
line := randomString(rand.Intn(1000))
207-
search := randomString(rand.Intn(50))
208-
replace := randomString(rand.Intn(50))
206+
line := randomString(r.Intn(1000))
207+
search := randomString(r.Intn(50))
208+
replace := randomString(r.Intn(50))
209209

210210
// Should not panic
211211
func() {
@@ -235,11 +235,11 @@ func TestContainsWholeWord_RandomInputs(t *testing.T) {
235235
t.Skip("Skipping randomized test in short mode")
236236
}
237237

238-
rand.Seed(42)
238+
r := rand.New(rand.NewSource(42))
239239

240240
for i := 0; i < 1000; i++ {
241-
text := randomString(rand.Intn(500))
242-
word := randomString(rand.Intn(50))
241+
text := randomString(r.Intn(500))
242+
word := randomString(r.Intn(50))
243243

244244
func() {
245245
defer func() {
@@ -269,12 +269,12 @@ func TestWholeWordReplace_RandomInputs(t *testing.T) {
269269
t.Skip("Skipping randomized test in short mode")
270270
}
271271

272-
rand.Seed(42)
272+
r := rand.New(rand.NewSource(42))
273273

274274
for i := 0; i < 500; i++ {
275-
line := randomString(rand.Intn(500))
276-
search := randomString(rand.Intn(30))
277-
replace := randomString(rand.Intn(30))
275+
line := randomString(r.Intn(500))
276+
search := randomString(r.Intn(30))
277+
replace := randomString(r.Intn(30))
278278

279279
func() {
280280
defer func() {
@@ -300,11 +300,11 @@ func TestCountReplacements_RandomInputs(t *testing.T) {
300300
t.Skip("Skipping randomized test in short mode")
301301
}
302302

303-
rand.Seed(42)
303+
r := rand.New(rand.NewSource(42))
304304

305305
for i := 0; i < 1000; i++ {
306-
line := randomString(rand.Intn(500))
307-
search := randomString(rand.Intn(30))
306+
line := randomString(r.Intn(500))
307+
search := randomString(r.Intn(30))
308308

309309
func() {
310310
defer func() {

main_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,12 @@ func TestReplaceInDirectories_MultiDir(t *testing.T) {
423423

424424
dir1 := filepath.Join(tmpDir, "dir1")
425425
dir2 := filepath.Join(tmpDir, "dir2")
426-
os.Mkdir(dir1, 0755)
427-
os.Mkdir(dir2, 0755)
426+
if err := os.Mkdir(dir1, 0755); err != nil {
427+
t.Fatal(err)
428+
}
429+
if err := os.Mkdir(dir2, 0755); err != nil {
430+
t.Fatal(err)
431+
}
428432

429433
createTestFile(t, dir1, "test1.txt", "hello world\n")
430434
createTestFile(t, dir2, "test2.txt", "hello again\n")

test_files/pkg1/handler.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build ignore
2+
13
package pkg1
24

35
import (

test_files/pkg1/types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build ignore
2+
13
package pkg1
24

35
import (

test_files/pkg2/search.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build ignore
2+
13
package pkg2
24

35
import (

test_files/pkg2/utils.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build ignore
2+
13
package pkg2
24

35
import "strings"

trash/test_data/test2.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build ignore
2+
13
package main
24

35
func newFunction() {

0 commit comments

Comments
 (0)