mirror of
https://github.com/containers/podman.git
synced 2025-05-20 08:36:23 +08:00
make lint: include unit tests
Include the unit tests (i.e., _test.go files) for linting to make the tests more robust and enforce the linters' coding styles etc. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
2
Makefile
2
Makefile
@ -151,7 +151,7 @@ endif
|
|||||||
lint: golangci-lint
|
lint: golangci-lint
|
||||||
|
|
||||||
golangci-lint: .gopathok varlink_generate .install.golangci-lint
|
golangci-lint: .gopathok varlink_generate .install.golangci-lint
|
||||||
$(GOBIN)/golangci-lint run --tests=false
|
$(GOBIN)/golangci-lint run
|
||||||
|
|
||||||
gofmt: ## Verify the source code gofmt
|
gofmt: ## Verify the source code gofmt
|
||||||
find . -name '*.go' ! -path './vendor/*' -exec gofmt -s -w {} \+
|
find . -name '*.go' ! -path './vendor/*' -exec gofmt -s -w {} \+
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os/user"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func skipTestIfNotRoot(t *testing.T) {
|
|
||||||
u, err := user.Current()
|
|
||||||
if err != nil {
|
|
||||||
t.Skip("Could not determine user. Running without root may cause tests to fail")
|
|
||||||
} else if u.Uid != "0" {
|
|
||||||
t.Skip("tests will fail unless run as root")
|
|
||||||
}
|
|
||||||
}
|
|
@ -92,14 +92,15 @@ func TestReadRemoteConfig(t *testing.T) {
|
|||||||
{"nouser", args{reader: strings.NewReader(noUser)}, makeNoUserResult(), false},
|
{"nouser", args{reader: strings.NewReader(noUser)}, makeNoUserResult(), false},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
test := tt
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
got, err := ReadRemoteConfig(tt.args.reader)
|
got, err := ReadRemoteConfig(test.args.reader)
|
||||||
if (err != nil) != tt.wantErr {
|
if (err != nil) != test.wantErr {
|
||||||
t.Errorf("ReadRemoteConfig() error = %v, wantErr %v", err, tt.wantErr)
|
t.Errorf("ReadRemoteConfig() error = %v, wantErr %v", err, test.wantErr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(got, tt.want) {
|
if !reflect.DeepEqual(got, test.want) {
|
||||||
t.Errorf("ReadRemoteConfig() = %v, want %v", got, tt.want)
|
t.Errorf("ReadRemoteConfig() = %v, want %v", got, test.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -150,17 +151,18 @@ func TestRemoteConfig_GetDefault(t *testing.T) {
|
|||||||
{"single", fields{Connections: none}, nil, true},
|
{"single", fields{Connections: none}, nil, true},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
test := tt
|
||||||
|
t.Run(test.name, func(t *testing.T) {
|
||||||
r := &RemoteConfig{
|
r := &RemoteConfig{
|
||||||
Connections: tt.fields.Connections,
|
Connections: test.fields.Connections,
|
||||||
}
|
}
|
||||||
got, err := r.GetDefault()
|
got, err := r.GetDefault()
|
||||||
if (err != nil) != tt.wantErr {
|
if (err != nil) != test.wantErr {
|
||||||
t.Errorf("RemoteConfig.GetDefault() error = %v, wantErr %v", err, tt.wantErr)
|
t.Errorf("RemoteConfig.GetDefault() error = %v, wantErr %v", err, test.wantErr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(got, tt.want) {
|
if !reflect.DeepEqual(got, test.want) {
|
||||||
t.Errorf("RemoteConfig.GetDefault() = %v, want %v", got, tt.want)
|
t.Errorf("RemoteConfig.GetDefault() = %v, want %v", got, test.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -192,17 +194,18 @@ func TestRemoteConfig_GetRemoteConnection(t *testing.T) {
|
|||||||
{"none", fields{Connections: blank}, args{name: "foobar"}, nil, true},
|
{"none", fields{Connections: blank}, args{name: "foobar"}, nil, true},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
test := tt
|
||||||
|
t.Run(test.name, func(t *testing.T) {
|
||||||
r := &RemoteConfig{
|
r := &RemoteConfig{
|
||||||
Connections: tt.fields.Connections,
|
Connections: test.fields.Connections,
|
||||||
}
|
}
|
||||||
got, err := r.GetRemoteConnection(tt.args.name)
|
got, err := r.GetRemoteConnection(test.args.name)
|
||||||
if (err != nil) != tt.wantErr {
|
if (err != nil) != test.wantErr {
|
||||||
t.Errorf("RemoteConfig.GetRemoteConnection() error = %v, wantErr %v", err, tt.wantErr)
|
t.Errorf("RemoteConfig.GetRemoteConnection() error = %v, wantErr %v", err, test.wantErr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(got, tt.want) {
|
if !reflect.DeepEqual(got, test.want) {
|
||||||
t.Errorf("RemoteConfig.GetRemoteConnection() = %v, want %v", got, tt.want)
|
t.Errorf("RemoteConfig.GetRemoteConnection() = %v, want %v", got, test.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,8 @@ func TestPostDeleteHooks(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stateRegexp := `{"ociVersion":"1\.0\.1-dev","id":"123abc","status":"stopped","bundle":"` + strings.TrimSuffix(os.TempDir(), "/") + `/libpod_test_[0-9]*","annotations":{"a":"b"}}`
|
stateRegexp := `{"ociVersion":"1\.0\.1-dev","id":"123abc","status":"stopped","bundle":"` + strings.TrimSuffix(os.TempDir(), "/") + `/libpod_test_[0-9]*","annotations":{"a":"b"}}`
|
||||||
for _, path := range []string{statePath, copyPath} {
|
for _, p := range []string{statePath, copyPath} {
|
||||||
|
path := p
|
||||||
t.Run(path, func(t *testing.T) {
|
t.Run(path, func(t *testing.T) {
|
||||||
content, err := ioutil.ReadFile(path)
|
content, err := ioutil.ReadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -3,7 +3,6 @@ package image
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
@ -91,8 +90,7 @@ func TestImage_NewFromLocal(t *testing.T) {
|
|||||||
RunRoot: workdir,
|
RunRoot: workdir,
|
||||||
GraphRoot: workdir,
|
GraphRoot: workdir,
|
||||||
}
|
}
|
||||||
var writer io.Writer
|
writer := os.Stdout
|
||||||
writer = os.Stdout
|
|
||||||
|
|
||||||
// Need images to be present for this test
|
// Need images to be present for this test
|
||||||
ir, err := NewImageRuntimeFromOptions(so)
|
ir, err := NewImageRuntimeFromOptions(so)
|
||||||
@ -108,7 +106,7 @@ func TestImage_NewFromLocal(t *testing.T) {
|
|||||||
|
|
||||||
for _, image := range tm {
|
for _, image := range tm {
|
||||||
// tag our images
|
// tag our images
|
||||||
image.img.TagImage(image.taggedName)
|
err = image.img.TagImage(image.taggedName)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
for _, name := range image.names {
|
for _, name := range image.names {
|
||||||
newImage, err := ir.NewFromLocal(name)
|
newImage, err := ir.NewFromLocal(name)
|
||||||
@ -142,8 +140,7 @@ func TestImage_New(t *testing.T) {
|
|||||||
// Build the list of pull names
|
// Build the list of pull names
|
||||||
names = append(names, bbNames...)
|
names = append(names, bbNames...)
|
||||||
names = append(names, fedoraNames...)
|
names = append(names, fedoraNames...)
|
||||||
var writer io.Writer
|
writer := os.Stdout
|
||||||
writer = os.Stdout
|
|
||||||
|
|
||||||
// Iterate over the names and delete the image
|
// Iterate over the names and delete the image
|
||||||
// after the pull
|
// after the pull
|
||||||
@ -213,7 +210,7 @@ func TestImage_RepoDigests(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
names []string
|
names []string
|
||||||
expected []string
|
expected []string
|
||||||
@ -234,6 +231,7 @@ func TestImage_RepoDigests(t *testing.T) {
|
|||||||
expected: []string{"docker.io/library/busybox@sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc"},
|
expected: []string{"docker.io/library/busybox@sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc"},
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
image := &Image{
|
image := &Image{
|
||||||
image: &storage.Image{
|
image: &storage.Image{
|
||||||
|
@ -17,10 +17,10 @@ func TestCreateAndDeallocate(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer os.RemoveAll(d)
|
defer os.RemoveAll(d)
|
||||||
|
|
||||||
l, err := OpenFileLock(filepath.Join(d, "locks"))
|
_, err = OpenFileLock(filepath.Join(d, "locks"))
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
l, err = CreateFileLock(filepath.Join(d, "locks"))
|
l, err := CreateFileLock(filepath.Join(d, "locks"))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
lock, err := l.AllocateLock()
|
lock, err := l.AllocateLock()
|
||||||
|
@ -350,7 +350,8 @@ func TestAddCtrSameNamespaceSucceeds(t *testing.T) {
|
|||||||
|
|
||||||
testCtr.config.Namespace = "test1"
|
testCtr.config.Namespace = "test1"
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -369,12 +370,14 @@ func TestAddCtrDifferentNamespaceFails(t *testing.T) {
|
|||||||
|
|
||||||
testCtr.config.Namespace = "test1"
|
testCtr.config.Namespace = "test1"
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
state.SetNamespace("")
|
err = state.SetNamespace("")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctrs, err := state.AllContainers()
|
ctrs, err := state.AllContainers()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -406,7 +409,8 @@ func TestGetContainerInDifferentNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.Container(testCtr.ID())
|
_, err = state.Container(testCtr.ID())
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -423,7 +427,8 @@ func TestGetContainerInSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctr, err := state.Container(testCtr.ID())
|
ctr, err := state.Container(testCtr.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -586,7 +591,8 @@ func TestLookupCtrInSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctr, err := state.LookupContainer(testCtr.ID())
|
ctr, err := state.LookupContainer(testCtr.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -608,7 +614,8 @@ func TestLookupCtrInDifferentNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.LookupContainer(testCtr.ID())
|
_, err = state.LookupContainer(testCtr.ID())
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -633,7 +640,8 @@ func TestLookupContainerMatchInDifferentNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr2)
|
err = state.AddContainer(testCtr2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctr, err := state.LookupContainer("000")
|
ctr, err := state.LookupContainer("000")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -698,7 +706,8 @@ func TestHasContainerSameNamespaceIsTrue(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
exists, err := state.HasContainer(testCtr.ID())
|
exists, err := state.HasContainer(testCtr.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -716,7 +725,8 @@ func TestHasContainerDifferentNamespaceIsFalse(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
exists, err := state.HasContainer(testCtr.ID())
|
exists, err := state.HasContainer(testCtr.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -759,7 +769,8 @@ func TestSaveAndUpdateContainerSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
retrievedCtr, err := state.Container(testCtr.ID())
|
retrievedCtr, err := state.Container(testCtr.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -806,7 +817,8 @@ func TestUpdateContainerNotInNamespaceReturnsError(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.UpdateContainer(testCtr)
|
err = state.UpdateContainer(testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -841,7 +853,8 @@ func TestSaveContainerNotInNamespaceReturnsError(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.SaveContainer(testCtr)
|
err = state.SaveContainer(testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -894,12 +907,14 @@ func TestRemoveContainerNotInNamespaceFails(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, 1, len(ctrs))
|
assert.Equal(t, 1, len(ctrs))
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.RemoveContainer(testCtr)
|
err = state.RemoveContainer(testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
state.SetNamespace("")
|
err = state.SetNamespace("")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctrs2, err := state.AllContainers()
|
ctrs2, err := state.AllContainers()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -960,7 +975,8 @@ func TestGetAllContainersNoContainerInNamespace(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctrs, err := state.AllContainers()
|
ctrs, err := state.AllContainers()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -984,7 +1000,8 @@ func TestGetContainerOneContainerInNamespace(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr2)
|
err = state.AddContainer(testCtr2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctrs, err := state.AllContainers()
|
ctrs, err := state.AllContainers()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1020,7 +1037,8 @@ func TestContainerInUseCtrNotInNamespace(t *testing.T) {
|
|||||||
err = state.AddContainer(testCtr)
|
err = state.AddContainer(testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.ContainerInUse(testCtr)
|
_, err = state.ContainerInUse(testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -1497,7 +1515,8 @@ func TestGetPodInNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
statePod, err := state.Pod(testPod.ID())
|
statePod, err := state.Pod(testPod.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1516,7 +1535,8 @@ func TestGetPodPodNotInNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.Pod(testPod.ID())
|
_, err = state.Pod(testPod.ID())
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -1637,7 +1657,8 @@ func TestLookupPodInSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
statePod, err := state.LookupPod(testPod.ID())
|
statePod, err := state.LookupPod(testPod.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1656,7 +1677,8 @@ func TestLookupPodInDifferentNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.LookupPod(testPod.ID())
|
_, err = state.LookupPod(testPod.ID())
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -1681,7 +1703,8 @@ func TestLookupPodOneInDifferentNamespaceFindsRightPod(t *testing.T) {
|
|||||||
err = state.AddPod(testPod2)
|
err = state.AddPod(testPod2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
pod, err := state.LookupPod(strings.Repeat("1", 5))
|
pod, err := state.LookupPod(strings.Repeat("1", 5))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1757,7 +1780,8 @@ func TestHasPodSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
exist, err := state.HasPod(testPod.ID())
|
exist, err := state.HasPod(testPod.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1775,7 +1799,8 @@ func TestHasPodDifferentNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
exist, err := state.HasPod(testPod.ID())
|
exist, err := state.HasPod(testPod.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1913,7 +1938,8 @@ func TestAddPodSameNamespaceSucceeds(t *testing.T) {
|
|||||||
|
|
||||||
testPod.config.Namespace = "test1"
|
testPod.config.Namespace = "test1"
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1933,12 +1959,14 @@ func TestAddPodDifferentNamespaceFails(t *testing.T) {
|
|||||||
|
|
||||||
testPod.config.Namespace = "test1"
|
testPod.config.Namespace = "test1"
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
state.SetNamespace("")
|
err = state.SetNamespace("")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
allPods, err := state.AllPods()
|
allPods, err := state.AllPods()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -2067,12 +2095,14 @@ func TestRemovePodNotInNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.RemovePod(testPod)
|
err = state.RemovePod(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
state.SetNamespace("")
|
err = state.SetNamespace("")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
allPods, err := state.AllPods()
|
allPods, err := state.AllPods()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -2152,7 +2182,8 @@ func TestAllPodsPodInDifferentNamespaces(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
allPods, err := state.AllPods()
|
allPods, err := state.AllPods()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -2178,7 +2209,8 @@ func TestAllPodsOnePodInDifferentNamespace(t *testing.T) {
|
|||||||
err = state.AddPod(testPod2)
|
err = state.AddPod(testPod2)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
allPods, err := state.AllPods()
|
allPods, err := state.AllPods()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -2274,7 +2306,8 @@ func TestPodHasContainerPodNotInNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.PodHasContainer(testPod, strings.Repeat("2", 32))
|
_, err = state.PodHasContainer(testPod, strings.Repeat("2", 32))
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -2393,7 +2426,8 @@ func TestPodContainerByIDPodNotInNamespace(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.PodContainersByID(testPod)
|
_, err = state.PodContainersByID(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -2513,7 +2547,8 @@ func TestPodContainersPodNotInNamespace(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = state.PodContainers(testPod)
|
_, err = state.PodContainers(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -2686,7 +2721,8 @@ func TestRemoveContainersNotInNamespace(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.RemovePodContainers(testPod)
|
err = state.RemovePodContainers(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -3229,7 +3265,8 @@ func TestAddCtrToPodSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.AddContainerToPod(testPod, testCtr)
|
err = state.AddContainerToPod(testPod, testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -3253,15 +3290,17 @@ func TestAddCtrToPodDifferentNamespaceFails(t *testing.T) {
|
|||||||
testPod.config.Namespace = "test1"
|
testPod.config.Namespace = "test1"
|
||||||
testCtr.config.Pod = testPod.ID()
|
testCtr.config.Pod = testPod.ID()
|
||||||
|
|
||||||
state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.AddContainerToPod(testPod, testCtr)
|
err = state.AddContainerToPod(testPod, testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
state.SetNamespace("")
|
err = state.SetNamespace("")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctrs, err := state.AllContainers()
|
ctrs, err := state.AllContainers()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -3461,7 +3500,8 @@ func TestRemoveContainerFromPodSameNamespaceSucceeds(t *testing.T) {
|
|||||||
err = state.AddContainerToPod(testPod, testCtr)
|
err = state.AddContainerToPod(testPod, testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.RemoveContainerFromPod(testPod, testCtr)
|
err = state.RemoveContainerFromPod(testPod, testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -3495,12 +3535,14 @@ func TestRemoveContainerFromPodDifferentNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddContainerToPod(testPod, testCtr)
|
err = state.AddContainerToPod(testPod, testCtr)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.RemoveContainerFromPod(testPod, testCtr)
|
err = state.RemoveContainerFromPod(testPod, testCtr)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
state.SetNamespace("")
|
err = state.SetNamespace("")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
ctrs, err := state.PodContainers(testPod)
|
ctrs, err := state.PodContainers(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -3539,7 +3581,8 @@ func TestUpdatePodNotInNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.UpdatePod(testPod)
|
err = state.UpdatePod(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -3573,7 +3616,8 @@ func TestSavePodNotInNamespaceFails(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test2")
|
err = state.SetNamespace("test2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = state.SavePod(testPod)
|
err = state.SavePod(testPod)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
@ -3615,7 +3659,8 @@ func TestSaveAndUpdatePodSameNamespace(t *testing.T) {
|
|||||||
err = state.AddPod(testPod)
|
err = state.AddPod(testPod)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
state.SetNamespace("test1")
|
err = state.SetNamespace("test1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
statePod, err := state.Pod(testPod.ID())
|
statePod, err := state.Pod(testPod.ID())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
@ -134,7 +134,7 @@ func TestDefaultContent(t *testing.T) {
|
|||||||
if _, err := os.Stat(aapath); err != nil {
|
if _, err := os.Stat(aapath); err != nil {
|
||||||
t.Skip("AppArmor isn't available in this environment")
|
t.Skip("AppArmor isn't available in this environment")
|
||||||
}
|
}
|
||||||
if err := DefaultContent(profile); err != nil {
|
if _, err := DefaultContent(profile); err != nil {
|
||||||
t.Fatalf("Couldn't retrieve default AppArmor profile content '%s': %v", profile, err)
|
t.Fatalf("Couldn't retrieve default AppArmor profile content '%s': %v", profile, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,8 @@ import (
|
|||||||
|
|
||||||
func TestNoMatch(t *testing.T) {
|
func TestNoMatch(t *testing.T) {
|
||||||
config := &rspec.Spec{}
|
config := &rspec.Spec{}
|
||||||
for _, or := range []bool{true, false} {
|
for _, o := range []bool{true, false} {
|
||||||
|
or := o
|
||||||
t.Run(fmt.Sprintf("or %t", or), func(t *testing.T) {
|
t.Run(fmt.Sprintf("or %t", or), func(t *testing.T) {
|
||||||
when := When{Or: or}
|
when := When{Or: or}
|
||||||
match, err := when.Match(config, map[string]string{}, false)
|
match, err := when.Match(config, map[string]string{}, false)
|
||||||
@ -27,9 +28,12 @@ func TestAlways(t *testing.T) {
|
|||||||
processStruct := &rspec.Process{
|
processStruct := &rspec.Process{
|
||||||
Args: []string{"/bin/sh", "a", "b"},
|
Args: []string{"/bin/sh", "a", "b"},
|
||||||
}
|
}
|
||||||
for _, always := range []bool{true, false} {
|
for _, a := range []bool{true, false} {
|
||||||
for _, or := range []bool{true, false} {
|
always := a
|
||||||
for _, process := range []*rspec.Process{processStruct, nil} {
|
for _, o := range []bool{true, false} {
|
||||||
|
or := o
|
||||||
|
for _, p := range []*rspec.Process{processStruct, nil} {
|
||||||
|
process := p
|
||||||
t.Run(fmt.Sprintf("always %t, or %t, has process %t", always, or, process != nil), func(t *testing.T) {
|
t.Run(fmt.Sprintf("always %t, or %t, has process %t", always, or, process != nil), func(t *testing.T) {
|
||||||
config.Process = process
|
config.Process = process
|
||||||
when := When{Always: &always, Or: or}
|
when := When{Always: &always, Or: or}
|
||||||
@ -48,7 +52,8 @@ func TestHasBindMountsAnd(t *testing.T) {
|
|||||||
hasBindMounts := true
|
hasBindMounts := true
|
||||||
when := When{HasBindMounts: &hasBindMounts}
|
when := When{HasBindMounts: &hasBindMounts}
|
||||||
config := &rspec.Spec{}
|
config := &rspec.Spec{}
|
||||||
for _, containerHasBindMounts := range []bool{false, true} {
|
for _, b := range []bool{false, true} {
|
||||||
|
containerHasBindMounts := b
|
||||||
t.Run(fmt.Sprintf("%t", containerHasBindMounts), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%t", containerHasBindMounts), func(t *testing.T) {
|
||||||
match, err := when.Match(config, map[string]string{}, containerHasBindMounts)
|
match, err := when.Match(config, map[string]string{}, containerHasBindMounts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -63,7 +68,8 @@ func TestHasBindMountsOr(t *testing.T) {
|
|||||||
hasBindMounts := true
|
hasBindMounts := true
|
||||||
when := When{HasBindMounts: &hasBindMounts, Or: true}
|
when := When{HasBindMounts: &hasBindMounts, Or: true}
|
||||||
config := &rspec.Spec{}
|
config := &rspec.Spec{}
|
||||||
for _, containerHasBindMounts := range []bool{false, true} {
|
for _, b := range []bool{false, true} {
|
||||||
|
containerHasBindMounts := b
|
||||||
t.Run(fmt.Sprintf("%t", containerHasBindMounts), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%t", containerHasBindMounts), func(t *testing.T) {
|
||||||
match, err := when.Match(config, map[string]string{}, containerHasBindMounts)
|
match, err := when.Match(config, map[string]string{}, containerHasBindMounts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -82,7 +88,7 @@ func TestAnnotations(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
config := &rspec.Spec{}
|
config := &rspec.Spec{}
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
annotations map[string]string
|
annotations map[string]string
|
||||||
or bool
|
or bool
|
||||||
@ -131,6 +137,7 @@ func TestAnnotations(t *testing.T) {
|
|||||||
match: false,
|
match: false,
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
when.Or = test.or
|
when.Or = test.or
|
||||||
match, err := when.Match(config, test.annotations, false)
|
match, err := when.Match(config, test.annotations, false)
|
||||||
@ -149,7 +156,7 @@ func TestCommands(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
config := &rspec.Spec{}
|
config := &rspec.Spec{}
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
process *rspec.Process
|
process *rspec.Process
|
||||||
match bool
|
match bool
|
||||||
@ -173,6 +180,7 @@ func TestCommands(t *testing.T) {
|
|||||||
match: false,
|
match: false,
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
config.Process = test.process
|
config.Process = test.process
|
||||||
match, err := when.Match(config, map[string]string{}, false)
|
match, err := when.Match(config, map[string]string{}, false)
|
||||||
@ -209,7 +217,7 @@ func TestHasBindMountsAndCommands(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
config := &rspec.Spec{Process: &rspec.Process{}}
|
config := &rspec.Spec{Process: &rspec.Process{}}
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
command string
|
command string
|
||||||
hasBindMounts bool
|
hasBindMounts bool
|
||||||
@ -273,6 +281,7 @@ func TestHasBindMountsAndCommands(t *testing.T) {
|
|||||||
match: false,
|
match: false,
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
config.Process.Args = []string{test.command}
|
config.Process.Args = []string{test.command}
|
||||||
when.Or = test.or
|
when.Or = test.or
|
||||||
@ -287,7 +296,7 @@ func TestHasBindMountsAndCommands(t *testing.T) {
|
|||||||
|
|
||||||
func TestInvalidRegexp(t *testing.T) {
|
func TestInvalidRegexp(t *testing.T) {
|
||||||
config := &rspec.Spec{Process: &rspec.Process{Args: []string{"/bin/sh"}}}
|
config := &rspec.Spec{Process: &rspec.Process{Args: []string{"/bin/sh"}}}
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
when When
|
when When
|
||||||
expected string
|
expected string
|
||||||
@ -308,6 +317,7 @@ func TestInvalidRegexp(t *testing.T) {
|
|||||||
expected: "^command: error parsing regexp: .*",
|
expected: "^command: error parsing regexp: .*",
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
_, err := test.when.Match(config, map[string]string{"a": "b"}, false)
|
_, err := test.when.Match(config, map[string]string{"a": "b"}, false)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
@ -94,7 +94,7 @@ func TestRunEnvironment(t *testing.T) {
|
|||||||
Path: path,
|
Path: path,
|
||||||
Args: []string{"sh", "-c", "env"},
|
Args: []string{"sh", "-c", "env"},
|
||||||
}
|
}
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
env []string
|
env []string
|
||||||
expected map[string]string
|
expected map[string]string
|
||||||
@ -120,6 +120,7 @@ func TestRunEnvironment(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
var stderr, stdout bytes.Buffer
|
var stderr, stdout bytes.Buffer
|
||||||
hook.Env = test.env
|
hook.Env = test.env
|
||||||
@ -147,7 +148,7 @@ func TestRunCancel(t *testing.T) {
|
|||||||
Args: []string{"sh", "-c", "echo waiting; sleep 2; echo done"},
|
Args: []string{"sh", "-c", "echo waiting; sleep 2; echo done"},
|
||||||
}
|
}
|
||||||
one := 1
|
one := 1
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
contextTimeout time.Duration
|
contextTimeout time.Duration
|
||||||
hookTimeout *int
|
hookTimeout *int
|
||||||
@ -174,6 +175,7 @@ func TestRunCancel(t *testing.T) {
|
|||||||
expectedRunError: context.DeadlineExceeded,
|
expectedRunError: context.DeadlineExceeded,
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
var stderr, stdout bytes.Buffer
|
var stderr, stdout bytes.Buffer
|
||||||
|
@ -25,9 +25,9 @@ func pointerFileMode(value os.FileMode) *os.FileMode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRuntimeConfigFilter(t *testing.T) {
|
func TestRuntimeConfigFilter(t *testing.T) {
|
||||||
unexpectedEndOfJSONInput := json.Unmarshal([]byte("{\n"), nil)
|
unexpectedEndOfJSONInput := json.Unmarshal([]byte("{\n"), nil) //nolint
|
||||||
|
|
||||||
for _, test := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
contextTimeout time.Duration
|
contextTimeout time.Duration
|
||||||
hooks []spec.Hook
|
hooks []spec.Hook
|
||||||
@ -244,6 +244,7 @@ func TestRuntimeConfigFilter(t *testing.T) {
|
|||||||
expectedRunError: unexpectedEndOfJSONInput,
|
expectedRunError: unexpectedEndOfJSONInput,
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
|
test := tt
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
if test.contextTimeout > 0 {
|
if test.contextTimeout > 0 {
|
||||||
|
@ -25,9 +25,10 @@ func Test_networkIntersect(t *testing.T) {
|
|||||||
{"Two 24s", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.2.0/24")}, false},
|
{"Two 24s", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.2.0/24")}, false},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
test := tt
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
if got := networkIntersect(tt.args.n1, tt.args.n2); got != tt.want {
|
if got := networkIntersect(test.args.n1, test.args.n2); got != test.want {
|
||||||
t.Errorf("networkIntersect() = %v, want %v", got, tt.want)
|
t.Errorf("networkIntersect() = %v, want %v", got, test.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -20,14 +20,15 @@ func TestNextSubnet(t *testing.T) {
|
|||||||
{"class c", args{subnet: parseCIDR("192.168.1.0/24")}, parseCIDR("192.168.2.0/24"), false},
|
{"class c", args{subnet: parseCIDR("192.168.1.0/24")}, parseCIDR("192.168.2.0/24"), false},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
test := tt
|
||||||
got, err := NextSubnet(tt.args.subnet)
|
t.Run(test.name, func(t *testing.T) {
|
||||||
if (err != nil) != tt.wantErr {
|
got, err := NextSubnet(test.args.subnet)
|
||||||
t.Errorf("NextSubnet() error = %v, wantErr %v", err, tt.wantErr)
|
if (err != nil) != test.wantErr {
|
||||||
|
t.Errorf("NextSubnet() error = %v, wantErr %v", err, test.wantErr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(got, tt.want) {
|
if !reflect.DeepEqual(got, test.want) {
|
||||||
t.Errorf("NextSubnet() got = %v, want %v", got, tt.want)
|
t.Errorf("NextSubnet() got = %v, want %v", got, test.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,10 @@ func TestValidateRestartPolicy(t *testing.T) {
|
|||||||
{"failblank", ContainerInfo{restart: ""}, true},
|
{"failblank", ContainerInfo{restart: ""}, true},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
test := tt
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
if err := validateRestartPolicy(tt.ContainerInfo.restart); (err != nil) != tt.wantErr {
|
if err := validateRestartPolicy(test.ContainerInfo.restart); (err != nil) != test.wantErr {
|
||||||
t.Errorf("ValidateRestartPolicy() error = %v, wantErr %v", err, tt.wantErr)
|
t.Errorf("ValidateRestartPolicy() error = %v, wantErr %v", err, test.wantErr)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -221,18 +222,19 @@ WantedBy=multi-user.target`
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
test := tt
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
opts := Options{
|
opts := Options{
|
||||||
Files: false,
|
Files: false,
|
||||||
New: tt.info.New,
|
New: test.info.New,
|
||||||
}
|
}
|
||||||
got, err := CreateContainerSystemdUnit(&tt.info, opts)
|
got, err := CreateContainerSystemdUnit(&test.info, opts)
|
||||||
if (err != nil) != tt.wantErr {
|
if (err != nil) != test.wantErr {
|
||||||
t.Errorf("CreateContainerSystemdUnit() error = \n%v, wantErr \n%v", err, tt.wantErr)
|
t.Errorf("CreateContainerSystemdUnit() error = \n%v, wantErr \n%v", err, test.wantErr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if got != tt.want {
|
if got != test.want {
|
||||||
t.Errorf("CreateContainerSystemdUnit() = \n%v\n---------> want\n%v", got, tt.want)
|
t.Errorf("CreateContainerSystemdUnit() = \n%v\n---------> want\n%v", got, test.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user