Removed the Requirement to Install Python and NodeJS (Now Bundled with Borealis)
This commit is contained in:
48
Dependencies/Python/Lib/test/cov.py
vendored
Normal file
48
Dependencies/Python/Lib/test/cov.py
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
"""A minimal hook for gathering line coverage of the standard library.
|
||||
|
||||
Designed to be used with -Xpresite= which means:
|
||||
* it installs itself on import
|
||||
* it's not imported as `__main__` so can't use the ifmain idiom
|
||||
* it can't import anything besides `sys` to avoid tainting gathered coverage
|
||||
* filenames are not normalized
|
||||
|
||||
To get gathered coverage back, look for 'test.cov' in `sys.modules`
|
||||
instead of importing directly. That way you can determine if the module
|
||||
was already in use.
|
||||
|
||||
If you need to disable the hook, call the `disable()` function.
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
mon = sys.monitoring
|
||||
|
||||
FileName = str
|
||||
LineNo = int
|
||||
Location = tuple[FileName, LineNo]
|
||||
|
||||
coverage: set[Location] = set()
|
||||
|
||||
|
||||
# `types` and `typing` aren't imported to avoid invalid coverage
|
||||
def add_line(
|
||||
code: "types.CodeType",
|
||||
lineno: int,
|
||||
) -> "typing.Literal[sys.monitoring.DISABLE]":
|
||||
coverage.add((code.co_filename, lineno))
|
||||
return mon.DISABLE
|
||||
|
||||
|
||||
def enable():
|
||||
mon.use_tool_id(mon.COVERAGE_ID, "regrtest coverage")
|
||||
mon.register_callback(mon.COVERAGE_ID, mon.events.LINE, add_line)
|
||||
mon.set_events(mon.COVERAGE_ID, mon.events.LINE)
|
||||
|
||||
|
||||
def disable():
|
||||
mon.set_events(mon.COVERAGE_ID, 0)
|
||||
mon.register_callback(mon.COVERAGE_ID, mon.events.LINE, None)
|
||||
mon.free_tool_id(mon.COVERAGE_ID)
|
||||
|
||||
|
||||
enable()
|
Reference in New Issue
Block a user