Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'htesting')
-rw-r--r--htesting/test_helpers.go27
-rw-r--r--htesting/test_helpers_test.go31
2 files changed, 58 insertions, 0 deletions
diff --git a/htesting/test_helpers.go b/htesting/test_helpers.go
index 813c9bd04..9a1fe86ef 100644
--- a/htesting/test_helpers.go
+++ b/htesting/test_helpers.go
@@ -16,7 +16,9 @@ package htesting
import (
"math/rand"
"os"
+ "regexp"
"runtime"
+ "strconv"
"strings"
"time"
@@ -103,3 +105,28 @@ func IsGitHubAction() bool {
func SupportsAll() bool {
return IsGitHubAction()
}
+
+// GoMinorVersion returns the minor version of the current Go version,
+// e.g. 16 for Go 1.16.
+func GoMinorVersion() int {
+ return extractMinorVersionFromGoTag(runtime.Version())
+}
+
+var goMinorVersionRe = regexp.MustCompile(`go1.(\d*)`)
+
+func extractMinorVersionFromGoTag(tag string) int {
+ // The tag may be on the form go1.17, go1.17.5 go1.17rc2 -- or just a commit hash.
+ match := goMinorVersionRe.FindStringSubmatch(tag)
+
+ if len(match) == 2 {
+ i, err := strconv.Atoi(match[1])
+ if err != nil {
+ return -1
+ }
+ return i
+ }
+
+ // a commit hash, not useful.
+ return -1
+
+}
diff --git a/htesting/test_helpers_test.go b/htesting/test_helpers_test.go
new file mode 100644
index 000000000..3e767ac9d
--- /dev/null
+++ b/htesting/test_helpers_test.go
@@ -0,0 +1,31 @@
+// Copyright 2021 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package htesting
+
+import (
+ "testing"
+
+ qt "github.com/frankban/quicktest"
+)
+
+func TestExtractMinorVersionFromGoTag(t *testing.T) {
+
+ c := qt.New(t)
+
+ c.Assert(extractMinorVersionFromGoTag("go1.17"), qt.Equals, 17)
+ c.Assert(extractMinorVersionFromGoTag("go1.16.7"), qt.Equals, 16)
+ c.Assert(extractMinorVersionFromGoTag("go1.17beta1"), qt.Equals, 17)
+ c.Assert(extractMinorVersionFromGoTag("asdfadf"), qt.Equals, -1)
+
+}