MCPcopy Index your code
hub / github.com/containerd/containerd / TestParseRelease

Function TestParseRelease

pkg/kernelversion/kernel_linux_test.go:43–95  ·  view source on GitHub ↗

TestParseRelease tests the ParseRelease() function

(t *testing.T)

Source from the content-addressed store, hash-verified

41
42// TestParseRelease tests the ParseRelease() function
43func TestParseRelease(t *testing.T) {
44 tests := []struct {
45 in string
46 out KernelVersion
47 expectedErr error
48 }{
49 {in: "3.8", out: KernelVersion{Kernel: 3, Major: 8}},
50 {in: "3.8.0", out: KernelVersion{Kernel: 3, Major: 8}},
51 {in: "3.8.0-19-generic", out: KernelVersion{Kernel: 3, Major: 8}},
52 {in: "3.4.54.longterm-1", out: KernelVersion{Kernel: 3, Major: 4}},
53 {in: "3.10.0-862.2.3.el7.x86_64", out: KernelVersion{Kernel: 3, Major: 10}},
54 {in: "3.12.8tag", out: KernelVersion{Kernel: 3, Major: 12}},
55 {in: "3.12-1-amd64", out: KernelVersion{Kernel: 3, Major: 12}},
56 {in: "3.12foobar", out: KernelVersion{Kernel: 3, Major: 12}},
57 {in: "99.999.999-19-generic", out: KernelVersion{Kernel: 99, Major: 999}},
58 {in: "", expectedErr: fmt.Errorf(`failed to parse kernel version "": EOF`)},
59 {in: "3", expectedErr: fmt.Errorf(`failed to parse kernel version "3": unexpected EOF`)},
60 {in: "3.", expectedErr: fmt.Errorf(`failed to parse kernel version "3.": EOF`)},
61 {in: "3a", expectedErr: fmt.Errorf(`failed to parse kernel version "3a": input does not match format`)},
62 {in: "3.a", expectedErr: fmt.Errorf(`failed to parse kernel version "3.a": expected integer`)},
63 {in: "a", expectedErr: fmt.Errorf(`failed to parse kernel version "a": expected integer`)},
64 {in: "a.a", expectedErr: fmt.Errorf(`failed to parse kernel version "a.a": expected integer`)},
65 {in: "a.a.a-a", expectedErr: fmt.Errorf(`failed to parse kernel version "a.a.a-a": expected integer`)},
66 {in: "-3", expectedErr: fmt.Errorf(`failed to parse kernel version "-3": expected integer`)},
67 {in: "-3.", expectedErr: fmt.Errorf(`failed to parse kernel version "-3.": expected integer`)},
68 {in: "-3.8", expectedErr: fmt.Errorf(`failed to parse kernel version "-3.8": expected integer`)},
69 {in: "-3.-8", expectedErr: fmt.Errorf(`failed to parse kernel version "-3.-8": expected integer`)},
70 {in: "3.-8", expectedErr: fmt.Errorf(`failed to parse kernel version "3.-8": expected integer`)},
71 }
72 for _, tc := range tests {
73 t.Run(tc.in, func(t *testing.T) {
74 version, err := parseRelease(tc.in)
75 if tc.expectedErr != nil {
76 if err == nil {
77 t.Fatal("expected an error")
78 }
79 if err.Error() != tc.expectedErr.Error() {
80 t.Fatalf("expected: %s, got: %s", tc.expectedErr, err)
81 }
82 return
83 }
84 if err != nil {
85 t.Fatal("unexpected error:", err)
86 }
87 if version == nil {
88 t.Fatal("version is nil")
89 }
90 if version.Kernel != tc.out.Kernel || version.Major != tc.out.Major {
91 t.Fatalf("expected: %d.%d, got: %d.%d", tc.out.Kernel, tc.out.Major, version.Kernel, version.Major)
92 }
93 })
94 }
95}
96
97func TestGreaterEqualThan(t *testing.T) {
98 // Get the current kernel version, so that we can make test relative to that

Callers

nothing calls this directly

Calls 4

parseReleaseFunction · 0.85
FatalMethod · 0.80
RunMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…