kubeadm: use T.Run API in app/util/system

Used T.Run API for kubeadm tests in app/util/system
pull/564/head
Ed Bartosh 2018-12-28 13:09:07 +02:00
parent a6ba2ebf85
commit e6c3ab013c
5 changed files with 119 additions and 83 deletions

View File

@ -45,12 +45,13 @@ func TestValidateCgroupSubsystem(t *testing.T) {
err: false, err: false,
}, },
} { } {
t.Run(desc, func(t *testing.T) {
err := v.validateCgroupSubsystems(cgroupSpec, test.subsystems) err := v.validateCgroupSubsystems(cgroupSpec, test.subsystems)
if !test.err { if !test.err {
assert.Nil(t, err, "%q: Expect error not to occur with cgroup", desc) assert.Nil(t, err, "%q: Expect error not to occur with cgroup", desc)
} else { } else {
assert.NotNil(t, err, "%q: Expect error to occur with docker info", desc) assert.NotNil(t, err, "%q: Expect error to occur with docker info", desc)
} }
})
} }
} }

View File

@ -32,61 +32,73 @@ func TestValidateDockerInfo(t *testing.T) {
GraphDriver: []string{"driver_1", "driver_2"}, GraphDriver: []string{"driver_1", "driver_2"},
} }
for _, test := range []struct { for _, test := range []struct {
name string
info types.Info info types.Info
err bool err bool
warn bool warn bool
}{ }{
{ {
name: "unsupported Docker version 1.10.1",
info: types.Info{Driver: "driver_1", ServerVersion: "1.10.1"}, info: types.Info{Driver: "driver_1", ServerVersion: "1.10.1"},
err: true, err: true,
warn: false, warn: false,
}, },
{ {
name: "unsupported driver",
info: types.Info{Driver: "bad_driver", ServerVersion: "1.11.1"}, info: types.Info{Driver: "bad_driver", ServerVersion: "1.11.1"},
err: true, err: true,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 1.11.1",
info: types.Info{Driver: "driver_1", ServerVersion: "1.11.1"}, info: types.Info{Driver: "driver_1", ServerVersion: "1.11.1"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 1.12.1",
info: types.Info{Driver: "driver_2", ServerVersion: "1.12.1"}, info: types.Info{Driver: "driver_2", ServerVersion: "1.12.1"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 1.13.1",
info: types.Info{Driver: "driver_2", ServerVersion: "1.13.1"}, info: types.Info{Driver: "driver_2", ServerVersion: "1.13.1"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 17.03.0-ce",
info: types.Info{Driver: "driver_2", ServerVersion: "17.03.0-ce"}, info: types.Info{Driver: "driver_2", ServerVersion: "17.03.0-ce"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 17.06.0-ce",
info: types.Info{Driver: "driver_2", ServerVersion: "17.06.0-ce"}, info: types.Info{Driver: "driver_2", ServerVersion: "17.06.0-ce"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 17.09.0-ce",
info: types.Info{Driver: "driver_2", ServerVersion: "17.09.0-ce"}, info: types.Info{Driver: "driver_2", ServerVersion: "17.09.0-ce"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "valid Docker version 18.06.0-ce",
info: types.Info{Driver: "driver_2", ServerVersion: "18.06.0-ce"}, info: types.Info{Driver: "driver_2", ServerVersion: "18.06.0-ce"},
err: false, err: false,
warn: false, warn: false,
}, },
{ {
name: "Docker version 18.09.0 is not in the list of validated versions",
info: types.Info{Driver: "driver_2", ServerVersion: "18.09.0"}, info: types.Info{Driver: "driver_2", ServerVersion: "18.09.0"},
err: false, err: false,
warn: true, warn: true,
}, },
} { } {
t.Run(test.name, func(t *testing.T) {
warn, err := v.validateDockerInfo(spec, test.info) warn, err := v.validateDockerInfo(spec, test.info)
if !test.err { if !test.err {
assert.Nil(t, err, "Expect error not to occur with docker info %+v", test.info) assert.Nil(t, err, "Expect error not to occur with docker info %+v", test.info)
@ -98,6 +110,6 @@ func TestValidateDockerInfo(t *testing.T) {
} else { } else {
assert.NotNil(t, warn, "Expect error to occur with docker info %+v", test.info) assert.NotNil(t, warn, "Expect error to occur with docker info %+v", test.info)
} }
})
} }
} }

View File

@ -33,33 +33,37 @@ func TestValidateKernelVersion(t *testing.T) {
// not the DefaultSysSpec. The DefaultSysSpec should be tested with node e2e. // not the DefaultSysSpec. The DefaultSysSpec should be tested with node e2e.
testRegex := []string{`3\.[1-9][0-9].*`, `4\..*`} testRegex := []string{`3\.[1-9][0-9].*`, `4\..*`}
for _, test := range []struct { for _, test := range []struct {
name string
version string version string
err bool err bool
}{ }{
// first version regex matches
{ {
name: "3.19.9-99-test first version regex matches",
version: "3.19.9-99-test", version: "3.19.9-99-test",
err: false, err: false,
}, },
// one of version regexes matches
{ {
name: "4.4.14+ one of version regexes matches",
version: "4.4.14+", version: "4.4.14+",
err: false, err: false,
}, },
// no version regex matches
{ {
name: "2.0.0 no version regex matches",
version: "2.0.0", version: "2.0.0",
err: true, err: true,
}, },
{ {
name: "5.0.0 no version regex matches",
version: "5.0.0", version: "5.0.0",
err: true, err: true,
}, },
{ {
name: "3.9.0 no version regex matches",
version: "3.9.0", version: "3.9.0",
err: true, err: true,
}, },
} { } {
t.Run(test.name, func(t *testing.T) {
v.kernelRelease = test.version v.kernelRelease = test.version
err := v.validateKernelVersion(KernelSpec{Versions: testRegex}) err := v.validateKernelVersion(KernelSpec{Versions: testRegex})
if !test.err { if !test.err {
@ -67,6 +71,7 @@ func TestValidateKernelVersion(t *testing.T) {
} else { } else {
assert.NotNil(t, err, "Expect error to occur with kenrel version %q", test.version) assert.NotNil(t, err, "Expect error to occur with kenrel version %q", test.version)
} }
})
} }
} }
@ -82,13 +87,13 @@ func TestValidateCachedKernelConfig(t *testing.T) {
{Name: "FORBIDDEN_2", Aliases: []string{"ALIASE_FORBIDDEN_2"}}, {Name: "FORBIDDEN_2", Aliases: []string{"ALIASE_FORBIDDEN_2"}},
}, },
} }
for c, test := range []struct { for _, test := range []struct {
desc string desc string
config map[string]kConfigOption config map[string]kConfigOption
err bool err bool
}{ }{
{ {
desc: "meet all required configurations should not report error.", desc: "meet all required configurations should not report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"REQUIRED_2": asModule, "REQUIRED_2": asModule,
@ -96,7 +101,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: false, err: false,
}, },
{ {
desc: "one required configuration disabled should report error.", desc: "one required configuration disabled should report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": leftOut, "REQUIRED_1": leftOut,
"REQUIRED_2": builtIn, "REQUIRED_2": builtIn,
@ -104,14 +109,14 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: true, err: true,
}, },
{ {
desc: "one required configuration missing should report error.", desc: "one required configuration missing should report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
}, },
err: true, err: true,
}, },
{ {
desc: "alias of required configuration should not report error.", desc: "alias of required configuration should not report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"ALIASE_REQUIRED_2": asModule, "ALIASE_REQUIRED_2": asModule,
@ -119,7 +124,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: false, err: false,
}, },
{ {
desc: "optional configuration set or not should not report error.", desc: "optional configuration set or not should not report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"REQUIRED_2": asModule, "REQUIRED_2": asModule,
@ -128,7 +133,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: false, err: false,
}, },
{ {
desc: "forbidden configuration disabled should not report error.", desc: "forbidden configuration disabled should not report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"REQUIRED_2": asModule, "REQUIRED_2": asModule,
@ -137,7 +142,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: false, err: false,
}, },
{ {
desc: "forbidden configuration built-in should report error.", desc: "forbidden configuration built-in should report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"REQUIRED_2": asModule, "REQUIRED_2": asModule,
@ -146,7 +151,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: true, err: true,
}, },
{ {
desc: "forbidden configuration built as module should report error.", desc: "forbidden configuration built as module should report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"REQUIRED_2": asModule, "REQUIRED_2": asModule,
@ -155,7 +160,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: true, err: true,
}, },
{ {
desc: "alias of forbidden configuration should report error.", desc: "alias of forbidden configuration should report error",
config: map[string]kConfigOption{ config: map[string]kConfigOption{
"REQUIRED_1": builtIn, "REQUIRED_1": builtIn,
"REQUIRED_2": asModule, "REQUIRED_2": asModule,
@ -164,7 +169,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
err: true, err: true,
}, },
} { } {
t.Logf("TestCase #%d %s", c, test.desc) t.Run(test.desc, func(t *testing.T) {
// Add kernel config prefix. // Add kernel config prefix.
for k, v := range test.config { for k, v := range test.config {
delete(test.config, k) delete(test.config, k)
@ -176,6 +181,7 @@ func TestValidateCachedKernelConfig(t *testing.T) {
} else { } else {
assert.NotNil(t, err, "Expect error to occur with kenrel config %q", test.config) assert.NotNil(t, err, "Expect error to occur with kenrel config %q", test.config)
} }
})
} }
} }

View File

@ -44,11 +44,13 @@ func TestValidateOS(t *testing.T) {
err: true, err: true,
}, },
} { } {
t.Run(test.os, func(t *testing.T) {
err := v.validateOS(test.os, specOS) err := v.validateOS(test.os, specOS)
if !test.err { if !test.err {
assert.Nil(t, err, "Expect error not to occur with os %q", test.os) assert.Nil(t, err, "Expect error not to occur with os %q", test.os)
} else { } else {
assert.NotNil(t, err, "Expect error to occur with os %q", test.os) assert.NotNil(t, err, "Expect error to occur with os %q", test.os)
} }
})
} }
} }

