mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-06-08 16:21:32 +00:00
force-reset-test: Make the hint apply 'backwards' too
If we're force-reset-test foo/N, we should consider all versions up to and including N as ALWAYSFAILED.
This commit is contained in:
parent
9d541b4f5c
commit
70ede93f64
@ -711,7 +711,7 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
EXCUSES_LABELS. log_url is None if the test is still running.
|
EXCUSES_LABELS. log_url is None if the test is still running.
|
||||||
'''
|
'''
|
||||||
# determine current test result status
|
# determine current test result status
|
||||||
until = self.find_max_force_reset_test(src, ver, arch)
|
until = self.find_max_lower_force_reset_test(src, ver, arch)
|
||||||
ever_passed = self.check_ever_passed_before(src, ver, arch, until)
|
ever_passed = self.check_ever_passed_before(src, ver, arch, until)
|
||||||
url = None
|
url = None
|
||||||
try:
|
try:
|
||||||
@ -732,6 +732,10 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
if ever_passed:
|
if ever_passed:
|
||||||
if self.has_force_badtest(src, ver, arch):
|
if self.has_force_badtest(src, ver, arch):
|
||||||
result = 'IGNORE-FAIL'
|
result = 'IGNORE-FAIL'
|
||||||
|
elif self.has_higher_force_reset_test(src, ver, arch):
|
||||||
|
# we've got a force-reset-test foo/N, N >= ver hint;
|
||||||
|
# this is ALWAYSFAIL
|
||||||
|
result = 'ALWAYSFAIL'
|
||||||
else:
|
else:
|
||||||
result = 'REGRESSION'
|
result = 'REGRESSION'
|
||||||
else:
|
else:
|
||||||
@ -759,7 +763,7 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
|
|
||||||
return (result, ver, url)
|
return (result, ver, url)
|
||||||
|
|
||||||
def find_max_force_reset_test(self, src, ver, arch):
|
def find_max_lower_force_reset_test(self, src, ver, arch):
|
||||||
'''Find the maximum force-reset-test hint before/including ver'''
|
'''Find the maximum force-reset-test hint before/including ver'''
|
||||||
hints = self.britney.hints.search('force-reset-test', package=src)
|
hints = self.britney.hints.search('force-reset-test', package=src)
|
||||||
found_ver = None
|
found_ver = None
|
||||||
@ -775,6 +779,20 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
|
|
||||||
return found_ver
|
return found_ver
|
||||||
|
|
||||||
|
def has_higher_force_reset_test(self, src, ver, arch):
|
||||||
|
'''Find if there is a minimum force-reset-test hint after/including ver'''
|
||||||
|
hints = self.britney.hints.search('force-reset-test', package=src)
|
||||||
|
|
||||||
|
if hints:
|
||||||
|
for hint in hints:
|
||||||
|
for mi in hint.packages:
|
||||||
|
if (mi.architecture in ['source', arch] and
|
||||||
|
mi.version != 'all' and
|
||||||
|
apt_pkg.version_compare(mi.version, ver) >= 0):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
def has_force_badtest(self, src, ver, arch):
|
def has_force_badtest(self, src, ver, arch):
|
||||||
'''Check if src/ver/arch has a force-badtest hint'''
|
'''Check if src/ver/arch has a force-badtest hint'''
|
||||||
|
|
||||||
|
@ -1738,6 +1738,60 @@ class T(TestBase):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
def test_hint_force_reset_test_earlier_hints(self):
|
||||||
|
'''force-reset-test for a later version applies backwards'''
|
||||||
|
|
||||||
|
self.swift.set_results({'autopkgtest-series': {
|
||||||
|
'series/amd64/l/lightgreen/20150100_100100@': (0, 'lightgreen 1', tr('lightgreen/1')),
|
||||||
|
'series/amd64/l/lightgreen/20150101_100100@': (4, 'lightgreen 1', tr('green/2')),
|
||||||
|
'series/amd64/l/lightgreen/20150102_100101@': (0, 'lightgreen 2', tr('lightgreen/2')),
|
||||||
|
'series/amd64/l/lightgreen/20150103_100101@': (4, 'lightgreen 3', tr('lightgreen/3')),
|
||||||
|
}})
|
||||||
|
|
||||||
|
|
||||||
|
self.create_hint('pitti', 'force-reset-test lightgreen/3')
|
||||||
|
self.do_test(
|
||||||
|
[('libgreen1', {'Version': '2', 'Source': 'green', 'Depends': 'libc6'}, 'autopkgtest'),
|
||||||
|
('lightgreen', {'Version': '3', 'Source': 'lightgreen', 'Depends': 'libc6'}, 'autopkgtest')],
|
||||||
|
{'green': (True, {
|
||||||
|
'lightgreen/1': {'amd64': 'ALWAYSFAIL'},
|
||||||
|
}),
|
||||||
|
'lightgreen': (True, {
|
||||||
|
'lightgreen/3': {'amd64': 'ALWAYSFAIL'},
|
||||||
|
}),
|
||||||
|
|
||||||
|
},
|
||||||
|
{'green': [('old-version', '1'), ('new-version', '2')],
|
||||||
|
'lightgreen': [('old-version', '1'), ('new-version', '3')],
|
||||||
|
})
|
||||||
|
|
||||||
|
def test_hint_force_reset_test_earlier_hints_pass(self):
|
||||||
|
'''force-reset-test for a later version which is PASS is still PASS'''
|
||||||
|
|
||||||
|
self.swift.set_results({'autopkgtest-series': {
|
||||||
|
'series/amd64/l/lightgreen/20150100_100100@': (0, 'lightgreen 1', tr('lightgreen/1')),
|
||||||
|
'series/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),
|
||||||
|
'series/amd64/l/lightgreen/20150102_100101@': (0, 'lightgreen 2', tr('lightgreen/2')),
|
||||||
|
'series/amd64/l/lightgreen/20150103_100101@': (0, 'lightgreen 3', tr('lightgreen/3')),
|
||||||
|
}})
|
||||||
|
|
||||||
|
|
||||||
|
self.create_hint('pitti', 'force-reset-test lightgreen/3')
|
||||||
|
self.do_test(
|
||||||
|
[('libgreen1', {'Version': '2', 'Source': 'green', 'Depends': 'libc6'}, 'autopkgtest'),
|
||||||
|
('lightgreen', {'Version': '3', 'Source': 'lightgreen', 'Depends': 'libc6'}, 'autopkgtest')],
|
||||||
|
{'green': (True, {
|
||||||
|
'lightgreen/1': {'amd64': 'PASS'},
|
||||||
|
}),
|
||||||
|
'lightgreen': (True, {
|
||||||
|
'lightgreen/3': {'amd64': 'PASS'},
|
||||||
|
}),
|
||||||
|
|
||||||
|
},
|
||||||
|
{'green': [('old-version', '1'), ('new-version', '2')],
|
||||||
|
'lightgreen': [('old-version', '1'), ('new-version', '3')],
|
||||||
|
})
|
||||||
|
|
||||||
def test_hint_force_badtest_multi_version(self):
|
def test_hint_force_badtest_multi_version(self):
|
||||||
'''force-badtest hint'''
|
'''force-badtest hint'''
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user