This is a follow-up to Is it a good practice to run functional tests with coverage? which made me confused a little bit.
I was under the impression that typically a test run with enabled coverage does not affect the functionality under test in any functional way. The only implication of enabling coverage reports is that it slows things down.
For example and to make things more specific - coverage.py
in Python puts the special read-only "tracers" to collect the program execution information:
At the heart of the execution phase is a Python trace function. This is a function that the Python interpreter invokes for each line executed in a program. Coverage.py implements a trace function that records each file and line number as it is executed.
Can enabling coverage potentially have an effect on an application-under-test?
If the answer depends on an underlying tool, have you ever encountered a situation when a coverage tracer had an impact on the functionality under test?