Skip to content

Commit 8b0e039

Browse files
authored
fix: only use "sysmon" core when available (Python 3.12+) (#1747)
* Only use sysmon core when available (Python 3.12+) * Update test case for both with and without SysMonitor
1 parent 575a44c commit 8b0e039

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

coverage/collector.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,10 @@ def __init__(
150150
core = "pytrace"
151151
else:
152152
core = os.getenv("COVERAGE_CORE")
153+
154+
if core == "sysmon" and not env.PYBEHAVIOR.pep669:
155+
core = None
156+
153157
if not core:
154158
# Once we're comfortable with sysmon as a default:
155159
# if env.PYBEHAVIOR.pep669 and self.should_start_context is None:

tests/test_process.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,15 +1122,17 @@ def test_core_request_pytrace(self) -> None:
11221122
core = re_line(r" core:", out).strip()
11231123
assert core == "core: PyTracer"
11241124

1125-
@pytest.mark.skipif(not env.PYBEHAVIOR.pep669, reason="No sys.monitoring to request")
11261125
def test_core_request_sysmon(self) -> None:
11271126
self.del_environ("COVERAGE_TEST_CORES")
11281127
self.set_environ("COVERAGE_CORE", "sysmon")
11291128
self.make_file("numbers.py", "print(123, 456)")
11301129
out = self.run_command("coverage run --debug=sys numbers.py")
11311130
assert out.endswith("123 456\n")
11321131
core = re_line(r" core:", out).strip()
1133-
assert core == "core: SysMonitor"
1132+
if env.PYBEHAVIOR.pep669:
1133+
assert core == "core: SysMonitor"
1134+
else:
1135+
assert core in ("core: CTracer", "core: PyTracer")
11341136

11351137

11361138
class FailUnderNoFilesTest(CoverageTest):

0 commit comments

Comments
 (0)