mirror of
https://github.com/vbatts/go-mtree.git
synced 2024-11-21 07:55:44 +00:00
*.go: update to golangci-lint, and fix everything
install tools in the workflow actions Also switch away from deprecated ioutil Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
e7a79ae8a7
commit
42b655d8ee
19 changed files with 101 additions and 78 deletions
4
.github/workflows/go.yml
vendored
4
.github/workflows/go.yml
vendored
|
@ -22,9 +22,9 @@ jobs:
|
|||
go-version: ${{ matrix.go }}
|
||||
|
||||
- name: Build
|
||||
run: make
|
||||
run: make build
|
||||
|
||||
- name: Test
|
||||
- name: Validation
|
||||
run: make validation
|
||||
|
||||
- name: Build.Arches
|
||||
|
|
28
.github/workflows/validation.yml
vendored
Normal file
28
.github/workflows/validation.yml
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
name: lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
go: ['1.21']
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: ${{ matrix.go }}
|
||||
|
||||
- name: Install tools
|
||||
run: make install.tools
|
||||
|
||||
- name: Test
|
||||
run: make lint
|
18
Makefile
18
Makefile
|
@ -11,7 +11,7 @@ GO_VER := go1.14
|
|||
default: build validation
|
||||
|
||||
.PHONY: validation
|
||||
validation: .test .lint .vet .cli.test
|
||||
validation: .test .vet .cli.test
|
||||
|
||||
.PHONY: validation.tags
|
||||
validation.tags: .test.tags .vet.tags .cli.test .staticcheck
|
||||
|
@ -50,11 +50,7 @@ lint: .lint
|
|||
CLEAN_FILES += .lint
|
||||
|
||||
.lint: $(SOURCE_FILES)
|
||||
@if [ "$(findstring $(GO_VER),$(shell go version))" != "" ] ; then \
|
||||
set -e ; for dir in $(NO_VENDOR_DIR) ; do golint -set_exit_status $$dir ; done && touch $@ \
|
||||
else \
|
||||
touch $@ ; \
|
||||
fi
|
||||
set -e ; golangci-lint run && touch $@
|
||||
|
||||
.PHONY: vet
|
||||
vet: .vet .vet.tags
|
||||
|
@ -85,12 +81,10 @@ $(BUILD): $(SOURCE_FILES)
|
|||
go build -ldflags="-X 'main.Version=$(shell git describe --always --dirty)'" -mod=vendor -o $(BUILD) $(BUILDPATH)
|
||||
|
||||
install.tools:
|
||||
@go install -u github.com/fatih/color@latest ; \
|
||||
go install -u github.com/fzipp/gocyclo/cmd/gocyclo@latest ; \
|
||||
go install -u honnef.co/go/tools/cmd/staticcheck@latest ; \
|
||||
if [ "$(findstring $(GO_VER),$(shell go version))" != "" ] ; then \
|
||||
go get -u golang.org/x/lint/golint ;\
|
||||
fi
|
||||
@go install github.com/fatih/color@latest ; \
|
||||
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest ; \
|
||||
go install honnef.co/go/tools/cmd/staticcheck@latest ; \
|
||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
|
||||
./bin:
|
||||
mkdir -p $@
|
||||
|
|
|
@ -2,7 +2,6 @@ package mtree
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
@ -31,14 +30,14 @@ func TestCheck(t *testing.T) {
|
|||
// only check again for size and sha1, and ignore time, and ensure it passes
|
||||
func TestCheckKeywords(t *testing.T) {
|
||||
content := []byte("I know half of you half as well as I ought to")
|
||||
dir, err := ioutil.TempDir("", "test-check-keywords")
|
||||
dir, err := os.MkdirTemp("", "test-check-keywords")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(dir) // clean up
|
||||
|
||||
tmpfn := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfn, content, 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -120,7 +119,7 @@ func TestDefaultBrokenLink(t *testing.T) {
|
|||
|
||||
// https://github.com/vbatts/go-mtree/issues/8
|
||||
func TestTimeComparison(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-time.")
|
||||
dir, err := os.MkdirTemp("", "test-time.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -165,7 +164,7 @@ func TestTimeComparison(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestTarTime(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-tar-time.")
|
||||
dir, err := os.MkdirTemp("", "test-tar-time.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -219,7 +218,7 @@ func TestTarTime(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestIgnoreComments(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-comments.")
|
||||
dir, err := os.MkdirTemp("", "test-comments.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -288,7 +287,7 @@ func TestIgnoreComments(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestCheckNeedsEncoding(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-needs-encoding")
|
||||
dir, err := os.MkdirTemp("", "test-needs-encoding")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
|
@ -266,7 +265,7 @@ func validateAction(c *cli.Context) error {
|
|||
}
|
||||
ts := mtree.NewTarStreamer(input, excludes, currentKeywords)
|
||||
|
||||
if _, err := io.Copy(ioutil.Discard, ts); err != nil && err != io.EOF {
|
||||
if _, err := io.Copy(io.Discard, ts); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
if err := ts.Close(); err != nil {
|
||||
|
@ -344,8 +343,8 @@ func validateAction(c *cli.Context) error {
|
|||
}
|
||||
|
||||
// output stateDh
|
||||
stateDh.WriteTo(fh)
|
||||
return nil
|
||||
_, err = stateDh.WriteTo(fh)
|
||||
return err
|
||||
}
|
||||
|
||||
// no spec manifest has been provided yet, so look for it on stdin
|
||||
|
@ -358,7 +357,8 @@ func validateAction(c *cli.Context) error {
|
|||
|
||||
// We can't check against more fields than in the specKeywords list, so
|
||||
// currentKeywords can only have a subset of specKeywords.
|
||||
specKeywords = specDh.UsedKeywords()
|
||||
// TODO this specKeywords is not even used
|
||||
_ = specDh.UsedKeywords()
|
||||
}
|
||||
|
||||
// This is a validation.
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
"bytes"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
@ -37,7 +36,7 @@ func TestCompare(t *testing.T) {
|
|||
|
||||
//gocyclo:ignore
|
||||
func TestCompareModified(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-compare-modified")
|
||||
dir, err := os.MkdirTemp("", "test-compare-modified")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -45,7 +44,7 @@ func TestCompareModified(t *testing.T) {
|
|||
|
||||
// Create a bunch of objects.
|
||||
tmpfile := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -55,7 +54,7 @@ func TestCompareModified(t *testing.T) {
|
|||
}
|
||||
|
||||
tmpsubfile := filepath.Join(tmpdir, "anotherfile")
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("some different content"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("some different content"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -66,7 +65,7 @@ func TestCompareModified(t *testing.T) {
|
|||
}
|
||||
|
||||
// Overwrite the content in one of the files.
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("modified content"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("modified content"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -117,7 +116,7 @@ func TestCompareModified(t *testing.T) {
|
|||
|
||||
//gocyclo:ignore
|
||||
func TestCompareMissing(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-compare-missing")
|
||||
dir, err := os.MkdirTemp("", "test-compare-missing")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -125,7 +124,7 @@ func TestCompareMissing(t *testing.T) {
|
|||
|
||||
// Create a bunch of objects.
|
||||
tmpfile := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -135,7 +134,7 @@ func TestCompareMissing(t *testing.T) {
|
|||
}
|
||||
|
||||
tmpsubfile := filepath.Join(tmpdir, "anotherfile")
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("some different content"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("some different content"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -209,7 +208,7 @@ func TestCompareMissing(t *testing.T) {
|
|||
|
||||
//gocyclo:ignore
|
||||
func TestCompareExtra(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-compare-extra")
|
||||
dir, err := os.MkdirTemp("", "test-compare-extra")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -223,7 +222,7 @@ func TestCompareExtra(t *testing.T) {
|
|||
|
||||
// Create a bunch of objects.
|
||||
tmpfile := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -233,7 +232,7 @@ func TestCompareExtra(t *testing.T) {
|
|||
}
|
||||
|
||||
tmpsubfile := filepath.Join(tmpdir, "anotherfile")
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("some different content"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("some different content"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -287,7 +286,7 @@ func TestCompareExtra(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestCompareKeys(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-compare-keys")
|
||||
dir, err := os.MkdirTemp("", "test-compare-keys")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -295,7 +294,7 @@ func TestCompareKeys(t *testing.T) {
|
|||
|
||||
// Create a bunch of objects.
|
||||
tmpfile := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfile, []byte("some content here"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -305,7 +304,7 @@ func TestCompareKeys(t *testing.T) {
|
|||
}
|
||||
|
||||
tmpsubfile := filepath.Join(tmpdir, "anotherfile")
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("aaa"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("aaa"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -316,7 +315,7 @@ func TestCompareKeys(t *testing.T) {
|
|||
}
|
||||
|
||||
// Overwrite the content in one of the files, but without changing the size.
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("bbb"), 0666); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("bbb"), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -343,7 +342,7 @@ func TestCompareKeys(t *testing.T) {
|
|||
|
||||
//gocyclo:ignore
|
||||
func TestTarCompare(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-compare-tar")
|
||||
dir, err := os.MkdirTemp("", "test-compare-tar")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -351,7 +350,7 @@ func TestTarCompare(t *testing.T) {
|
|||
|
||||
// Create a bunch of objects.
|
||||
tmpfile := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfile, []byte("some content"), 0644); err != nil {
|
||||
if err := os.WriteFile(tmpfile, []byte("some content"), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -361,7 +360,7 @@ func TestTarCompare(t *testing.T) {
|
|||
}
|
||||
|
||||
tmpsubfile := filepath.Join(tmpdir, "anotherfile")
|
||||
if err := ioutil.WriteFile(tmpsubfile, []byte("aaa"), 0644); err != nil {
|
||||
if err := os.WriteFile(tmpsubfile, []byte("aaa"), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -395,7 +394,7 @@ func TestTarCompare(t *testing.T) {
|
|||
}
|
||||
|
||||
str := NewTarStreamer(bytes.NewBuffer(ts), nil, append(DefaultTarKeywords, "sha1"))
|
||||
if _, err = io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err = io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = str.Close(); err != nil {
|
||||
|
|
|
@ -2,7 +2,6 @@ package mtree
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
@ -73,7 +72,7 @@ func (fs *MockFsEval) KeywordFunc(fn KeywordFunc) KeywordFunc {
|
|||
|
||||
//gocyclo:ignore
|
||||
func TestCheckFsEval(t *testing.T) {
|
||||
dir, err := ioutil.TempDir("", "test-check-fs-eval")
|
||||
dir, err := os.MkdirTemp("", "test-check-fs-eval")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -81,7 +80,7 @@ func TestCheckFsEval(t *testing.T) {
|
|||
|
||||
content := []byte("If you hide your ignorance, no one will hit you and you'll never learn.")
|
||||
tmpfn := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfn, content, 0451); err != nil {
|
||||
if err := os.WriteFile(tmpfn, content, 0451); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
"github.com/vbatts/go-mtree/pkg/govis"
|
||||
|
||||
//lint:ignore SA1019 yes ripemd160 is deprecated, but this is for mtree compatibility
|
||||
//nolint:staticcheck // SA1019 yes ripemd160 is deprecated, but this is for mtree compatibility
|
||||
"golang.org/x/crypto/ripemd160"
|
||||
)
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
package mtree
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
@ -21,7 +20,7 @@ func TestXattr(t *testing.T) {
|
|||
// xattrs
|
||||
testDir = "."
|
||||
}
|
||||
dir, err := ioutil.TempDir(testDir, "test.xattrs.")
|
||||
dir, err := os.MkdirTemp(testDir, "test.xattrs.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -30,8 +29,14 @@ func TestXattr(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fh.WriteString("howdy")
|
||||
fh.Sync()
|
||||
_, err = fh.WriteString("howdy")
|
||||
if err != nil {
|
||||
t.Errorf("failed to write string: %s", err)
|
||||
}
|
||||
err = fh.Sync()
|
||||
if err != nil {
|
||||
t.Errorf("failed to sync file: %s", err)
|
||||
}
|
||||
if _, err := fh.Seek(0, 0); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package mtree
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
|
@ -74,7 +74,7 @@ func TestParser(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
i, err := dh.WriteTo(ioutil.Discard)
|
||||
i, err := dh.WriteTo(io.Discard)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
|
3
tar.go
3
tar.go
|
@ -4,7 +4,6 @@ import (
|
|||
"archive/tar"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
@ -111,7 +110,7 @@ hdrloop:
|
|||
// Because the content of the file may need to be read by several
|
||||
// KeywordFuncs, it needs to be an io.Seeker as well. So, just reading from
|
||||
// ts.tarReader is not enough.
|
||||
tmpFile, err := ioutil.TempFile("", "ts.payload.")
|
||||
tmpFile, err := os.CreateTemp("", "ts.payload.")
|
||||
if err != nil {
|
||||
ts.pipeReader.CloseWithError(err)
|
||||
return
|
||||
|
|
13
tar_test.go
13
tar_test.go
|
@ -4,7 +4,6 @@ import (
|
|||
"archive/tar"
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
|
@ -62,7 +61,7 @@ func TestTar(t *testing.T) {
|
|||
}
|
||||
str := NewTarStreamer(fh, nil, append(DefaultKeywords, "sha1"))
|
||||
|
||||
if _, err := io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err := io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := str.Close(); err != nil {
|
||||
|
@ -137,7 +136,7 @@ func TestArchiveCreation(t *testing.T) {
|
|||
}
|
||||
str := NewTarStreamer(fh, nil, []Keyword{"sha1"})
|
||||
|
||||
if _, err := io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err := io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := str.Close(); err != nil {
|
||||
|
@ -206,7 +205,7 @@ func TestTreeTraversal(t *testing.T) {
|
|||
}
|
||||
str := NewTarStreamer(fh, nil, DefaultTarKeywords)
|
||||
|
||||
if _, err = io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err = io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = str.Close(); err != nil {
|
||||
|
@ -258,7 +257,7 @@ func TestTreeTraversal(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
str = NewTarStreamer(fh, nil, DefaultTarKeywords)
|
||||
if _, err = io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err = io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = str.Close(); err != nil {
|
||||
|
@ -297,7 +296,7 @@ func TestHardlinks(t *testing.T) {
|
|||
}
|
||||
str := NewTarStreamer(fh, nil, append(DefaultTarKeywords, "nlink"))
|
||||
|
||||
if _, err = io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err = io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = str.Close(); err != nil {
|
||||
|
@ -379,7 +378,7 @@ func TestArchiveExcludeNonDirectory(t *testing.T) {
|
|||
}
|
||||
str := NewTarStreamer(fh, []ExcludeFunc{ExcludeNonDirectories}, []Keyword{"type"})
|
||||
|
||||
if _, err := io.Copy(ioutil.Discard, str); err != nil && err != io.EOF {
|
||||
if _, err := io.Copy(io.Discard, str); err != nil && err != io.EOF {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := str.Close(); err != nil {
|
||||
|
|
|
@ -32,5 +32,5 @@ func main() {
|
|||
fmt.Fprintf(os.Stderr, red("%d FAILED tests\n"), failed)
|
||||
os.Exit(1)
|
||||
}
|
||||
fmt.Fprintf(os.Stdout, green("SUCCESS: no cli tests failed\n"))
|
||||
fmt.Fprint(os.Stdout, green("SUCCESS: no cli tests failed\n"))
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package mtree
|
|||
|
||||
import (
|
||||
"container/heap"
|
||||
"fmt"
|
||||
"os"
|
||||
"sort"
|
||||
|
||||
|
@ -23,7 +24,12 @@ func Update(root string, dh *DirectoryHierarchy, keywords []Keyword, fs FsEval)
|
|||
creator := dhCreator{DH: dh}
|
||||
curDir, err := os.Getwd()
|
||||
if err == nil {
|
||||
defer os.Chdir(curDir)
|
||||
defer func() {
|
||||
err := os.Chdir(curDir)
|
||||
if err != nil {
|
||||
logrus.Warn(fmt.Errorf("failed to change directory to %q: %w", curDir, err))
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
if err := os.Chdir(root); err != nil {
|
||||
|
|
|
@ -2,7 +2,6 @@ package mtree
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
@ -19,14 +18,14 @@ func TestXattrUpdate(t *testing.T) {
|
|||
content := []byte("I know half of you half as well as I ought to")
|
||||
// a bit dirty to create/destroy a directory in cwd, but often /tmp is
|
||||
// mounted tmpfs and doesn't support xattrs
|
||||
dir, err := ioutil.TempDir(".", "test.xattr.restore.")
|
||||
dir, err := os.MkdirTemp(".", "test.xattr.restore.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(dir) // clean up
|
||||
|
||||
tmpfn := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfn, content, 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ package mtree
|
|||
import (
|
||||
"container/heap"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
|
@ -24,14 +23,14 @@ func init() {
|
|||
//gocyclo:ignore
|
||||
func TestUpdate(t *testing.T) {
|
||||
content := []byte("I know half of you half as well as I ought to")
|
||||
dir, err := ioutil.TempDir("", "test-check-keywords")
|
||||
dir, err := os.MkdirTemp("", "test-check-keywords")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(dir) // clean up
|
||||
|
||||
tmpfn := filepath.Join(dir, "tmpfile")
|
||||
if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
|
||||
if err := os.WriteFile(tmpfn, content, 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package mtree
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
@ -13,7 +12,7 @@ func TestWalk(t *testing.T) {
|
|||
}
|
||||
numEntries := countTypes(dh)
|
||||
|
||||
fh, err := ioutil.TempFile("", "walk.")
|
||||
fh, err := os.CreateTemp("", "walk.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ package xattr
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
@ -15,7 +14,7 @@ func TestXattr(t *testing.T) {
|
|||
if present == false {
|
||||
testDir = "."
|
||||
}
|
||||
fh, err := ioutil.TempFile(testDir, "xattr.")
|
||||
fh, err := os.CreateTemp(testDir, "xattr.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -5,13 +5,12 @@ package xattr
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestXattrUnsupported(t *testing.T) {
|
||||
fh, err := ioutil.TempFile(".", "xattr.")
|
||||
fh, err := os.CreateTemp(".", "xattr.")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue