From 056a0f6d371e11583933506304a8d36ae847f0a6 Mon Sep 17 00:00:00 2001 From: Joe Talbott Date: Fri, 30 Jan 2015 17:51:44 -0500 Subject: [PATCH] Handle boottest like autopkgtest and remove boottest config file --- britney.conf | 4 +++ britney.py | 19 ++++++++++-- britney_boottest.conf | 70 ------------------------------------------ tests/test_boottest.py | 15 ++++++++- 4 files changed, 35 insertions(+), 73 deletions(-) delete mode 100644 britney_boottest.conf diff --git a/britney.conf b/britney.conf index 2d8d4a8..4377cfd 100644 --- a/britney.conf +++ b/britney.conf @@ -65,3 +65,7 @@ REMOVE_OBSOLETE = no ADT_ENABLE = yes ADT_DEBUG = no ADT_ARCHES = amd64 i386 + +BOOTTEST_ARCHES = armhf +BOOTTEST_ENABLE = yes +BOOTTEST_DEBUG = yes diff --git a/britney.py b/britney.py index c20cf12..b8fe4a0 100755 --- a/britney.py +++ b/britney.py @@ -1368,6 +1368,7 @@ class Britney(object): # the starting point is that we will update the candidate and run autopkgtests update_candidate = True run_autopkgtest = True + run_boottest = True # if the version in unstable is older, then stop here with a warning in the excuse and return False if source_t and apt_pkg.version_compare(source_u[VERSION], source_t[VERSION]) < 0: @@ -1381,6 +1382,7 @@ class Britney(object): excuse.addhtml("%s source package doesn't exist" % (src)) update_candidate = False run_autopkgtest = False + run_boottest = False # retrieve the urgency for the upload, ignoring it if this is a NEW package (not present in testing) urgency = self.urgencies.get(src, self.options.default_urgency) @@ -1399,6 +1401,7 @@ class Britney(object): excuse.addreason("remove") update_candidate = False run_autopkgtest = False + run_boottest = False # check if there is a `block' or `block-udeb' hint for this package, or a `block-all source' hint blocked = {} @@ -1478,6 +1481,7 @@ class Britney(object): else: update_candidate = False run_autopkgtest = False + run_boottest = False excuse.addreason("age") if suite in ['pu', 'tpu']: @@ -1513,6 +1517,8 @@ class Britney(object): update_candidate = False if arch in self.options.adt_arches.split(): run_autopkgtest = False + if arch in self.options.boottest_arches.split(): + run_boottest = False excuse.addreason("arch") excuse.addreason("arch-%s" % arch) excuse.addreason("build-arch") @@ -1555,6 +1561,8 @@ class Britney(object): update_candidate = False if arch in self.options.adt_arches.split(): run_autopkgtest = False + if arch in self.options.boottest_arches.split(): + run_boottest = False # if there are out-of-date packages, warn about them in the excuse and set update_candidate # to False to block the update; if the architecture where the package is out-of-date is @@ -1581,6 +1589,8 @@ class Britney(object): update_candidate = False if arch in self.options.adt_arches.split(): run_autopkgtest = False + if arch in self.options.boottest_arches.split(): + run_boottest = False excuse.addreason("arch") excuse.addreason("arch-%s" % arch) if uptodatebins: @@ -1598,11 +1608,13 @@ class Britney(object): excuse.addreason("no-binaries") update_candidate = False run_autopkgtest = False + run_boottest = False elif not built_anywhere: excuse.addhtml("%s has no up-to-date binaries on any arch" % src) excuse.addreason("no-binaries") update_candidate = False run_autopkgtest = False + run_boottest = False # if the suite is unstable, then we have to check the release-critical bug lists before # updating testing; if the unstable package has RC bugs that do not apply to the testing @@ -1635,6 +1647,7 @@ class Britney(object): ["#%s" % (urllib.quote(a), a) for a in new_bugs]))) update_candidate = False run_autopkgtest = False + run_boottest = False excuse.addreason("buggy") if len(old_bugs) > 0: @@ -1653,6 +1666,7 @@ class Britney(object): excuse.force() update_candidate = True run_autopkgtest = True + run_boottest = True # if the package can be updated, it is a valid candidate if update_candidate: @@ -1662,6 +1676,7 @@ class Britney(object): # TODO excuse.addhtml("Not considered") excuse.run_autopkgtest = run_autopkgtest + excuse.run_boottest = run_boottest self.excuses.append(excuse) return update_candidate @@ -1895,7 +1910,7 @@ class Britney(object): debug=boottest_debug) for excuse in self.excuses: # Skip already invalid excuses. - if not excuse.is_valid: + if not excuse.run_boottest: continue # Also skip removals, binary-only candidates, proposed-updates # and unknown versions. @@ -1927,7 +1942,7 @@ class Britney(object): forces[0].user)) status = 'PASS' statuses.add(status) - # No boottest attemps requested, it's not relevant in this + # No boottest attempts requested, it's not relevant in this # context, rely on other checks to judge promotion. if not statuses: continue diff --git a/britney_boottest.conf b/britney_boottest.conf deleted file mode 100644 index b9a8234..0000000 --- a/britney_boottest.conf +++ /dev/null @@ -1,70 +0,0 @@ -# Configuration file for britney - -# Paths for control files -TESTING = data/%(SERIES) -UNSTABLE = data/%(SERIES)-proposed -PARTIAL_UNSTABLE = yes - -# Output -NONINST_STATUS = data/%(SERIES)/non-installable-status -EXCUSES_OUTPUT = output/%(SERIES)/excuses.html -EXCUSES_YAML_OUTPUT = output/%(SERIES)/excuses.yaml -UPGRADE_OUTPUT = output/%(SERIES)/output.txt -HEIDI_OUTPUT = output/%(SERIES)/HeidiResult - -# List of release architectures -ARCHITECTURES = amd64 arm64 armhf i386 powerpc ppc64el - -# if you're not in this list, arch: all packages are allowed to break on you -NOBREAKALL_ARCHES = amd64 - -# if you're in this list, your packages may not stay in sync with the source -OUTOFSYNC_ARCHES = - -# if you're in this list, your uninstallability count may increase -BREAK_ARCHES = - -# if you're in this list, you are a new architecture -NEW_ARCHES = - -# priorities and delays -MINDAYS_LOW = 0 -MINDAYS_MEDIUM = 0 -MINDAYS_HIGH = 0 -MINDAYS_CRITICAL = 0 -MINDAYS_EMERGENCY = 0 -DEFAULT_URGENCY = medium - -# hint permissions -HINTS_CJWATSON = ALL -HINTS_ADCONRAD = ALL -HINTS_KITTERMAN = ALL -HINTS_LANEY = ALL -HINTS_JRIDDELL = ALL -HINTS_STEFANOR = ALL -HINTS_STGRABER = ALL -HINTS_VORLON = ALL -HINTS_FREEZE = block block-all - -HINTS_UBUNTU-TOUCH/DIDROCKS = block unblock -HINTS_UBUNTU-TOUCH/EV = block unblock -HINTS_UBUNTU-TOUCH/KEN-VANDINE = block unblock -HINTS_UBUNTU-TOUCH/LOOL = block unblock -HINTS_UBUNTU-TOUCH/MATHIEU-TL = block unblock -HINTS_UBUNTU-TOUCH/OGRA = block unblock - -# support for old libraries in testing (smooth update) -# use ALL to enable smooth updates for all the sections -# -# naming a non-existent section will effectively disable new smooth -# updates but still allow removals to occur -SMOOTH_UPDATES = badgers - -REMOVE_OBSOLETE = no - -ADT_ENABLE = no -ADT_DEBUG = no -ADT_ARCHES = amd64 i386 - -BOOTTEST_ENABLE = yes -BOOTTEST_DEBUG = yes diff --git a/tests/test_boottest.py b/tests/test_boottest.py index 97e64aa..cb4f370 100644 --- a/tests/test_boottest.py +++ b/tests/test_boottest.py @@ -92,7 +92,15 @@ class TestBoottestEnd2End(TestBase): def setUp(self): super(TestBoottestEnd2End, self).setUp() self.britney_conf = os.path.join( - PROJECT_DIR, 'britney_boottest.conf') + PROJECT_DIR, 'britney.conf') + old_config = None + with open(self.britney_conf, 'r') as fp: + self.old_config = fp.read() + config = self.old_config.replace( + 'ADT_ENABLE = yes', 'ADT_ENABLE = no') + with open(self.britney_conf, 'w') as fp: + fp.write(config) + self.data.add('libc6', False, {'Architecture': 'armhf'}), self.data.add( @@ -110,6 +118,11 @@ class TestBoottestEnd2End(TestBase): 'pyqt5:armhf 1.0', ]) + def tearDown(self): + """ Replace the old_config. """ + with open(self.britney_conf, 'w') as fp: + fp.write(self.old_config) + def create_manifest(self, lines): """Create a manifest for this britney run context.""" path = os.path.join(