diff options
-rw-r--r-- | coverage/env.py | 31 | ||||
-rw-r--r-- | tests/test_arcs.py | 8 |
2 files changed, 19 insertions, 20 deletions
diff --git a/coverage/env.py b/coverage/env.py index b76a206b..3b24c390 100644 --- a/coverage/env.py +++ b/coverage/env.py @@ -39,22 +39,23 @@ class PYBEHAVIOR: else: optimize_if_debug = not pep626 - # Is "if not __debug__" optimized away? - optimize_if_not_debug = (not PYPY) and (PYVERSION >= (3, 7, 0, 'alpha', 4)) + # Is "if not __debug__" optimized away? The exact details have changed + # across versions. + optimize_if_not_debug = 0 if pep626: - optimize_if_not_debug = False - if PYPY: - optimize_if_not_debug = True - - # Is "if not __debug__" optimized away even better? - optimize_if_not_debug2 = (not PYPY) and (PYVERSION >= (3, 8, 0, 'beta', 1)) - if pep626: - optimize_if_not_debug2 = False - if PYPY and (PYVERSION >= (3, 9)): - optimize_if_not_debug2 = True - - # Yet another way to optimize "if not __debug__"? - optimize_if_not_debug3 = (PYPY and (3, 8) <= PYVERSION <= (3, 9)) + optimize_if_not_debug = 1 + elif PYPY: + if PYVERSION >= (3, 9): + optimize_if_not_debug = 2 + elif PYVERSION[:2] == (3, 8): + optimize_if_not_debug = 3 + elif PYVERSION[:2] <= (3, 7): + optimize_if_not_debug = 1 + else: + if PYVERSION >= (3, 8, 0, 'beta', 1): + optimize_if_not_debug = 2 + elif PYVERSION >= (3, 7, 0, 'alpha', 4): + optimize_if_not_debug = 1 # Can co_lnotab have negative deltas? negative_lnotab = not (PYPY and PYPYVERSION < (7, 2)) diff --git a/tests/test_arcs.py b/tests/test_arcs.py index 0141841a..731e8427 100644 --- a/tests/test_arcs.py +++ b/tests/test_arcs.py @@ -1521,13 +1521,11 @@ class OptimizedIfTest(CoverageTest): def test_if_not_debug(self): arcz_missing = "" - if env.PYBEHAVIOR.pep626: - arcz = ".1 12 23 34 42 37 72 28 8." - elif env.PYBEHAVIOR.optimize_if_not_debug3: + if env.PYBEHAVIOR.optimize_if_not_debug == 3: arcz = ".1 12 23 32 37 72 28 8." - elif env.PYBEHAVIOR.optimize_if_not_debug2: + elif env.PYBEHAVIOR.optimize_if_not_debug == 2: arcz = ".1 12 23 35 52 37 72 28 8." - elif env.PYBEHAVIOR.optimize_if_not_debug: + elif env.PYBEHAVIOR.optimize_if_not_debug == 1: arcz = ".1 12 23 34 42 37 72 28 8." else: arcz = ".1 12 23 34 45 42 52 37 72 28 8." |