mirror of
https://github.com/fatedier/frp.git
synced 2025-01-08 06:59:18 +01: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