github.com/cilium/cilium@v1.16.2/pkg/hubble/build/version_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package build 5 6 import ( 7 "testing" 8 9 "github.com/blang/semver/v4" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestVersion(t *testing.T) { 14 tests := []struct { 15 component, core, revision string 16 want string 17 }{ 18 { 19 component: "hubble-relay", 20 core: "1.9.0", 21 revision: "63aa1b8", 22 want: "hubble-relay v1.9.0+g63aa1b8", 23 }, { 24 component: "hubble-relay", 25 core: "1.9.0-rc3", 26 revision: "9907232", 27 want: "hubble-relay v1.9.0-rc3+g9907232", 28 }, { 29 component: "hubble-relay", 30 core: "1.9.0", 31 revision: "", 32 want: "hubble-relay v1.9.0", 33 }, { 34 component: "hubble-relay", 35 core: "", 36 revision: "", 37 want: "hubble-relay", 38 }, 39 } 40 41 for _, tt := range tests { 42 t.Run(tt.want, func(t *testing.T) { 43 v := &Version{ 44 component: tt.component, 45 Core: tt.core, 46 Revision: tt.revision, 47 } 48 assert.Equal(t, tt.want, v.String()) 49 if canonical := v.SemVer(); canonical != "" { 50 _, err := semver.Parse(canonical) 51 assert.NoError(t, err) 52 } 53 }) 54 } 55 }