Fix NPE and GetReleaseVersion now includes metadata. (#2657)

pull/2660/head
Todd 3 years ago committed by GitHub
parent 2e7cf260af
commit 7c2d0692f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -49,8 +49,12 @@ func metadataStringToMetadata(m string) Metadata {
return OSS
}
// Check returns a bool indicating if a version meets the metadata constraint for a feature
// Check returns a bool indicating if a version meets the metadata constraint
// for a feature. Check returns false if version is nil.
func (m MetadataConstraint) Check(version *gvers.Version) bool {
if version == nil {
return false
}
binaryMeta := metadataStringToMetadata(version.Metadata())
for _, v := range m.MetaInfo {
@ -83,5 +87,5 @@ func SupportsFeature(version *gvers.Version, feature Feature) bool {
// GetReleaseVersion returns a go-version of this binary's Boundary version
func GetReleaseVersion() (*gvers.Version, error) {
ver := Get()
return gvers.NewVersion(ver.Version)
return gvers.NewVersion(ver.VersionNumber())
}

@ -91,7 +91,7 @@ func TestHasFeature(t *testing.T) {
require.False(t, ok)
}
func TestEnableFeatureForTest(t *testing.T) {
func TestEnableFeatureOnVersionForTest(t *testing.T) {
FutureFeature := Feature(997)
futureVersionFeature, _ := gvers.NewConstraint(">= 99.99.99+hcp")
@ -134,3 +134,33 @@ func TestEnableFeatureForTest(t *testing.T) {
_, ok := featureMap[FutureFeature]
require.False(t, ok)
}
func TestEnableFeatureForTest(t *testing.T) {
FutureFeature := Feature(997)
futureVersionFeature, _ := gvers.NewConstraint(">= 99.99.99+hcp")
featureMap[FutureFeature] = MetadataConstraint{
MetaInfo: []Metadata{HCP},
Constraints: futureVersionFeature,
}
// modify the globals that set which version the current binary is
prevVer := Version
prevMd := VersionMetadata
defer func() {
Version = prevVer
VersionMetadata = prevMd
}()
Version = "0.11.0"
VersionMetadata = "hcp"
EnableFeatureForTest(t, FutureFeature)
semVer, err := gvers.NewVersion("0.11.0+hcp")
require.NoError(t, err)
assert.True(t, SupportsFeature(semVer, FutureFeature))
delete(featureMap, FutureFeature)
_, ok := featureMap[FutureFeature]
require.False(t, ok)
}

Loading…
Cancel
Save