isula-build/patch/0119-config-golangci-lint-to-lint-unit-test.patch
2022-06-15 15:42:51 +08:00

1233 lines
35 KiB
Diff

From eb23e7530407b039b3dc3bc5b679adc20e937c5d Mon Sep 17 00:00:00 2001
From: xingweizheng <xingweizheng@huawei.com>
Date: Wed, 2 Feb 2022 18:12:09 +0800
Subject: [PATCH 18/20] config golangci-lint to lint unit test
---
.golangci.yml | 9 +-
builder/dockerfile/builder_test.go | 5 +-
.../container/container_src_test.go | 18 +-
builder/dockerfile/container/help_test.go | 9 +-
builder/dockerfile/container/util_test.go | 11 +-
builder/dockerfile/parser/command_test.go | 13 -
builder/dockerfile/parser/parser_test.go | 6 +-
... => complete_stage_with_single_from_stage} | 0
builder/dockerfile/parser/util_test.go | 231 ++++++------------
builder/dockerfile/stage_builder_test.go | 16 +-
cmd/cli/build_test.go | 118 ++++-----
cmd/cli/info_test.go | 1 +
cmd/cli/load_test.go | 1 +
cmd/cli/save_test.go | 1 +
daemon/save_test.go | 2 +-
exporter/common_test.go | 5 +-
pkg/gc/gc_test.go | 16 +-
pkg/opts/opts_test.go | 1 +
pkg/stack/stack_test.go | 3 +-
runner/runner_test.go | 3 +-
util/cipher_test.go | 1 +
util/file_test.go | 4 +-
util/filepath_test.go | 1 +
util/user_test.go | 6 +-
util/util_test.go | 10 +-
25 files changed, 181 insertions(+), 310 deletions(-)
rename builder/dockerfile/parser/testfiles/preprocess/{compelte_stage_with_single_from_stage => complete_stage_with_single_from_stage} (100%)
diff --git a/.golangci.yml b/.golangci.yml
index 50a3129..5a03aae 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -1,7 +1,7 @@
run:
deadline: 10m
issues-exit-code: 1
- tests: false
+ tests: true
skip-dirs:
- vendor
@@ -98,14 +98,11 @@ issues:
exclude-rules:
path: _test\.go
linters:
- - gocyclo
- scopelint
- errcheck
- - dupl
- gosec
- - structcheck
- - staticcheck
- - gomnd
+ - goconst
+ - maligned
- ineffassign
max-issues-per-linter: 0
max-same-issues: 0
diff --git a/builder/dockerfile/builder_test.go b/builder/dockerfile/builder_test.go
index 20cca43..985ad25 100644
--- a/builder/dockerfile/builder_test.go
+++ b/builder/dockerfile/builder_test.go
@@ -344,7 +344,7 @@ RUN ls
assert.DeepEqual(t, b.stageBuilders[0].commands[5].args,
map[string]string{"STAGE1_ARG": "foo", "GLOBALARG_ONE": "globalarg_one_default_value", "GLOBALARG_TWO": "override"})
- //assert.DeepEqual(t, b.stageBuilders[1].(*stageBuilder).fromImage, "override:globalarg_one_default_value")
+ // assert.DeepEqual(t, b.stageBuilders[1].(*stageBuilder).fromImage, "override:globalarg_one_default_value")
assert.DeepEqual(t, b.stageBuilders[1].commands[0].args,
map[string]string{})
assert.DeepEqual(t, b.stageBuilders[1].commands[2].args,
@@ -1228,7 +1228,8 @@ func TestParseRequestBuildArgs(t *testing.T) {
assert.NilError(t, err)
err = util.GenRSAPublicKeyFile(b.rsaKey, keyPath)
assert.NilError(t, err)
- pubKey, err := util.ReadPublicKey(keyPath)
+ var pubKey rsa.PublicKey
+ pubKey, err = util.ReadPublicKey(keyPath)
assert.NilError(t, err)
var args = make([]string, 0, 10)
for _, v := range tt.buildArgs {
diff --git a/builder/dockerfile/container/container_src_test.go b/builder/dockerfile/container/container_src_test.go
index a80b58a..71b9616 100644
--- a/builder/dockerfile/container/container_src_test.go
+++ b/builder/dockerfile/container/container_src_test.go
@@ -56,12 +56,9 @@ func TestReference(t *testing.T) {
func TestGetSignatures(t *testing.T) {
type testcase struct {
- name string
- digest *digest.Digest
- manifest []byte
- manifestType string
- isErr bool
- errStr string
+ name string
+ digest *digest.Digest
+ isErr bool
}
d := digest.SHA256.FromString("isula")
var testcases = []testcase{
@@ -90,12 +87,9 @@ func TestGetSignatures(t *testing.T) {
func TestGetManifest(t *testing.T) {
type testcase struct {
- name string
- digest *digest.Digest
- manifest []byte
- manifestType string
- isErr bool
- errStr string
+ name string
+ digest *digest.Digest
+ isErr bool
}
d := digest.SHA256.FromString("isula")
var testcases = []testcase{
diff --git a/builder/dockerfile/container/help_test.go b/builder/dockerfile/container/help_test.go
index 6f4e73f..a691628 100644
--- a/builder/dockerfile/container/help_test.go
+++ b/builder/dockerfile/container/help_test.go
@@ -51,9 +51,10 @@ func init() {
func TestMain(m *testing.M) {
fmt.Println("container package test begin")
- m.Run()
+ exitVal := m.Run()
fmt.Println("container package test end")
clean()
+ os.Exit(exitVal)
}
func clean() {
@@ -79,7 +80,7 @@ func TestCreateConfigsAndManifests(t *testing.T) {
ID: "",
Parent: "",
Comment: "",
- Created: containerRef.created, //"2020-04-15 07:41:47.96447546 +0000 UTC",
+ Created: containerRef.created, // "2020-04-15 07:41:47.96447546 +0000 UTC",
Container: "e6587b2dbfd56b5ce2e64dd7933ba04886bff86836dec5f09ce59d599df012fe",
ContainerConfig: docker.Config{
Hostname: "ab281de98ba0",
@@ -122,11 +123,11 @@ func TestCreateConfigsAndManifests(t *testing.T) {
RootFS: &docker.RootFS{Type: "layers", DiffIDs: []digest.Digest{}},
History: []docker.History{
{
- Created: time.Date(2017, 5, 12, 21, 36, 57, 81970000, time.UTC), //created, //"2017-05-12 21:36:57.08197 +0000 UTC",
+ Created: time.Date(2017, 5, 12, 21, 36, 57, 81970000, time.UTC), // created, //"2017-05-12 21:36:57.08197 +0000 UTC",
CreatedBy: "/bin/sh -c #(nop) ADD file:e9e6f86057e43a27b678a139b906091c3ecb1600b08ad17e80ff5ad56920c96e in / ",
},
{
- Created: time.Date(2017, 5, 12, 21, 36, 57, 851043000, time.UTC), //"2017-05-12 21:36:57.851043 +0000 UTC",
+ Created: time.Date(2017, 5, 12, 21, 36, 57, 851043000, time.UTC), // "2017-05-12 21:36:57.851043 +0000 UTC",
CreatedBy: `/bin/sh -c #(nop) CMD ["sh"]`,
EmptyLayer: true,
},
diff --git a/builder/dockerfile/container/util_test.go b/builder/dockerfile/container/util_test.go
index 257e09c..a1d47e1 100644
--- a/builder/dockerfile/container/util_test.go
+++ b/builder/dockerfile/container/util_test.go
@@ -119,7 +119,6 @@ func TestEncodeConfigsAndManifests(t *testing.T) {
dimage docker.Image
dmanifest docker.Manifest
manifestType string
- expectConfig string
expectManifest string
}
@@ -217,7 +216,7 @@ func TestEncodeConfigsAndManifests(t *testing.T) {
}
for _, tc := range testcases {
- _, manifest, err := encodeConfigsAndManifests(tc.dimage, tc.dmanifest, mimetypes.DockerV2Schema2MediaType)
+ _, manifest, err := encodeConfigsAndManifests(tc.dimage, tc.dmanifest, tc.manifestType)
assert.NilError(t, err)
assert.Equal(t, string(manifest), tc.expectManifest, tc.name)
}
@@ -240,11 +239,9 @@ func checkDirTimeFunc(t *testing.T, dir string, ct time.Time) {
func TestChMTimeDir(t *testing.T) {
type testcase struct {
- name string
- time time.Time
- dir *fs.Dir
- isErr bool
- errStr string
+ name string
+ time time.Time
+ dir *fs.Dir
}
testcases := []testcase{
diff --git a/builder/dockerfile/parser/command_test.go b/builder/dockerfile/parser/command_test.go
index 3859faa..f6cef02 100644
--- a/builder/dockerfile/parser/command_test.go
+++ b/builder/dockerfile/parser/command_test.go
@@ -25,68 +25,55 @@ func TestParseArg(t *testing.T) {
type testcase struct {
str string
expect string
- err string
}
var testcases = []testcase{
{
str: "CB_VERSION=6.5.0",
expect: "(ARG) (CB_VERSION=6.5.0)",
- err: "",
},
{
str: "CB_RELEASE_URL=https://packages.couchbase.com/releases/6.5.0",
expect: "(ARG) (CB_RELEASE_URL=https://packages.couchbase.com/releases/6.5.0)",
- err: "",
},
{
str: "CB_PACKAGE=couchbase-server-enterprise_6.5.0-ubuntu16.04_amd64.deb",
expect: "(ARG) (CB_PACKAGE=couchbase-server-enterprise_6.5.0-ubuntu16.04_amd64.deb)",
- err: "",
},
{
str: "CB_SHA256=5505c6bb026090dae7351e9d83caeab00437f19e48e826afd4cb6bafc484cd2b",
expect: "(ARG) (CB_SHA256=5505c6bb026090dae7351e9d83caeab00437f19e48e826afd4cb6bafc484cd2b)",
- err: "",
},
{
str: `USER_HOME_DIR="/root"`,
expect: `(ARG) (USER_HOME_DIR="/root")`,
- err: "",
},
{
str: "BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries",
expect: "(ARG) (BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries)",
- err: "",
},
{
str: "!@#$%^*()-_+foo=isula",
expect: "(ARG) (!@#$%^*()-_+foo=isula)",
- err: "",
},
{
str: "foo =var",
expect: "",
- err: "",
},
{
str: "foo= var",
expect: "",
- err: "",
},
{
str: "foo=",
expect: "",
- err: "",
},
{
str: "foo=var isula",
expect: "",
- err: "",
},
{
str: "!@#$%^*()-_+foo=var isula",
expect: "",
- err: "",
},
}
diff --git a/builder/dockerfile/parser/parser_test.go b/builder/dockerfile/parser/parser_test.go
index ba7fce5..0db5b4d 100644
--- a/builder/dockerfile/parser/parser_test.go
+++ b/builder/dockerfile/parser/parser_test.go
@@ -251,7 +251,7 @@ func TestParseContainSingleFrom(t *testing.T) {
isErr: false,
committed: false,
}, {
- name: "compelte_stage_with_single_from_stage",
+ name: "complete_stage_with_single_from_stage",
isErr: false,
committed: false,
}, {
@@ -277,8 +277,7 @@ func TestParseContainSingleFrom(t *testing.T) {
defer r.Close()
df := dockerfile{}
- playbook := &parser.PlayBook{}
- playbook, err = df.Parse(r, false)
+ playbook, err := df.Parse(r, false)
if !tc.isErr {
assert.NilError(t, err, file)
@@ -386,7 +385,6 @@ func TestGetPageName(t *testing.T) {
name string
line parser.Line
isErr bool
- errStr string
expectStr string
}
var testcases = []testcase{
diff --git a/builder/dockerfile/parser/testfiles/preprocess/compelte_stage_with_single_from_stage b/builder/dockerfile/parser/testfiles/preprocess/complete_stage_with_single_from_stage
similarity index 100%
rename from builder/dockerfile/parser/testfiles/preprocess/compelte_stage_with_single_from_stage
rename to builder/dockerfile/parser/testfiles/preprocess/complete_stage_with_single_from_stage
diff --git a/builder/dockerfile/parser/util_test.go b/builder/dockerfile/parser/util_test.go
index 6123860..5935cab 100644
--- a/builder/dockerfile/parser/util_test.go
+++ b/builder/dockerfile/parser/util_test.go
@@ -166,6 +166,20 @@ func TestResolveParam(t *testing.T) {
strict bool
resolveArg func(string) string
}
+ equalFoundElseFail := func(given string) func(input string) string {
+ return func(input string) string {
+ if input == given {
+ return "found"
+ }
+ return "fail"
+ }
+ }
+ name1EmptyElseBusybox := func(s string) string {
+ if s == "name1" {
+ return ""
+ }
+ return "busybox"
+ }
tests := []struct {
name string
args args
@@ -268,15 +282,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 101",
args: args{
- s: "${testArg}",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "${testArg}",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "found",
wantErr: false,
@@ -284,15 +292,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 102",
args: args{
- s: "${testArg}foo",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "${testArg}foo",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "foundfoo",
wantErr: false,
@@ -300,15 +302,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 103",
args: args{
- s: "$testArg:tag",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "$testArg:tag",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "found:tag",
wantErr: false,
@@ -316,15 +312,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 104",
args: args{
- s: `\$testArg:tag`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `\$testArg:tag`,
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: `\$testArg:tag`,
wantErr: false,
@@ -332,15 +322,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 105",
args: args{
- s: `$testArg:\$tag`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `$testArg:\$tag`,
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: `found:\$tag`,
wantErr: false,
@@ -348,15 +332,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 106",
args: args{
- s: `\$`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `\$`,
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: `\$`,
wantErr: false,
@@ -364,15 +342,9 @@ func TestResolveParam(t *testing.T) {
{
name: "case 107",
args: args{
- s: `${A}`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "A" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `${A}`,
+ strict: false,
+ resolveArg: equalFoundElseFail("A"),
},
want: `found`,
wantErr: false,
@@ -381,15 +353,9 @@ func TestResolveParam(t *testing.T) {
// ${variable:-name}, match variable, return $variable
name: "case 201",
args: args{
- s: "${testArg:-word}",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg:-word" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "${testArg:-word}",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg:-word"),
},
want: "found",
wantErr: false,
@@ -398,15 +364,9 @@ func TestResolveParam(t *testing.T) {
// ${variable:+name}, match variable, return name
name: "case 202",
args: args{
- s: "${testArg:+word}",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg:+word" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "${testArg:+word}",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg:+word"),
},
want: "found",
wantErr: false,
@@ -415,15 +375,9 @@ func TestResolveParam(t *testing.T) {
// strict mode test for FROM command. No matching for name1, return "", then got err
name: "case 301",
args: args{
- s: "${name1}",
- strict: true,
- resolveArg: func(s string) string {
- if s == "name1" {
- return ""
- } else {
- return "busybox"
- }
- },
+ s: "${name1}",
+ strict: true,
+ resolveArg: name1EmptyElseBusybox,
},
want: "",
wantErr: true,
@@ -432,15 +386,9 @@ func TestResolveParam(t *testing.T) {
// easy mode (v.s. strict) test for other commands. No matching for name1, return "", no err just ignore "name1"
name: "case 302",
args: args{
- s: "${name1}*Arg",
- strict: false,
- resolveArg: func(s string) string {
- if s == "name1" {
- return ""
- } else {
- return "busybox"
- }
- },
+ s: "${name1}*Arg",
+ strict: false,
+ resolveArg: name1EmptyElseBusybox,
},
want: "*Arg",
wantErr: false,
@@ -449,15 +397,9 @@ func TestResolveParam(t *testing.T) {
// strict mode test for FROM command. No matching for name1, return "", then got err
name: "case 303",
args: args{
- s: "$name1*Arg",
- strict: true,
- resolveArg: func(s string) string {
- if s == "name1" {
- return ""
- } else {
- return "busybox"
- }
- },
+ s: "$name1*Arg",
+ strict: true,
+ resolveArg: name1EmptyElseBusybox,
},
want: "",
wantErr: true,
@@ -466,15 +408,9 @@ func TestResolveParam(t *testing.T) {
// easy mode (v.s. strict) test for other commands. No matching for name1, return "", no err just ignore "name1"
name: "case 304",
args: args{
- s: "$name1*Arg",
- strict: false,
- resolveArg: func(s string) string {
- if s == "name1" {
- return ""
- } else {
- return "busybox"
- }
- },
+ s: "$name1*Arg",
+ strict: false,
+ resolveArg: name1EmptyElseBusybox,
},
want: "*Arg",
wantErr: false,
@@ -505,15 +441,9 @@ func TestResolveParam(t *testing.T) {
// single quotes
name: "case 401 - quotes",
args: args{
- s: "'testArg'foo",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "'testArg'foo",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "testArgfoo",
wantErr: false,
@@ -522,15 +452,9 @@ func TestResolveParam(t *testing.T) {
// single quotes
name: "case 402 - quotes",
args: args{
- s: "'testArgfoo",
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: "'testArgfoo",
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "",
wantErr: true,
@@ -539,15 +463,9 @@ func TestResolveParam(t *testing.T) {
// double quotes
name: "case 403 - quotes",
args: args{
- s: `"testArg"foo`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `"testArg"foo`,
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "testArgfoo",
wantErr: false,
@@ -556,15 +474,9 @@ func TestResolveParam(t *testing.T) {
// double quotes
name: "case 404 - quotes",
args: args{
- s: `"testArgfoo`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `"testArgfoo`,
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "",
wantErr: true,
@@ -573,20 +485,15 @@ func TestResolveParam(t *testing.T) {
// fixed quotes
name: "case 405 - quotes",
args: args{
- s: `"testArg'foo`,
- strict: false,
- resolveArg: func(s string) string {
- if s == "testArg" {
- return "found"
- } else {
- return "fail"
- }
- },
+ s: `"testArg'foo`,
+ strict: false,
+ resolveArg: equalFoundElseFail("testArg"),
},
want: "",
wantErr: true,
},
}
+
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := ResolveParam(tt.args.s, tt.args.strict, tt.args.resolveArg)
diff --git a/builder/dockerfile/stage_builder_test.go b/builder/dockerfile/stage_builder_test.go
index 2c92266..e456ad6 100644
--- a/builder/dockerfile/stage_builder_test.go
+++ b/builder/dockerfile/stage_builder_test.go
@@ -57,9 +57,10 @@ func init() {
func TestMain(m *testing.M) {
fmt.Println("dockerfile package test begin")
- m.Run()
+ exitVal := m.Run()
fmt.Println("dockerfile package test end")
clean()
+ os.Exit(exitVal)
}
func clean() {
@@ -165,10 +166,9 @@ func TestPrepareFromImage(t *testing.T) {
contentJustForFillLog := `FROM busybox
CMD ["sh"]`
type fields struct {
- buildOpt *stageBuilderOption
- builder *Builder
- localStore *store.Store
- rawStage *parser.Page
+ buildOpt *stageBuilderOption
+ builder *Builder
+ rawStage *parser.Page
name string
imageID string
@@ -182,12 +182,10 @@ CMD ["sh"]`
fromImageID string
container string
containerID string
- docker docker.Image
env map[string]string
}
type args struct {
- ctx context.Context
- base string
+ ctx context.Context
}
tests := []struct {
depLast bool
@@ -359,7 +357,7 @@ CMD ["sh"]`
s.env = make(map[string]string)
err := s.prepare(tt.args.ctx)
if s.mountpoint != "" {
- _, err := s.localStore.Unmount(s.containerID, false)
+ _, err = s.localStore.Unmount(s.containerID, false)
assert.NilError(t, err)
}
logrus.Infof("get mount point %q", s.mountpoint)
diff --git a/cmd/cli/build_test.go b/cmd/cli/build_test.go
index 7faa125..086fe65 100644
--- a/cmd/cli/build_test.go
+++ b/cmd/cli/build_test.go
@@ -140,7 +140,6 @@ func TestRunBuildWithDefaultDockerFile(t *testing.T) {
// expect: pass
func TestRunBuildWithNArchiveExporter(t *testing.T) {
type testcase struct {
- exporter string
descSpec string
format string
}
@@ -169,12 +168,10 @@ func TestRunBuildWithNArchiveExporter(t *testing.T) {
var testcases = []testcase{
{
- exporter: "docker-daeomn",
descSpec: "docker-daemon:isula:latest",
format: "docker",
},
{
- exporter: constant.OCIArchiveTransport,
descSpec: "oci-archive:isula:latest",
format: "oci",
},
@@ -193,7 +190,6 @@ func TestRunBuildWithNArchiveExporter(t *testing.T) {
// expect: pass
func TestRunBuildWithArchiveExporter(t *testing.T) {
type testcase struct {
- exporter string
descSpec string
format string
}
@@ -221,12 +217,10 @@ func TestRunBuildWithArchiveExporter(t *testing.T) {
var testcases = []testcase{
{
- exporter: constant.DockerArchiveTransport,
descSpec: "docker-archive:/tmp/image:isula:latest",
format: "docker",
},
{
- exporter: constant.OCIArchiveTransport,
descSpec: "oci-archive:/tmp/image:isula:latest",
format: "oci",
},
@@ -344,6 +338,7 @@ func TestReadDockerfileWithNoNameAndNoFileNamedDockerfile(t *testing.T) {
func TestNewBuildOptions(t *testing.T) {
// no args case use current working directory as context directory
cwd, err := os.Getwd()
+ assert.NilError(t, err)
realCwd, err := filepath.EvalSymlinks(cwd)
assert.NilError(t, err)
var args []string
@@ -354,6 +349,7 @@ func TestNewBuildOptions(t *testing.T) {
// normal case
args = []string{".", "abc"}
absPath, err := filepath.Abs(".")
+ assert.NilError(t, err)
realPath, err := filepath.EvalSymlinks(absPath)
assert.NilError(t, err)
err = newBuildOptions(args)
@@ -369,6 +365,7 @@ func TestNewBuildOptions(t *testing.T) {
// context directory is not a directory
err = ioutil.WriteFile(tmpDir.Path()+"/test", []byte(""), constant.DefaultRootFileMode)
+ assert.NilError(t, err)
args = []string{tmpDir.Path() + "/test"}
err = newBuildOptions(args)
assert.ErrorContains(t, err, "should be a directory")
@@ -376,94 +373,70 @@ func TestNewBuildOptions(t *testing.T) {
func TestCheckAndProcessOut(t *testing.T) {
type testcase struct {
- name string
- output string
- expect string
- errStr string
- isIsulad bool
- isErr bool
+ name string
+ output string
+ errStr string
+ isErr bool
}
testcases := []testcase{
{
- name: "docker-archive",
- output: "docker-archive:/root/docker-archive.tar",
- expect: "/root/docker-archive.tar",
- isIsulad: false,
+ name: "docker-archive",
+ output: "docker-archive:/root/docker-archive.tar",
},
{
- name: "docker-daemon",
- output: "docker-daemon:busybox:latest",
- expect: "",
- isIsulad: false,
+ name: "docker-daemon",
+ output: "docker-daemon:busybox:latest",
},
{
- name: "docker-registry",
- output: "docker://registry.example.com/busybox:latest",
- expect: "",
- isIsulad: false,
+ name: "docker-registry",
+ output: "docker://registry.example.com/busybox:latest",
},
{
- name: "empyty exporter",
- output: "",
- expect: "",
- isIsulad: false,
+ name: "empyty exporter",
+ output: "",
},
{
- name: "only has colon",
- output: ":",
- expect: "",
- isIsulad: false,
- errStr: "transport should not be empty",
- isErr: true,
+ name: "only has colon",
+ output: ":",
+ errStr: "transport should not be empty",
+ isErr: true,
},
{
- name: "only has transport",
- output: "docker-archive:",
- expect: "",
- isIsulad: false,
- errStr: "destination should not be empty",
- isErr: true,
+ name: "only has transport",
+ output: "docker-archive:",
+ errStr: "destination should not be empty",
+ isErr: true,
},
{
- name: "invalid exporter with no dest1",
- output: "docker-archive",
- expect: "",
- isErr: true,
- errStr: "destination should not be empty",
- isIsulad: false,
+ name: "invalid exporter with no dest1",
+ output: "docker-archive",
+ isErr: true,
+ errStr: "destination should not be empty",
},
{
- name: "invalid exporter with no dest3",
- output: "docker-archive: ",
- expect: "",
- isErr: true,
- errStr: "destination should not be empty",
- isIsulad: false,
+ name: "invalid exporter with no dest3",
+ output: "docker-archive: ",
+ isErr: true,
+ errStr: "destination should not be empty",
},
{
- name: "invalid exporter with no dest2",
- output: "docker-archive:",
- expect: "",
- isErr: true,
- errStr: "destination should not be empty",
- isIsulad: false,
+ name: "invalid exporter with no dest2",
+ output: "docker-archive:",
+ isErr: true,
+ errStr: "destination should not be empty",
},
{
- name: "invalid exporter with no transport",
- output: ":/test/images",
- expect: "",
- isErr: true,
- errStr: "transport should not be empty",
- isIsulad: false,
+ name: "invalid exporter with no transport",
+ output: ":/test/images",
+ isErr: true,
+ errStr: "transport should not be empty",
},
{
- name: "invalid transport",
- output: "docker-isula:/root/docker-isula.tar",
- expect: "/root/docker-isula.tar",
- errStr: "not support",
- isErr: true,
- isIsulad: false,
+ name: "invalid transport",
+ output: "docker-isula:/root/docker-isula.tar",
+ errStr: "not support",
+ isErr: true,
},
{
name: "invalid docker transport longer than limit",
@@ -510,10 +483,7 @@ func TestCheckAndProcessOut(t *testing.T) {
{
name: "valid isulad transport",
output: "isulad:isula:latest",
- // since refactor, when transport is isulad, the tmp tarball will stored in data dir
- expect: "",
- isErr: false,
- isIsulad: true,
+ isErr: false,
},
}
diff --git a/cmd/cli/info_test.go b/cmd/cli/info_test.go
index b8e14b4..6c5dfdd 100644
--- a/cmd/cli/info_test.go
+++ b/cmd/cli/info_test.go
@@ -18,6 +18,7 @@ import (
"testing"
"gotest.tools/v3/assert"
+
pb "isula.org/isula-build/api/services"
)
diff --git a/cmd/cli/load_test.go b/cmd/cli/load_test.go
index a5b3c30..ce896e7 100644
--- a/cmd/cli/load_test.go
+++ b/cmd/cli/load_test.go
@@ -203,6 +203,7 @@ func TestCheckLoadOpts(t *testing.T) {
ioutil.WriteFile(baseFile.Name(), []byte("This is base file"), constant.DefaultRootFileMode)
libFile, err := os.Create(filepath.Join(root.Path(), "lib.tar"))
+ assert.NilError(t, err)
ioutil.WriteFile(libFile.Name(), []byte("This is lib file"), constant.DefaultRootFileMode)
type fields struct {
diff --git a/cmd/cli/save_test.go b/cmd/cli/save_test.go
index 72f6ded..4928cb3 100644
--- a/cmd/cli/save_test.go
+++ b/cmd/cli/save_test.go
@@ -22,6 +22,7 @@ import (
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
+
constant "isula.org/isula-build"
)
diff --git a/daemon/save_test.go b/daemon/save_test.go
index c1b3734..30c2151 100644
--- a/daemon/save_test.go
+++ b/daemon/save_test.go
@@ -55,7 +55,7 @@ func TestSave(t *testing.T) {
d := prepare(t)
defer tmpClean(d)
- //TODO: create image manually and save
+ // nolint:godox TODO: create image manually and save
options := &storage.ImageOptions{}
img, err := d.Daemon.localStore.CreateImage(stringid.GenerateRandomID(), []string{"image:latest"}, "", "", options)
if err != nil {
diff --git a/exporter/common_test.go b/exporter/common_test.go
index 7434d3b..a912839 100644
--- a/exporter/common_test.go
+++ b/exporter/common_test.go
@@ -22,7 +22,7 @@ import (
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
- "isula.org/isula-build"
+ constant "isula.org/isula-build"
)
func TestFormatTransport(t *testing.T) {
@@ -120,7 +120,7 @@ func TestGetManifestType(t *testing.T) {
},
{
name: "unknown format manifest type",
- format: "unkown",
+ format: "unknown",
wantErr: true,
},
}
@@ -137,4 +137,3 @@ func TestGetManifestType(t *testing.T) {
})
}
}
-
diff --git a/pkg/gc/gc_test.go b/pkg/gc/gc_test.go
index a24560c..1552df7 100644
--- a/pkg/gc/gc_test.go
+++ b/pkg/gc/gc_test.go
@@ -15,6 +15,8 @@ package gc
import (
"context"
+ "fmt"
+ "os"
"sync"
"testing"
"time"
@@ -38,12 +40,22 @@ var (
gc *GarbageCollector
)
-func init() {
+func TestMain(m *testing.M) {
+ fmt.Println("gc package test begin")
+
backend = &mockBackend{status: map[string]string{"init": "init"}}
emptyBackend = &mockBackend{}
- ctx, _ := context.WithCancel(context.Background())
+
+ ctx, cancelFunc := context.WithCancel(context.Background())
+
gc = NewGC()
gc.StartGC(ctx)
+
+ exitVal := m.Run()
+
+ fmt.Println("gc package test end")
+ cancelFunc()
+ os.Exit(exitVal)
}
func TestRegisterGCWithEmptyOption(t *testing.T) {
diff --git a/pkg/opts/opts_test.go b/pkg/opts/opts_test.go
index d5d7ac7..d114c46 100644
--- a/pkg/opts/opts_test.go
+++ b/pkg/opts/opts_test.go
@@ -47,6 +47,7 @@ func TestOptValidator(t *testing.T) {
if err != nil {
assert.Equal(t, tc.expect[0], k)
assert.Equal(t, tc.expect[1], v)
+ assert.ErrorContains(t, err, tc.errStr)
}
}
diff --git a/pkg/stack/stack_test.go b/pkg/stack/stack_test.go
index 6d38592..284b95f 100644
--- a/pkg/stack/stack_test.go
+++ b/pkg/stack/stack_test.go
@@ -65,8 +65,7 @@ func TestSetup(t *testing.T) {
return
}
- var testDir *fs.Dir
- testDir = fs.NewDir(t, "TestSetup")
+ testDir := fs.NewDir(t, "TestSetup")
defer testDir.Remove()
cmd := reexec.Command(testDumpStackCommand)
diff --git a/runner/runner_test.go b/runner/runner_test.go
index b48047f..5eb7ef7 100644
--- a/runner/runner_test.go
+++ b/runner/runner_test.go
@@ -194,7 +194,8 @@ func TestRunOCIRuntimeContextCancel(t *testing.T) {
cliLog := logger.NewCliLogger(constant.CliLogBufferLen)
spec := &specs.Spec{}
- ctx, _ := context.WithTimeout(context.Background(), 500*time.Millisecond)
+ ctx, cancelFunc := context.WithTimeout(context.Background(), 500*time.Millisecond)
+ defer cancelFunc()
runner := NewOCIRunner(&OCIRunOpts{
Ctx: ctx,
Spec: spec,
diff --git a/util/cipher_test.go b/util/cipher_test.go
index 834c297..3b8e0ae 100644
--- a/util/cipher_test.go
+++ b/util/cipher_test.go
@@ -30,6 +30,7 @@ import (
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
+
constant "isula.org/isula-build"
)
diff --git a/util/file_test.go b/util/file_test.go
index b23b474..f09279e 100644
--- a/util/file_test.go
+++ b/util/file_test.go
@@ -24,6 +24,7 @@ import (
"github.com/containers/storage/pkg/archive"
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
+
constant "isula.org/isula-build"
)
@@ -70,7 +71,7 @@ func TestLoadJSONFile(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- if err := LoadJSONFile(tt.args.file, &tt.args.v); (err != nil) != tt.wantErr {
+ if err = LoadJSONFile(tt.args.file, &tt.args.v); (err != nil) != tt.wantErr {
t.Errorf("LoadJSONFile() error = %v, wantErr %v", err, tt.wantErr)
}
if err == nil {
@@ -89,6 +90,7 @@ func TestChangeFileModifyTime(t *testing.T) {
assert.NilError(t, err)
immutableFile := filepath.Join(pwd, "immutableFile")
_, err = os.Create(immutableFile)
+ assert.NilError(t, err)
defer os.Remove(immutableFile)
type args struct {
diff --git a/util/filepath_test.go b/util/filepath_test.go
index add4545..3c48fcd 100644
--- a/util/filepath_test.go
+++ b/util/filepath_test.go
@@ -20,6 +20,7 @@ import (
"testing"
"gotest.tools/v3/assert"
+
constant "isula.org/isula-build"
)
diff --git a/util/user_test.go b/util/user_test.go
index 441dca4..380d70f 100644
--- a/util/user_test.go
+++ b/util/user_test.go
@@ -36,6 +36,7 @@ func TestGetChownOptions(t *testing.T) {
err := os.MkdirAll(mountpoint+"/etc", constant.DefaultSharedDirMode)
assert.NilError(t, err)
pFile, err := os.Create(mountpoint + "/etc/passwd")
+ assert.NilError(t, err)
if pFile != nil {
_, err = pFile.WriteString("root:x:0:0:root:/root:/bin/ash\nbin:x:1:1:bin:/bin:/sbin/nologin\n" +
"daemon:x:2:2:daemon:/sbin:/sbin/nologin\n555555:x:3:4:adm:/var/adm:/sbin/nologin\n" +
@@ -45,6 +46,7 @@ func TestGetChownOptions(t *testing.T) {
}
gFile, err := os.Create(mountpoint + "/etc/group")
+ assert.NilError(t, err)
if gFile != nil {
_, err = gFile.WriteString("root:x:0:root\nbin:x:1:root,bin,daemon\n" +
"daemon:x:2:root,bin,daemon\n77777:x:3:root,bin,adm\n")
@@ -158,8 +160,8 @@ func TestGetChownOptions(t *testing.T) {
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
- pair, err := GetChownOptions(c.chown, mountpoint)
- assert.Equal(t, err != nil, c.isErr)
+ pair, gErr := GetChownOptions(c.chown, mountpoint)
+ assert.Equal(t, gErr != nil, c.isErr)
assert.Equal(t, pair.UID, c.UIDWanted)
assert.Equal(t, pair.GID, c.GIDWanted)
})
diff --git a/util/util_test.go b/util/util_test.go
index 374a69f..7ffacd2 100644
--- a/util/util_test.go
+++ b/util/util_test.go
@@ -92,7 +92,7 @@ func TestCopyFile(t *testing.T) {
}
for index := range testcases.attrName {
- err := system.Lsetxattr(src, testcases.attrName[index], []byte(testcases.attr[index]), 0)
+ err = system.Lsetxattr(src, testcases.attrName[index], []byte(testcases.attr[index]), 0)
assert.NilError(t, err)
}
@@ -214,7 +214,7 @@ func TestCopyXattrs(t *testing.T) {
assert.NilError(t, err2)
for index := range tt.attrName {
- err := system.Lsetxattr(src, tt.attrName[index], []byte(tt.attr[index]), 0)
+ err = system.Lsetxattr(src, tt.attrName[index], []byte(tt.attr[index]), 0)
assert.NilError(t, err)
}
@@ -322,7 +322,7 @@ func TestGenerateNonCryptoID(t *testing.T) {
}{
{
name: "TC1 - generate id",
- want:64,
+ want: 64,
},
}
for _, tt := range tests {
@@ -393,8 +393,8 @@ func TestIsClientExporter(t *testing.T) {
wantResult: true,
},
{
- name: "abnormal unkown",
- exporter: "unkown",
+ name: "abnormal unknown",
+ exporter: "unknown",
wantResult: false,
},
}
--
2.27.0