Skip to content

Commit 9c5642f

Browse files
committed
fix issue in border value checks for gstr.CompareVersion/CompareVersionGo
1 parent 00f0a74 commit 9c5642f

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

text/gstr/gstr_version.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ import (
2424
// 10.2.0
2525
// etc.
2626
func CompareVersion(a, b string) int {
27-
if a[0] == 'v' {
27+
if a != "" && a[0] == 'v' {
2828
a = a[1:]
2929
}
30-
if b[0] == 'v' {
30+
if b != "" && b[0] == 'v' {
3131
b = b[1:]
3232
}
3333
var (
@@ -71,10 +71,10 @@ func CompareVersion(a, b string) int {
7171
// v4.20.0+incompatible
7272
// etc.
7373
func CompareVersionGo(a, b string) int {
74-
if a[0] == 'v' {
74+
if a != "" && a[0] == 'v' {
7575
a = a[1:]
7676
}
77-
if b[0] == 'v' {
77+
if b != "" && b[0] == 'v' {
7878
b = b[1:]
7979
}
8080
if Count(a, "-") > 1 {

text/gstr/gstr_z_unit_version_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import (
1717

1818
func Test_CompareVersion(t *testing.T) {
1919
gtest.C(t, func(t *gtest.T) {
20+
t.AssertEQ(gstr.CompareVersion("1", ""), 1)
21+
t.AssertEQ(gstr.CompareVersion("", ""), 0)
22+
t.AssertEQ(gstr.CompareVersion("", "v0.1"), -1)
2023
t.AssertEQ(gstr.CompareVersion("1", "v0.99"), 1)
2124
t.AssertEQ(gstr.CompareVersion("v1.0", "v0.99"), 1)
2225
t.AssertEQ(gstr.CompareVersion("v1.0.1", "v1.1.0"), -1)
@@ -28,6 +31,9 @@ func Test_CompareVersion(t *testing.T) {
2831

2932
func Test_CompareVersionGo(t *testing.T) {
3033
gtest.C(t, func(t *gtest.T) {
34+
t.AssertEQ(gstr.CompareVersionGo("1", ""), 1)
35+
t.AssertEQ(gstr.CompareVersionGo("", ""), 0)
36+
t.AssertEQ(gstr.CompareVersionGo("", "v0.1"), -1)
3137
t.AssertEQ(gstr.CompareVersionGo("v1.0.1", "v1.1.0"), -1)
3238
t.AssertEQ(gstr.CompareVersionGo("1.0.1", "v1.1.0"), -1)
3339
t.AssertEQ(gstr.CompareVersionGo("1.0.0", "v0.1.0"), 1)

0 commit comments

Comments
 (0)