Skip to content

Commit

Permalink
runtime: skip TestLldbPython when lldb is too old
Browse files Browse the repository at this point in the history
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 golang#22299

Change-Id: I8f78d6c0d995118f806dae87f3f04a9726473116
Reviewed-on: https://go-review.googlesource.com/c/139397
Reviewed-by: Ian Lance Taylor <[email protected]>
  • Loading branch information
ALTree committed Oct 4, 2018
1 parent 6d73537 commit d217004
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/runtime/runtime-lldb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ import (
"os"
"os/exec"
"path/filepath"
"regexp"
"runtime"
"strconv"
"strings"
"testing"
)
Expand All @@ -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()

Expand Down

0 comments on commit d217004

Please sign in to comment.