View File

@ -17,6 +17,7 @@ limitations under the License.
package system package system
import ( import (
"fmt"
"reflect" "reflect"
"testing" "testing"
@ -49,10 +50,12 @@ func TestExtractUpstreamVersion(t *testing.T) {
expected: "1.0.6", expected: "1.0.6",
}, },
} { } {
t.Run(fmt.Sprintf("input:%s,expected:%s", test.input, test.expected), func(t *testing.T) {
got := extractUpstreamVersion(test.input) got := extractUpstreamVersion(test.input)
if test.expected != got { if test.expected != got {
t.Errorf("extractUpstreamVersion(%q) = %q, want %q", test.input, got, test.expected) t.Errorf("extractUpstreamVersion(%q) = %q, want %q", test.input, got, test.expected)
} }
})
} }
} }
@ -106,10 +109,12 @@ func TestToSemVer(t *testing.T) {
expected: "8.0.95", expected: "8.0.95",
}, },
} { } {
t.Run(fmt.Sprintf("input:%s,expected:%s", test.input, test.expected), func(t *testing.T) {
got := toSemVer(test.input) got := toSemVer(test.input)
if test.expected != got { if test.expected != got {
t.Errorf("toSemVer(%q) = %q, want %q", test.input, got, test.expected) t.Errorf("toSemVer(%q) = %q, want %q", test.input, got, test.expected)
} }
})
} }
} }
@ -143,10 +148,12 @@ func TestToSemVerRange(t *testing.T) {
expected: ">1.x || >3.1.0 !4.2.x", expected: ">1.x || >3.1.0 !4.2.x",
}, },
} { } {
t.Run(fmt.Sprintf("input:%s,expected:%s", test.input, test.expected), func(t *testing.T) {
got := toSemVerRange(test.input) got := toSemVerRange(test.input)
if test.expected != got { if test.expected != got {
t.Errorf("toSemVerRange(%q) = %q, want %q", test.input, got, test.expected) t.Errorf("toSemVerRange(%q) = %q, want %q", test.input, got, test.expected)
} }
})
} }
} }
@ -209,6 +216,7 @@ func TestValidatePackageVersion(t *testing.T) {
}, },
}, },
} { } {
t.Run(test.desc, func(t *testing.T) {
_, err := v.validate(test.specs, manager) _, err := v.validate(test.specs, manager)
if test.err == nil && err != nil { if test.err == nil && err != nil {
t.Errorf("%s: v.validate(): err = %s", test.desc, err) t.Errorf("%s: v.validate(): err = %s", test.desc, err)
@ -220,21 +228,25 @@ func TestValidatePackageVersion(t *testing.T) {
t.Errorf("%s: v.validate(): err = %q, want = %q", test.desc, err, test.err) t.Errorf("%s: v.validate(): err = %q, want = %q", test.desc, err, test.err)
} }
} }
})
} }
} }
func TestApplyPackageOverride(t *testing.T) { func TestApplyPackageOverride(t *testing.T) {
for _, test := range []struct { for _, test := range []struct {
name string
overrides []PackageSpecOverride overrides []PackageSpecOverride
osDistro string osDistro string
specs []PackageSpec specs []PackageSpec
expected []PackageSpec expected []PackageSpec
}{ }{
{ {
name: "foo>=1.0",
specs: []PackageSpec{{Name: "foo", VersionRange: ">=1.0"}}, specs: []PackageSpec{{Name: "foo", VersionRange: ">=1.0"}},
expected: []PackageSpec{{Name: "foo", VersionRange: ">=1.0"}}, expected: []PackageSpec{{Name: "foo", VersionRange: ">=1.0"}},
}, },
{ {
name: "ubuntu:foo>=1.0/bar>=2.0",
osDistro: "ubuntu", osDistro: "ubuntu",
overrides: []PackageSpecOverride{ overrides: []PackageSpecOverride{
{ {
@ -247,6 +259,7 @@ func TestApplyPackageOverride(t *testing.T) {
expected: []PackageSpec{{Name: "bar", VersionRange: ">=2.0"}}, expected: []PackageSpec{{Name: "bar", VersionRange: ">=2.0"}},
}, },
{ {
name: "ubuntu:foo>=1.0/debian:foo",
osDistro: "ubuntu", osDistro: "ubuntu",
overrides: []PackageSpecOverride{ overrides: []PackageSpecOverride{
{ {
@ -258,9 +271,11 @@ func TestApplyPackageOverride(t *testing.T) {
expected: []PackageSpec{{Name: "foo", VersionRange: ">=1.0"}}, expected: []PackageSpec{{Name: "foo", VersionRange: ">=1.0"}},
}, },
} { } {
t.Run(test.name, func(t *testing.T) {
got := applyPackageSpecOverride(test.specs, test.overrides, test.osDistro) got := applyPackageSpecOverride(test.specs, test.overrides, test.osDistro)
if !reflect.DeepEqual(test.expected, got) { if !reflect.DeepEqual(test.expected, got) {
t.Errorf("applyPackageSpecOverride(%+v, %+v, %s) = %+v, want = %+v", test.specs, test.overrides, test.osDistro, got, test.expected) t.Errorf("applyPackageSpecOverride(%+v, %+v, %s) = %+v, want = %+v", test.specs, test.overrides, test.osDistro, got, test.expected)
} }
})
} }
} }