mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-02-10 05:57:28 +00:00
Process force-skiptest hint before requesting tests
If a package has a force-skiptest hint, don't request autopkgtests for it.
This commit is contained in:
parent
ea1c335992
commit
fc4ea9d159
50
britney.py
50
britney.py
@ -1929,10 +1929,33 @@ class Britney(object):
|
||||
if e.ver[1] == "-":
|
||||
continue
|
||||
autopkgtest_excuses.append(e)
|
||||
autopkgtest_packages.append((e.name, e.ver[1]))
|
||||
|
||||
# don't request tests if we have a force-skiptest hint
|
||||
hints = self.hints.search('force-skiptest', package=e.name)
|
||||
hints.extend(self.hints.search('force', package=e.name))
|
||||
forces = [
|
||||
x for x in hints
|
||||
if same_source(e.ver[1], x.version) ]
|
||||
if not forces:
|
||||
autopkgtest_packages.append((e.name, e.ver[1]))
|
||||
autopkgtest.request(autopkgtest_packages, autopkgtest_excludes)
|
||||
cloud_url = "http://autopkgtest.ubuntu.com/packages/%(h)s/%(s)s/%(r)s/%(a)s"
|
||||
for e in autopkgtest_excuses:
|
||||
# do we skip autopkgtests altogether?
|
||||
hints = self.hints.search('force-skiptest', package=e.name)
|
||||
hints.extend(self.hints.search('force', package=e.name))
|
||||
forces = [
|
||||
x for x in hints
|
||||
if same_source(e.ver[1], x.version) ]
|
||||
if forces:
|
||||
e.force()
|
||||
e.addreason('skiptest')
|
||||
e.addhtml(
|
||||
"Should wait for tests relating to %s %s, but "
|
||||
"forced by %s" %
|
||||
(e.name, e.ver[1], forces[0].user))
|
||||
continue
|
||||
|
||||
adtpass = True
|
||||
for passed, adtsrc, adtver, arch_status in autopkgtest.results(
|
||||
e.name, e.ver[1]):
|
||||
@ -1962,25 +1985,12 @@ class Britney(object):
|
||||
if not passed:
|
||||
adtpass = False
|
||||
|
||||
if not adtpass and e.is_valid:
|
||||
hints = self.hints.search('force-skiptest', package=e.name)
|
||||
hints.extend(self.hints.search('force', package=e.name))
|
||||
forces = [
|
||||
x for x in hints
|
||||
if same_source(e.ver[1], x.version) ]
|
||||
if forces:
|
||||
e.force()
|
||||
e.addreason('skiptest')
|
||||
e.addhtml(
|
||||
"Should wait for tests relating to %s %s, but "
|
||||
"forced by %s" %
|
||||
(e.name, e.ver[1], forces[0].user))
|
||||
else:
|
||||
upgrade_me.remove(e.name)
|
||||
unconsidered.append(e.name)
|
||||
e.addhtml("Not considered")
|
||||
e.addreason("autopkgtest")
|
||||
e.is_valid = False
|
||||
if not adtpass:
|
||||
upgrade_me.remove(e.name)
|
||||
unconsidered.append(e.name)
|
||||
e.addhtml("Not considered")
|
||||
e.addreason("autopkgtest")
|
||||
e.is_valid = False
|
||||
|
||||
if (getattr(self.options, "boottest_enable", "no") == "yes" and
|
||||
self.options.series):
|
||||
|
@ -1255,16 +1255,17 @@ class TestAutoPkgTest(TestBase):
|
||||
|
||||
self.do_test(
|
||||
[('libgreen1', {'Version': '2', 'Source': 'green', 'Depends': 'libc6'}, 'autopkgtest')],
|
||||
{'green': (True, {'green 2': {'amd64': 'RUNNING-ALWAYSFAIL', 'i386': 'RUNNING'},
|
||||
'lightgreen 1': {'amd64': 'RUNNING-ALWAYSFAIL', 'i386': 'RUNNING-ALWAYSFAIL'},
|
||||
'darkgreen 1': {'amd64': 'RUNNING-ALWAYSFAIL', 'i386': 'RUNNING-ALWAYSFAIL'},
|
||||
}),
|
||||
{'green': (True, {}),
|
||||
},
|
||||
{'green': [('old-version', '1'), ('new-version', '2'),
|
||||
('forced-reason', 'skiptest'),
|
||||
('excuses', 'Should wait for tests relating to green 2, but forced by pitti')]
|
||||
})
|
||||
|
||||
# should not issue test requests as it's hinted anyway
|
||||
self.assertEqual(self.amqp_requests, set())
|
||||
self.assertEqual(self.pending_requests, {})
|
||||
|
||||
def test_hint_force_skiptest_different_version(self):
|
||||
'''force-skiptest hint with non-matching version'''
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user