Commit d2170040 authored by Alberto Donizetti's avatar Alberto Donizetti

runtime: skip TestLldbPython when lldb is too old

The TestLldbPython test is known to fail with very old lldb releases
(3.8 and older). Skip the test when the lldb found on the system is
too old.

Fixes #22299

Change-Id: I8f78d6c0d995118f806dae87f3f04a9726473116
Reviewed-on: https://go-review.googlesource.com/c/139397Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 6d735371
......@@ -10,7 +10,9 @@ import (
"os"
"os/exec"
"path/filepath"
"regexp"
"runtime"
"strconv"
"strings"
"testing"
)
......@@ -25,6 +27,27 @@ func checkLldbPython(t *testing.T) {
}
lldbPath = strings.TrimSpace(string(out))
// Check lldb version. The test is known to fail with 3.8 or older
// (see Issue #22299).
cmd = exec.Command("lldb", "--version")
out, err = cmd.CombinedOutput()
// lldb --version should print "lldb version a.b.c"
re := regexp.MustCompile(` ([[:digit:]]+)\.([[:digit:]]+)`)
lldbVersion := re.FindStringSubmatch(string(out))
if len(lldbVersion) != 3 {
t.Errorf("bad lldb --version output: %s", out)
}
major, err1 := strconv.Atoi(lldbVersion[1])
minor, err2 := strconv.Atoi(lldbVersion[2])
if err1 != nil || err2 != nil {
t.Errorf("bad lldb --version output: %s", out)
}
if (major < 3) || (major == 3 && minor < 9) {
t.Skipf("skipping because lldb version %v.%v is too old (need >= 3.9)", major, minor)
}
cmd = exec.Command("/usr/bin/python2.7", "-c", "import sys;sys.path.append(sys.argv[1]);import lldb; print('go lldb python support')", lldbPath)
out, err = cmd.CombinedOutput()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment