mirror of
https://gitee.com/IrisVega/frp.git
synced 2024-11-01 22:31:29 +08:00
[utils/version] add version.go
This commit is contained in:
parent
3cbe432889
commit
838dc10c6e
44
src/frp/utils/version/version.go
Normal file
44
src/frp/utils/version/version.go
Normal file
@ -0,0 +1,44 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var version string = "0.2.0"
|
||||
|
||||
func Full() string {
|
||||
return version
|
||||
}
|
||||
|
||||
func Proto(v string) int64 {
|
||||
arr := strings.Split(v, ".")
|
||||
if len(arr) < 2 {
|
||||
return 0
|
||||
}
|
||||
res, _ := strconv.ParseInt(arr[0], 10, 64)
|
||||
return res
|
||||
}
|
||||
|
||||
func Major(v string) int64 {
|
||||
arr := strings.Split(v, ".")
|
||||
if len(arr) < 2 {
|
||||
return 0
|
||||
}
|
||||
res, _ := strconv.ParseInt(arr[1], 10, 64)
|
||||
return res
|
||||
}
|
||||
|
||||
func Minor(v string) int64 {
|
||||
arr := strings.Split(v, ".")
|
||||
if len(arr) < 2 {
|
||||
return 0
|
||||
}
|
||||
res, _ := strconv.ParseInt(arr[2], 10, 64)
|
||||
return res
|
||||
}
|
||||
|
||||
// add every case there if server will not accept client's protocol and return false
|
||||
func Compat(client string, server string) bool {
|
||||
return true
|
||||
}
|
42
src/frp/utils/version/version_test.go
Normal file
42
src/frp/utils/version/version_test.go
Normal file
@ -0,0 +1,42 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFull(t *testing.T) {
|
||||
version := Full()
|
||||
arr := strings.Split(version, ".")
|
||||
if len(arr) != 3 {
|
||||
t.Errorf("Version string error: %s", version)
|
||||
}
|
||||
|
||||
proto, err := strconv.ParseInt(arr[0], 10, 64)
|
||||
if err != nil || proto < 0 {
|
||||
t.Errorf("Version proto error")
|
||||
}
|
||||
|
||||
major, err := strconv.ParseInt(arr[1], 10, 64)
|
||||
if err != nil || major < 0 {
|
||||
t.Errorf("Version major error")
|
||||
}
|
||||
|
||||
minor, err := strconv.ParseInt(arr[2], 10, 64)
|
||||
if err != nil || minor < 0 {
|
||||
t.Errorf("Version minor error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersion(t *testing.T) {
|
||||
proto := Proto(Full())
|
||||
major := Major(Full())
|
||||
minor := Minor(Full())
|
||||
parseVerion := fmt.Sprintf("%d.%d.%d", proto, major, minor)
|
||||
version := Full()
|
||||
if parseVerion != version {
|
||||
t.Errorf("Get version incorrect, version [%s], parseVerion [%s]", version, parseVerion)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user