[run]
# In coverage 4.0b3, concurrency=gevent is exactly equivalent to
# concurrency=greenlet, except it causes coverage itself to import
# gevent. That messes up our coverage numbers for top-level
# statements, so we use greenlet instead. See https://github.com/gevent/gevent/pull/655#issuecomment-141198002
# See also .coveragerc-pypy
concurrency = greenlet
parallel = True
source = gevent
omit =
    # This is for <= 2.7.8, which we don't test
    src/gevent/_ssl2.py
    src/gevent/libev/_corecffi_build.py
    src/gevent/libuv/_corecffi_build.py
    src/gevent/win32util.py
    # having concurrency=greenlet means that the Queue class
    # which is used from multiple real threads doesn't
    # properly get covered.
    src/gevent/_threading.py
    # local.so sometimes gets included, and it can't be parsed
    # as source, so it fails the whole process.
    *.so
    src/gevent/libev/*.so
    src/gevent/libuv/*.so
    src/gevent/resolver/*.so


[report]
# Coverage is run on Linux under cPython 2/3 and pypy
exclude_lines =
    pragma: no cover
    def __repr__
    raise AssertionError
    raise NotImplementedError
    except ImportError:
    if __name__ == .__main__.:
    if sys.platform == 'win32':
    if mswindows:
    if is_windows:
    if WIN:
    self.fail
omit =
    # local.so sometimes gets included, and it can't be parsed
    # as source, so it fails the whole process.
    # coverage 4.5 needs this specified here, 4.4.2 needed it in [run]
    *.so
    /tmp/test_*
    # Third-party vendored code
    src/gevent/_tblib.py
