mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-02-15 16:28:20 +00:00
Cope with missing/broken results due to outdated apt cache. Britney will not fail, but source promotion will be blocked. Also waiting for amd64 binaries (arch-indep deps) before running boottests.
This commit is contained in:
commit
0f3662ec67
13
boottest.py
13
boottest.py
@ -215,7 +215,18 @@ class BootTest(object):
|
|||||||
|
|
||||||
def get_status(self, name, version):
|
def get_status(self, name, version):
|
||||||
"""Return test status for the given source name and version."""
|
"""Return test status for the given source name and version."""
|
||||||
return self.pkglist[name][version]
|
try:
|
||||||
|
return self.pkglist[name][version]
|
||||||
|
except KeyError:
|
||||||
|
# This error handling accounts for outdated apt caches, when
|
||||||
|
# `boottest-britney` erroneously reports results for the
|
||||||
|
# current source version, instead of the proposed.
|
||||||
|
# Returning None here will block source promotion with:
|
||||||
|
# 'UNKNOWN STATUS' excuse. If the jobs are retried and its
|
||||||
|
# results find an up-to-date cache, the problem is gone.
|
||||||
|
print("E: [%s] - Missing boottest results for %s_%s" % (
|
||||||
|
time.asctime(), name, version))
|
||||||
|
return None
|
||||||
|
|
||||||
def request(self, packages):
|
def request(self, packages):
|
||||||
"""Requests boottests for the given sources list ([(src, ver),])."""
|
"""Requests boottests for the given sources list ([(src, ver),])."""
|
||||||
|
@ -66,7 +66,7 @@ ADT_ENABLE = yes
|
|||||||
ADT_DEBUG = no
|
ADT_DEBUG = no
|
||||||
ADT_ARCHES = amd64 i386
|
ADT_ARCHES = amd64 i386
|
||||||
|
|
||||||
BOOTTEST_ARCHES = armhf
|
|
||||||
BOOTTEST_ENABLE = yes
|
BOOTTEST_ENABLE = yes
|
||||||
BOOTTEST_DEBUG = yes
|
BOOTTEST_DEBUG = yes
|
||||||
|
BOOTTEST_ARCHES = armhf amd64
|
||||||
BOOTTEST_FETCH = yes
|
BOOTTEST_FETCH = yes
|
||||||
|
@ -301,6 +301,22 @@ args.func()
|
|||||||
boottest.BootTest.EXCUSE_LABELS['FAIL']),
|
boottest.BootTest.EXCUSE_LABELS['FAIL']),
|
||||||
'<li>Not considered'])
|
'<li>Not considered'])
|
||||||
|
|
||||||
|
def test_unknown(self):
|
||||||
|
# `Britney` does not block on missing boottest results for a
|
||||||
|
# particular source/version, in this case pyqt5-src_1.2 (not
|
||||||
|
# listed in the testing result history). Instead it renders
|
||||||
|
# excuses with 'UNKNOWN STATUS' and links to the corresponding
|
||||||
|
# jenkins jobs for further investigation. Source promotion is
|
||||||
|
# blocked, though.
|
||||||
|
context = [
|
||||||
|
('pyqt5', {'Source': 'pyqt5-src', 'Version': '1.2',
|
||||||
|
'Architecture': 'armhf'})]
|
||||||
|
self.do_test(
|
||||||
|
context,
|
||||||
|
[r'\bpyqt5-src\b.*\(- to .*>1.2<',
|
||||||
|
r'<li>Boottest result: UNKNOWN STATUS \(Jenkins: .*\)',
|
||||||
|
'<li>Not considered'])
|
||||||
|
|
||||||
def create_hint(self, username, content):
|
def create_hint(self, username, content):
|
||||||
"""Populates a hint file for the given 'username' with 'content'."""
|
"""Populates a hint file for the given 'username' with 'content'."""
|
||||||
hints_path = os.path.join(
|
hints_path = os.path.join(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user