28 lines
914 B
Go
28 lines
914 B
Go
package frp
|
||
|
||
import (
|
||
"path/filepath"
|
||
"testing"
|
||
)
|
||
|
||
func TestVersionFromBinaryPath(t *testing.T) {
|
||
frpDir := filepath.Join("data", "frp")
|
||
cases := []struct {
|
||
name string
|
||
path string
|
||
want string
|
||
}{
|
||
{"带 v 前缀的版本目录", filepath.Join(frpDir, "bin", "v0.71.0", "frpc.exe"), "v0.71.0"},
|
||
{"纯数字版本目录", filepath.Join(frpDir, "bin", "0.62.1", "frpc"), "0.62.1"},
|
||
{"不在 bin/<版本>/ 下", filepath.Join(frpDir, "frpc.exe"), ""},
|
||
{"不在 FrpDir 下", filepath.Join("other", "bin", "v1.0.0", "frpc"), ""},
|
||
{"多一层子目录", filepath.Join(frpDir, "bin", "v1.0.0", "extra", "frpc"), ""},
|
||
{"目录名不是版本", filepath.Join(frpDir, "bin", "latest", "frpc"), ""},
|
||
}
|
||
for _, tc := range cases {
|
||
if got := versionFromBinaryPath(frpDir, tc.path); got != tc.want {
|
||
t.Fatalf("%s:versionFromBinaryPath(%q) = %q,期望 %q", tc.name, tc.path, got, tc.want)
|
||
}
|
||
}
|
||
}
|