diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f566ca..d9d153e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout scm - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Go uses: actions/setup-go@v5 @@ -25,14 +25,14 @@ jobs: cache: false - name: Lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v8 CodeQL: needs: Lint runs-on: ubuntu-latest steps: - name: Checkout scm - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Go uses: actions/setup-go@v5 @@ -78,7 +78,7 @@ jobs: steps: - name: Checkout scm - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Go uses: actions/setup-go@v5 @@ -129,7 +129,7 @@ jobs: steps: - name: Checkout scm - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Go uses: actions/setup-go@v5 @@ -144,7 +144,7 @@ jobs: run: go install -a . - name: Clone routine - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: timandy/routine ref: main diff --git a/inject/inject_test.go b/inject/inject_test.go index 0e22cf1..627eabd 100644 --- a/inject/inject_test.go +++ b/inject/inject_test.go @@ -44,7 +44,7 @@ func init() { } func TestCompileRuntime(t *testing.T) { - tracker := file.NewFileTracker(&os.Stderr) + tracker := file.NewFileTracker(os.Stderr) tracker.Begin() defer tracker.End() // @@ -82,7 +82,7 @@ func TestCompileRuntime(t *testing.T) { } func TestCompileRoutine_Source(t *testing.T) { - tracker := file.NewFileTracker(&os.Stderr) + tracker := file.NewFileTracker(os.Stderr) tracker.Begin() defer tracker.End() // @@ -123,7 +123,7 @@ func TestCompileRoutine_Test(t *testing.T) { }, appOpts) exec.RunCmd(remainArgs) // - tracker := file.NewFileTracker(&os.Stderr) + tracker := file.NewFileTracker(os.Stderr) tracker.Begin() defer tracker.End() // @@ -155,7 +155,7 @@ func TestCompileRoutine_Test(t *testing.T) { } func TestCoverRoutine_Go1_18(t *testing.T) { - tracker := file.NewFileTracker(&os.Stderr) + tracker := file.NewFileTracker(os.Stderr) tracker.Begin() defer tracker.End() // @@ -183,7 +183,7 @@ func TestCoverRoutine_Go1_18(t *testing.T) { } func TestCoverRoutine_Go1_20(t *testing.T) { - tracker := file.NewFileTracker(&os.Stderr) + tracker := file.NewFileTracker(os.Stderr) tracker.Begin() defer tracker.End() // diff --git a/main_test.go b/main_test.go index 707e6c4..7d3a849 100644 --- a/main_test.go +++ b/main_test.go @@ -14,7 +14,7 @@ import ( var goToolDir = exec.RunCmdOutput([]string{"go", "env", "GOTOOLDIR"}) func TestHelp(t *testing.T) { - tracker := file.NewFileTracker(&os.Stderr) + tracker := file.NewFileTracker(os.Stderr) tracker.Begin() defer tracker.End() // @@ -27,7 +27,7 @@ func TestHelp(t *testing.T) { } func TestOtherCmd(t *testing.T) { - tracker := file.NewFileTracker(&os.Stdout) + tracker := file.NewFileTracker(os.Stdout) tracker.Begin() defer tracker.End() // @@ -40,7 +40,7 @@ func TestOtherCmd(t *testing.T) { } func TestOtherCmdHelp(t *testing.T) { - tracker := file.NewFileTracker(&os.Stdout) + tracker := file.NewFileTracker(os.Stdout) tracker.Begin() defer tracker.End() // diff --git a/tools/astutil/ast.go b/tools/astutil/ast.go index f04589b..aa5c2dd 100644 --- a/tools/astutil/ast.go +++ b/tools/astutil/ast.go @@ -25,7 +25,7 @@ func SaveAs(path string, fset *token.FileSet, af *ast.File) { if err != nil { panic(err) } - defer destFile.Close() + defer destFile.Close() //nolint:errcheck // write code to dest file if err = printer.Fprint(destFile, fset, af); err != nil { panic(err) diff --git a/tools/file/tracker.go b/tools/file/tracker.go index f5fcce0..dd9b114 100644 --- a/tools/file/tracker.go +++ b/tools/file/tracker.go @@ -6,12 +6,12 @@ import ( ) type FileTracker struct { - target **os.File - oldValue *os.File - tempValue *os.File + target *os.File + oldValue os.File + tempValue os.File } -func NewFileTracker(target **os.File) *FileTracker { +func NewFileTracker(target *os.File) *FileTracker { return &FileTracker{target: target, oldValue: *target} } @@ -20,8 +20,8 @@ func (f *FileTracker) Begin() { if err != nil { panic(err) } - *f.target = file - f.tempValue = file + *f.target = *file + f.tempValue = *file } func (f *FileTracker) End() { @@ -38,7 +38,7 @@ func (f *FileTracker) Value() string { if _, err := f.tempValue.Seek(0, io.SeekStart); err != nil { panic(err) } - buff, err := io.ReadAll(f.tempValue) + buff, err := io.ReadAll(&f.tempValue) if err != nil { panic(err) } diff --git a/tools/file/tracker_test.go b/tools/file/tracker_test.go index c1acfe8..8220712 100644 --- a/tools/file/tracker_test.go +++ b/tools/file/tracker_test.go @@ -10,10 +10,22 @@ import ( func TestFileTracker(t *testing.T) { origin := os.Stdout - tracker := NewFileTracker(&os.Stdout) + tracker := NewFileTracker(os.Stdout) tracker.Begin() - fmt.Println("hello world") + _, _ = fmt.Fprintln(os.Stdout, "hello world") assert.Equal(t, "hello world\n", tracker.Value()) tracker.End() + assert.Equal(t, "/dev/stdout", origin.Name()) + assert.Same(t, origin, os.Stdout) +} + +func TestFileTrackerRef(t *testing.T) { + origin := os.Stdout + tracker := NewFileTracker(os.Stdout) + tracker.Begin() + _, _ = fmt.Fprintln(origin, "hello world") + assert.Equal(t, "hello world\n", tracker.Value()) + tracker.End() + assert.Equal(t, "/dev/stdout", origin.Name()) assert.Same(t, origin, os.Stdout) } diff --git a/tools/os/file.go b/tools/os/file.go index cd7b784..d0711e4 100644 --- a/tools/os/file.go +++ b/tools/os/file.go @@ -42,7 +42,7 @@ func WriteFile(path, data string) { if err != nil { panic(err) } - defer destFile.Close() + defer destFile.Close() //nolint:errcheck // write data to dest file if _, err = destFile.WriteString(data); err != nil { panic(err)