mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-03-11 03:11:08 +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] == "-":
|
if e.ver[1] == "-":
|
||||||
continue
|
continue
|
||||||
autopkgtest_excuses.append(e)
|
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)
|
autopkgtest.request(autopkgtest_packages, autopkgtest_excludes)
|
||||||
cloud_url = "http://autopkgtest.ubuntu.com/packages/%(h)s/%(s)s/%(r)s/%(a)s"
|
cloud_url = "http://autopkgtest.ubuntu.com/packages/%(h)s/%(s)s/%(r)s/%(a)s"
|
||||||
for e in autopkgtest_excuses:
|
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
|
adtpass = True
|
||||||
for passed, adtsrc, adtver, arch_status in autopkgtest.results(
|
for passed, adtsrc, adtver, arch_status in autopkgtest.results(
|
||||||
e.name, e.ver[1]):
|
e.name, e.ver[1]):
|
||||||
@ -1962,25 +1985,12 @@ class Britney(object):
|
|||||||
if not passed:
|
if not passed:
|
||||||
adtpass = False
|
adtpass = False
|
||||||
|
|
||||||
if not adtpass and e.is_valid:
|
if not adtpass:
|
||||||
hints = self.hints.search('force-skiptest', package=e.name)
|
upgrade_me.remove(e.name)
|
||||||
hints.extend(self.hints.search('force', package=e.name))
|
unconsidered.append(e.name)
|
||||||
forces = [
|
e.addhtml("Not considered")
|
||||||
x for x in hints
|
e.addreason("autopkgtest")
|
||||||
if same_source(e.ver[1], x.version) ]
|
e.is_valid = False
|
||||||
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 (getattr(self.options, "boottest_enable", "no") == "yes" and
|
if (getattr(self.options, "boottest_enable", "no") == "yes" and
|
||||||
self.options.series):
|
self.options.series):
|
||||||
|
@ -1255,16 +1255,17 @@ class TestAutoPkgTest(TestBase):
|
|||||||
|
|
||||||
self.do_test(
|
self.do_test(
|
||||||
[('libgreen1', {'Version': '2', 'Source': 'green', 'Depends': 'libc6'}, 'autopkgtest')],
|
[('libgreen1', {'Version': '2', 'Source': 'green', 'Depends': 'libc6'}, 'autopkgtest')],
|
||||||
{'green': (True, {'green 2': {'amd64': 'RUNNING-ALWAYSFAIL', 'i386': 'RUNNING'},
|
{'green': (True, {}),
|
||||||
'lightgreen 1': {'amd64': 'RUNNING-ALWAYSFAIL', 'i386': 'RUNNING-ALWAYSFAIL'},
|
|
||||||
'darkgreen 1': {'amd64': 'RUNNING-ALWAYSFAIL', 'i386': 'RUNNING-ALWAYSFAIL'},
|
|
||||||
}),
|
|
||||||
},
|
},
|
||||||
{'green': [('old-version', '1'), ('new-version', '2'),
|
{'green': [('old-version', '1'), ('new-version', '2'),
|
||||||
('forced-reason', 'skiptest'),
|
('forced-reason', 'skiptest'),
|
||||||
('excuses', 'Should wait for tests relating to green 2, but forced by pitti')]
|
('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):
|
def test_hint_force_skiptest_different_version(self):
|
||||||
'''force-skiptest hint with non-matching version'''
|
'''force-skiptest hint with non-matching version'''
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user