Skip to content

Commit 08f8596

Browse files
authored
Merge pull request #893 from squeed/handle-empty-version
libcni: handle empty version when parsing version
2 parents f32e3df + 1054f8e commit 08f8596

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

Diff for: libcni/backwards_compatibility_test.go

+3
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ var _ = Describe("Backwards compatibility", func() {
6666

6767
Expect(result).To(Equal(legacy_examples.ExpectedResult))
6868

69+
err = cniConfig.DelNetwork(context.TODO(), netConf, runtimeConf)
70+
Expect(err).NotTo(HaveOccurred())
71+
6972
Expect(os.RemoveAll(pluginPath)).To(Succeed())
7073
})
7174

Diff for: pkg/version/plugin.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ func (*PluginDecoder) Decode(jsonBytes []byte) (PluginInfo, error) {
8686
// minor, and micro numbers or returns an error
8787
func ParseVersion(version string) (int, int, int, error) {
8888
var major, minor, micro int
89-
if version == "" {
90-
return -1, -1, -1, fmt.Errorf("invalid version %q: the version is empty", version)
89+
if version == "" { // special case: no version declared == v0.1.0
90+
return 0, 1, 0, nil
9191
}
9292

9393
parts := strings.Split(version, ".")

Diff for: pkg/version/plugin_test.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,16 @@ var _ = Describe("Decoding versions reported by a plugin", func() {
9191
Expect(micro).To(Equal(3))
9292
})
9393

94+
It("parses an empty string as v0.1.0", func() {
95+
major, minor, micro, err := version.ParseVersion("")
96+
Expect(err).NotTo(HaveOccurred())
97+
Expect(major).To(Equal(0))
98+
Expect(minor).To(Equal(1))
99+
Expect(micro).To(Equal(0))
100+
})
101+
94102
It("returns an error for malformed versions", func() {
95-
badVersions := []string{"asdfasdf", "asdf.", ".asdfas", "asdf.adsf.", "0.", "..", "1.2.3.4.5", ""}
103+
badVersions := []string{"asdfasdf", "asdf.", ".asdfas", "asdf.adsf.", "0.", "..", "1.2.3.4.5"}
96104
for _, v := range badVersions {
97105
_, _, _, err := version.ParseVersion(v)
98106
Expect(err).To(HaveOccurred())

0 commit comments

Comments
 (0)