From eb248c4df2c2850d49b9656f6aa1e3d1d67af61b Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 23 Jul 2015 22:40:30 -0700 Subject: [PATCH] runtime: require gdb version 7.9 for gdb test Issue 11214 reports problems with older versions of gdb. It does work with gdb 7.9 on my Ubuntu Trusty system, so take that as the minimum required version. Fixes #11214. Change-Id: I61b732895506575be7af595f81fc1bcf696f58c2 Reviewed-on: https://go-review.googlesource.com/12626 Reviewed-by: Austin Clements --- src/runtime/runtime-gdb_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/runtime/runtime-gdb_test.go b/src/runtime/runtime-gdb_test.go index a1c96bf134..2843633ee1 100644 --- a/src/runtime/runtime-gdb_test.go +++ b/src/runtime/runtime-gdb_test.go @@ -9,6 +9,7 @@ import ( "path/filepath" "regexp" "runtime" + "strconv" "testing" ) @@ -22,6 +23,23 @@ func checkGdbPython(t *testing.T) { if string(out) != "go gdb python support\n" { t.Skipf("skipping due to lack of python gdb support: %s", out) } + + // Issue 11214 reports various failures with older versions of gdb. + out, err = exec.Command("gdb", "--version").CombinedOutput() + re := regexp.MustCompile(`([0-9]+)\.([0-9]+)`) + matches := re.FindSubmatch(out) + if len(matches) < 3 { + t.Skipf("skipping: can't determine gdb version from\n%s\n", out) + } + major, err1 := strconv.Atoi(string(matches[1])) + minor, err2 := strconv.Atoi(string(matches[2])) + if err1 != nil || err2 != nil { + t.Skipf("skipping: can't determine gdb version: %v, %v", err1, err2) + } + if major < 7 || (major == 7 && minor < 7) { + t.Skipf("skipping: gdb version %d.%d too old", major, minor) + } + t.Logf("gdb version %d.%d", major, minor) } const helloSource = `