1
Fork 0

import all modules, even if there are no tests

This makes the coverage estimate a better description of the overall
level of coverage
This commit is contained in:
Dustin J. Mitchell 2010-12-19 21:28:04 -06:00
parent 269aa2563f
commit 8bb19eba2f
5 changed files with 120 additions and 164 deletions

View File

@ -1,31 +0,0 @@
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
# Don't complain about missing debug-only code:
def __repr__
if self\.debug
# Don't complain if tests don't hit defensive assertion code:
raise AssertionError
raise NotImplementedError
# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:
if runtime.platformType == 'win32'
# 'pass' generally means 'this won't be called'
^ *pass *$
include =
master/*
slave/*
omit =
# omit all of our tests
*/test/*
# templates cause coverage errors
*/templates/*

1
.coveragerc Symbolic link
View File

@ -0,0 +1 @@
common/coveragerc

31
common/coveragerc Normal file
View File

@ -0,0 +1,31 @@
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
# Don't complain about missing debug-only code:
def __repr__
if self\.debug
# Don't complain if tests don't hit defensive assertion code:
raise AssertionError
raise NotImplementedError
# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:
if runtime.platformType == 'win32'
# 'pass' generally means 'this won't be called'
^ *pass *$
include =
master/*
slave/*
omit =
# omit all of our tests
*/test/*
# templates cause coverage errors
*/templates/*

View File

@ -1,133 +0,0 @@
# This file is part of Buildbot. Buildbot is free software: you can
# redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright Buildbot Team Members
# Build classes specific to the Twisted codebase
from buildbot.process.base import Build
from buildbot.process.factory import BuildFactory
from buildbot.steps import shell
from buildbot.steps.python_twisted import HLint, ProcessDocs, BuildDebs, \
Trial, RemovePYCs
class TwistedBuild(Build):
workdir = "Twisted" # twisted's bin/trial expects to live in here
def isFileImportant(self, filename):
if filename.startswith("doc/fun/"):
return 0
if filename.startswith("sandbox/"):
return 0
return 1
class TwistedTrial(Trial):
tests = "twisted"
# the Trial in Twisted >=2.1.0 has --recurse on by default, and -to
# turned into --reporter=bwverbose .
recurse = False
trialMode = ["--reporter=bwverbose"]
testpath = None
trial = "./bin/trial"
class TwistedBaseFactory(BuildFactory):
buildClass = TwistedBuild
# bin/trial expects its parent directory to be named "Twisted": it uses
# this to add the local tree to PYTHONPATH during tests
workdir = "Twisted"
def __init__(self, source):
BuildFactory.__init__(self, [source])
class QuickTwistedBuildFactory(TwistedBaseFactory):
treeStableTimer = 30
useProgress = 0
def __init__(self, source, python="python"):
TwistedBaseFactory.__init__(self, source)
if type(python) is str:
python = [python]
self.addStep(HLint, python=python[0])
self.addStep(RemovePYCs)
for p in python:
cmd = [p, "setup.py", "build_ext", "-i"]
self.addStep(shell.Compile, command=cmd, flunkOnFailure=True)
self.addStep(TwistedTrial, python=p, testChanges=True)
class FullTwistedBuildFactory(TwistedBaseFactory):
treeStableTimer = 5*60
def __init__(self, source, python="python",
processDocs=False, runTestsRandomly=False,
compileOpts=[], compileOpts2=[]):
TwistedBaseFactory.__init__(self, source)
if processDocs:
self.addStep(ProcessDocs)
if type(python) == str:
python = [python]
assert isinstance(compileOpts, list)
assert isinstance(compileOpts2, list)
cmd = (python + compileOpts + ["setup.py", "build_ext"]
+ compileOpts2 + ["-i"])
self.addStep(shell.Compile, command=cmd, flunkOnFailure=True)
self.addStep(RemovePYCs)
self.addStep(TwistedTrial, python=python, randomly=runTestsRandomly)
class TwistedDebsBuildFactory(TwistedBaseFactory):
treeStableTimer = 10*60
def __init__(self, source, python="python"):
TwistedBaseFactory.__init__(self, source)
self.addStep(ProcessDocs, haltOnFailure=True)
self.addStep(BuildDebs, warnOnWarnings=True)
class TwistedReactorsBuildFactory(TwistedBaseFactory):
treeStableTimer = 5*60
def __init__(self, source,
python="python", compileOpts=[], compileOpts2=[],
reactors=None):
TwistedBaseFactory.__init__(self, source)
if type(python) == str:
python = [python]
assert isinstance(compileOpts, list)
assert isinstance(compileOpts2, list)
cmd = (python + compileOpts + ["setup.py", "build_ext"]
+ compileOpts2 + ["-i"])
self.addStep(shell.Compile, command=cmd, warnOnFailure=True)
if reactors == None:
reactors = [
'gtk2',
'gtk',
#'kqueue',
'poll',
'c',
'qt',
#'win32',
]
for reactor in reactors:
flunkOnFailure = 1
warnOnFailure = 0
#if reactor in ['c', 'qt', 'win32']:
# # these are buggy, so tolerate failures for now
# flunkOnFailure = 0
# warnOnFailure = 1
self.addStep(RemovePYCs) # TODO: why?
self.addStep(TwistedTrial, name=reactor, python=python,
reactor=reactor, flunkOnFailure=flunkOnFailure,
warnOnFailure=warnOnFailure)

View File

@ -0,0 +1,65 @@
# This file is part of Buildbot. Buildbot is free software: you can
# redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright Buildbot Team Members
# this file imports a number of source files that are not
# included in the coverage because none of the tests import
# them; this results in a more accurate total coverage percent.
modules = [] # for the benefit of pyflakes
from buildbot import buildslave
modules.extend([buildslave])
from buildbot.changes import p4poller, svnpoller
modules.extend([p4poller, svnpoller])
from buildbot.clients import base, sendchange, tryclient
modules.extend([base, sendchange, tryclient])
from buildbot.process import mtrlogobserver, subunitlogobserver
modules.extend([mtrlogobserver, subunitlogobserver])
from buildbot.scripts import checkconfig, logwatcher, reconfig, runner, startup
modules.extend([checkconfig, logwatcher, reconfig, runner, startup])
from buildbot.status import client, html, status_gerrit, status_push
modules.extend([client, html, status_gerrit, status_push])
from buildbot.status import tinderbox, words
modules.extend([tinderbox, words])
from buildbot.status.web import baseweb, build, builder, buildstatus, changes
modules.extend([baseweb, build, builder, buildstatus, changes])
from buildbot.status.web import console, feeds, grid, logs, olpb, root, slaves
modules.extend([console, feeds, grid, logs, olpb, root, slaves])
from buildbot.status.web import status_json, step, tests, waterfall
modules.extend([status_json, step, tests, waterfall])
from buildbot.steps import dummy, master, maxq, python, python_twisted, subunit
modules.extend([dummy, master, maxq, python, python_twisted, subunit])
from buildbot.steps import trigger, vstudio
modules.extend([trigger, vstudio])
from buildbot.steps.package.rpm import rpmbuild, rpmlint, rpmspec
modules.extend([rpmbuild, rpmlint, rpmspec])
from buildbot.util import collections, eventual, loop, monkeypatches
modules.extend([collections, eventual, loop, monkeypatches])
# require gobject
#import buildbot.clients.gtkPanes
#import buildbot.clients.debug
# requires mercurial
#import buildbot.changes.hgbuildbot
# requires libboto
#import buildbot.ec2buildslave
# requires libvirt
#import buildbot.libvirtbuildslave
# requires pycrypto
#import buildbot.manhole

View File

@ -0,0 +1,23 @@
# This file is part of Buildbot. Buildbot is free software: you can
# redistribute it and/or modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright Buildbot Team Members
# this file imports a number of source files that are not
# included in the coverage because none of the tests import
# them; this results in a more accurate total coverage percent.
modules = [] # for the benefit of pyflakes
from buildslave.scripts import logwatcher, runner, startup
modules.extend([logwatcher, runner, startup])