// SPDX-License-Identifier: AGPL-3.0-only package version import "testing" func TestSelectVersion(t *testing.T) { t.Parallel() tests := []struct { name, linker, module, want string }{ {"local build", developmentVersion, "(devel)", developmentVersion}, {"missing build info", developmentVersion, "", developmentVersion}, {"preview one install", developmentVersion, "v0.1.0-preview.1", "v0.1.0-preview.1"}, {"preview two install", developmentVersion, "v0.1.0-preview.2", "v0.1.0-preview.2"}, {"release install", developmentVersion, "v1.0.0", "v1.0.0"}, {"linker override", "v0.1.0-preview.2", "(devel)", "v0.1.0-preview.2"}, {"pseudo version", developmentVersion, "v0.0.0-20260814120000-0123456789ab", developmentVersion}, {"pseudo after release", developmentVersion, "v0.1.1-0.20260814120000-0123456789ab", developmentVersion}, {"build metadata", developmentVersion, "v0.1.0+dirty", developmentVersion}, {"leading zero release", developmentVersion, "v00.1.0", developmentVersion}, {"leading zero prerelease", developmentVersion, "v0.1.0-preview.02", developmentVersion}, } for _, test := range tests { test := test t.Run(test.name, func(t *testing.T) { t.Parallel() if got := selectVersion(test.linker, test.module); got != test.want { t.Fatalf("selectVersion(%q, %q)=%q want %q", test.linker, test.module, got, test.want) } }) } }