summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/env.py31
-rw-r--r--tests/test_arcs.py8
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."