mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-06 22:57:02 +02:00
115 lines
3.2 KiB
Go
115 lines
3.2 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package version
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func replaceVersion(v, vp, vm string) func() {
|
|
origV := Version
|
|
origVP := VersionPrerelease
|
|
origVM := VersionMetadata
|
|
|
|
Version = v
|
|
VersionPrerelease = vp
|
|
VersionMetadata = vm
|
|
|
|
return func() {
|
|
Version = origV
|
|
VersionPrerelease = origVP
|
|
VersionMetadata = origVM
|
|
}
|
|
}
|
|
|
|
func TestGetVersion(t *testing.T) {
|
|
// This test cannot be parallelized because it messes with some global
|
|
// variables that determine the version information.
|
|
restoreVersionFunc := replaceVersion("1.2.3", "", "")
|
|
defer restoreVersionFunc()
|
|
|
|
// Test the general case
|
|
vi := GetVersion()
|
|
assert.Equal(t, "1.2.3", vi.Version)
|
|
assert.Equal(t, "", vi.VersionPrerelease)
|
|
assert.Equal(t, "", vi.VersionMetadata)
|
|
assert.Equal(t, "", vi.Revision)
|
|
assert.Equal(t, "", vi.BuildDate)
|
|
|
|
// Test the git describe case
|
|
origGitDescribe := GitDescribe
|
|
GitDescribe = "git-describe"
|
|
vi = GetVersion()
|
|
assert.Equal(t, "git-describe", vi.Version)
|
|
|
|
GitDescribe = origGitDescribe
|
|
}
|
|
|
|
func TestVersionNumber(t *testing.T) {
|
|
// This test cannot be parallelized because it messes with some global
|
|
// variables that determine the version information.
|
|
restoreVersionFunc := replaceVersion("unknown", "unknown", "")
|
|
defer restoreVersionFunc()
|
|
|
|
// Test the unknown version case
|
|
vi := GetVersion()
|
|
assert.Equal(t, "(version unknown)", vi.VersionNumber())
|
|
|
|
replaceVersion("1.2.3", "", "")
|
|
|
|
// Test the pre-release case
|
|
vi = GetVersion()
|
|
vi.VersionPrerelease = "rc1"
|
|
assert.Equal(t, "1.2.3-rc1", vi.VersionNumber())
|
|
|
|
// Test the pre-release and metadata version case
|
|
vi.VersionMetadata = "ent"
|
|
assert.Equal(t, "1.2.3-rc1+ent", vi.VersionNumber())
|
|
|
|
// Test the metadata only version case
|
|
vi.VersionPrerelease = ""
|
|
assert.Equal(t, "1.2.3+ent", vi.VersionNumber())
|
|
}
|
|
|
|
func TestFullVersionNumber(t *testing.T) {
|
|
// This test cannot be parallelized because it messes with some global
|
|
// variables that determine the version information.
|
|
restoreVersionFunc := replaceVersion("unknown", "unknown", "")
|
|
defer restoreVersionFunc()
|
|
|
|
// Test the unknown version case
|
|
vi := GetVersion()
|
|
assert.Equal(t, "Vault (version unknown)", vi.FullVersionNumber(false))
|
|
|
|
// Test the no pre-release, metadata, revision, build date case
|
|
replaceVersion("1.2.3", "", "")
|
|
vi = GetVersion()
|
|
assert.Equal(t, "Vault v1.2.3", vi.FullVersionNumber(false))
|
|
|
|
// Test the pre-release case
|
|
vi.VersionPrerelease = "rc1"
|
|
assert.Equal(t, "Vault v1.2.3-rc1", vi.FullVersionNumber(false))
|
|
|
|
// Test the metadata case
|
|
vi.VersionPrerelease = ""
|
|
vi.VersionMetadata = "ent"
|
|
assert.Equal(t, "Vault v1.2.3+ent", vi.FullVersionNumber(false))
|
|
|
|
// Test the revision case
|
|
vi.VersionMetadata = ""
|
|
vi.Revision = "ab1234f"
|
|
assert.Equal(t, "Vault v1.2.3 (ab1234f)", vi.FullVersionNumber(true))
|
|
|
|
// Test the build date case
|
|
vi.BuildDate = "2023-10-20"
|
|
assert.Equal(t, "Vault v1.2.3, built 2023-10-20", vi.FullVersionNumber(false))
|
|
|
|
// Test the case where all of the things are set
|
|
vi.VersionPrerelease = "rc1"
|
|
vi.VersionMetadata = "ent"
|
|
assert.Equal(t, "Vault v1.2.3-rc1+ent (ab1234f), built 2023-10-20", vi.FullVersionNumber(true))
|
|
}
|