Some checks are pending
Security Checks / security (push) Waiting to run
统一 frontend、backend、test、test-log 和 out 目录,更新构建、部署及测试入口;纳入配置管理兼容与首次安全引导修复;排除本机配置、密钥和测试产物。
44 lines
1.4 KiB
Go
44 lines
1.4 KiB
Go
package buildinfo
|
|
|
|
import "testing"
|
|
|
|
func TestCurrentUsesSafeDefaults(t *testing.T) {
|
|
oldVersion, oldHash := Version, GitHash
|
|
t.Cleanup(func() {
|
|
Version, GitHash = oldVersion, oldHash
|
|
})
|
|
Version = ""
|
|
GitHash = ""
|
|
|
|
info := Current()
|
|
if info.Version != "dev" || info.GitHash != "unknown" {
|
|
t.Fatalf("unexpected defaults: %+v", info)
|
|
}
|
|
}
|
|
|
|
func TestValidatePairRequiresMatchingBuildMetadata(t *testing.T) {
|
|
base := Info{Version: "v1.2.3", GitHash: "abc", ProtocolVersion: ProtocolVersion}
|
|
cases := []struct {
|
|
name string
|
|
main Info
|
|
admin Info
|
|
want error
|
|
}{
|
|
{name: "matching", main: base, admin: base},
|
|
{name: "version mismatch", main: base, admin: Info{Version: "v1.2.4", GitHash: "abc", ProtocolVersion: ProtocolVersion}, want: ErrVersionMismatch},
|
|
{name: "protocol mismatch", main: base, admin: Info{Version: "v1.2.3", GitHash: "abc", ProtocolVersion: ProtocolVersion + 1}, want: ErrProtocolMismatch},
|
|
{name: "build mismatch", main: base, admin: Info{Version: "v1.2.3", GitHash: "def", ProtocolVersion: ProtocolVersion}, want: ErrBuildMismatch},
|
|
}
|
|
for _, test := range cases {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
err := ValidatePair(test.main, test.admin)
|
|
if test.want == nil && err != nil {
|
|
t.Fatalf("ValidatePair() error = %v", err)
|
|
}
|
|
if test.want != nil && err != test.want {
|
|
t.Fatalf("ValidatePair() error = %v, want %v", err, test.want)
|
|
}
|
|
})
|
|
}
|
|
}
|