From 65c66ab2559256b5b3a1e2dd8ef9679121e3de64 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Fri, 29 Oct 2010 21:31:35 +0000 Subject: [PATCH] make gdb skip expected --- Lib/test/regrtest.py | 3 +++ Lib/test/support.py | 13 +++++++++++++ Lib/test/test_gdb.py | 14 +++----------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 300cf3932e..c487d29ccd 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -1449,6 +1449,9 @@ class _ExpectedSkips: if sys.platform != 'sunos5': self.expected.add('test_nis') + if support.python_is_optimized(): + self.expected.add("test_gdb") + self.valid = True def isvalid(self): diff --git a/Lib/test/support.py b/Lib/test/support.py index 31528a9492..132bc562f6 100644 --- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -20,6 +20,9 @@ import re import subprocess import imp import time +import sysconfig + + try: import _thread except ImportError: @@ -885,6 +888,16 @@ def gc_collect(): gc.collect() +def python_is_optimized(): + """Find if Python was built with optimizations.""" + cflags = sysconfig.get_config_vars()['PY_CFLAGS'] + final_opt = "" + for opt in cflags.split(): + if opt.startswith('-O'): + final_opt = opt + return final_opt and final_opt != '-O0' + + #======================================================================= # Decorator for running a function in a different locale, correctly resetting # it afterwards. diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index bac8d36c18..55597cead6 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -9,9 +9,8 @@ import subprocess import sys import unittest import locale -import sysconfig -from test.support import run_unittest, findfile +from test.support import run_unittest, findfile, python_is_optimized try: gdb_version, _ = subprocess.Popen(["gdb", "--version"], @@ -665,15 +664,8 @@ class PyLocalsTests(DebuggerTests): r".*\na = 1\nb = 2\nc = 3\n.*") def test_main(): - cflags = sysconfig.get_config_vars()['PY_CFLAGS'] - final_opt = "" - for opt in cflags.split(): - if opt.startswith('-O'): - final_opt = opt - if final_opt and final_opt != '-O0': - raise unittest.SkipTest("Python was built with compiler optimizations, " - "tests can't reliably succeed") - + if python_is_optimized(): + raise unittest.SkipTest("Python was compiled with optimizations") run_unittest(PrettyPrintTests, PyListTests, StackNavigationTests, -- 2.40.0