Index: tools/telemetry/third_party/coverage/doc/trouble.rst |
diff --git a/tools/telemetry/third_party/coverage/doc/trouble.rst b/tools/telemetry/third_party/coverage/doc/trouble.rst |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b701198833b9fa16ec1d00cc7783041580f81857 |
--- /dev/null |
+++ b/tools/telemetry/third_party/coverage/doc/trouble.rst |
@@ -0,0 +1,76 @@ |
+.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
+.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
+ |
+.. _trouble: |
+ |
+========================= |
+Things that cause trouble |
+========================= |
+ |
+.. :history: 20121231T085200, brand new docs. |
+.. :history: 20150124T160800, remove obsolete stuff. |
+ |
+ |
+Coverage.py works well, and I want it to properly measure any Python program, |
+but there are some situations it can't cope with. This page details some known |
+problems, with possible courses of action, and links to coverage.py bug reports |
+with more information. |
+ |
+I would love to :ref:`hear from you <contact>` if you have information about |
+any of these problems, even just to explain to me why you want them to start |
+working properly. |
+ |
+If your problem isn't discussed here, you can of course search the `coverage.py |
+bug tracker`_ directly to see if there is some mention of it. |
+ |
+.. _coverage.py bug tracker: https://bitbucket.org/ned/coveragepy/issues?status=new&status=open |
+ |
+ |
+Things that don't work |
+---------------------- |
+ |
+There are a number of popular modules, packages, and libraries that prevent |
+coverage.py from working properly: |
+ |
+* `execv`_, or one of its variants. These end the current program and replace |
+ it with a new one. This doesn't save the collected coverage data, so your |
+ program that calls execv will not be fully measured. A patch for coverage.py |
+ is in `issue 43`_. |
+ |
+* `thread`_, in the Python standard library, is the low-level threading |
+ interface. Threads created with this module will not be traced. Use the |
+ higher-level `threading`_ module instead. |
+ |
+* `sys.settrace`_ is the Python feature that coverage.py uses to see what's |
+ happening in your program. If another part of your program is using |
+ sys.settrace, then it will conflict with coverage.py, and it won't be |
+ measured properly. |
+ |
+.. _execv: http://docs.python.org/library/os#os.execl |
+.. _sys.settrace: http://docs.python.org/library/sys.html#sys.settrace |
+.. _thread: http://docs.python.org/library/thread.html |
+.. _threading: http://docs.python.org/library/threading.html |
+.. _issue 43: https://bitbucket.org/ned/coveragepy/issue/43/coverage-measurement-fails-on-code |
+ |
+ |
+Things that require --timid |
+--------------------------- |
+ |
+Some packages interfere with coverage measurement, but you might be able to |
+make it work by using the ``--timid`` command-line switch, or the ``[run] |
+timid=True`` configuration option. |
+ |
+* `DecoratorTools`_, or any package which uses it, notably `TurboGears`_. |
+ DecoratorTools fiddles with the trace function. You will need to use |
+ ``--timid``. |
+ |
+.. _DecoratorTools: http://pypi.python.org/pypi/DecoratorTools |
+.. _TurboGears: http://turbogears.org/ |
+ |
+ |
+Still having trouble? |
+--------------------- |
+ |
+If your problem isn't mentioned here, and isn't already reported in the |
+`coverage.py bug tracker`_, please :ref:`get in touch with me <contact>`, |
+we'll figure out a solution. |