2024-11-19 09:07:32 -08:00
|
|
|
// Copyright (c) Tailscale Inc & AUTHORS
|
|
|
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
|
|
|
|
|
|
package version
|
|
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
|
|
|
|
func TestIsValidLongWithTwoRepos(t *testing.T) {
|
|
|
|
|
tests := []struct {
|
|
|
|
|
long string
|
|
|
|
|
want bool
|
|
|
|
|
}{
|
|
|
|
|
{"1.2.3-t01234abcde-g01234abcde", true},
|
|
|
|
|
{"1.2.259-t01234abcde-g01234abcde", true}, // big patch version
|
|
|
|
|
{"1.2.3-t01234abcde", false}, // missing repo
|
|
|
|
|
{"1.2.3-g01234abcde", false}, // missing repo
|
|
|
|
|
{"-t01234abcde-g01234abcde", false},
|
|
|
|
|
{"1.2.3", false},
|
|
|
|
|
{"1.2.3-t01234abcde-g", false},
|
|
|
|
|
{"1.2.3-t01234abcde-gERRBUILDINFO", false},
|
|
|
|
|
}
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
|
if got := isValidLongWithTwoRepos(tt.long); got != tt.want {
|
|
|
|
|
t.Errorf("IsValidLongWithTwoRepos(%q) = %v; want %v", tt.long, got, tt.want)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-09-29 11:44:23 -06:00
|
|
|
|
|
|
|
|
func TestPrepExeNameForCmp(t *testing.T) {
|
|
|
|
|
cases := []struct {
|
|
|
|
|
exe string
|
|
|
|
|
want string
|
|
|
|
|
}{
|
|
|
|
|
{
|
|
|
|
|
"tailscale-ipn.exe",
|
|
|
|
|
"tailscale-ipn",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"tailscale-gui-amd64.exe",
|
|
|
|
|
"tailscale-gui",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"tailscale-gui-amd64",
|
|
|
|
|
"tailscale-gui",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"tailscale-ipn",
|
|
|
|
|
"tailscale-ipn",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"TaIlScAlE-iPn.ExE",
|
|
|
|
|
"tailscale-ipn",
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, c := range cases {
|
|
|
|
|
got := prepExeNameForCmp(c.exe, "amd64")
|
|
|
|
|
if got != c.want {
|
|
|
|
|
t.Errorf("prepExeNameForCmp(%q) = %q; want %q", c.exe, got, c.want)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|