Merge branch 'adt-results-from-swift'

less-recipients
Steve Langasek 3 years ago
commit d87dbf0db2

@ -28,6 +28,7 @@ import io
import itertools
import re
import socket
import sqlite3
import sys
import time
import urllib.parse
@ -124,6 +125,7 @@ class AutopkgtestPolicy(BasePolicy):
self.pending_tests_file = os.path.join(self.state_dir, 'autopkgtest-pending.json')
self.testsuite_triggers = {}
self.result_in_baseline_cache = collections.defaultdict(dict)
self.database_path = os.path.join(self.state_dir, 'autopkgtest.db')
# results map: trigger -> src -> arch -> [passed, version, run_id, seen]
# - trigger is "source/version" of an unstable package that triggered
@ -140,6 +142,12 @@ class AutopkgtestPolicy(BasePolicy):
else:
self.results_cache_file = os.path.join(self.state_dir, 'autopkgtest-results.cache')
if hasattr(self.options,'adt_db_url') and self.options.adt_db_url:
if not self.fetch_db():
self.logger.error('No autopkgtest db present, exiting')
sys.exit(1)
self.db = sqlite3.connect(self.database_path)
try:
self.options.adt_ppas = self.options.adt_ppas.strip().split()
except AttributeError:
@ -157,6 +165,34 @@ class AutopkgtestPolicy(BasePolicy):
else:
self.logger.info("Ignoring ADT_ARCHES %s as it is not in architectures list", arch)
def fetch_db(self):
f = None
try:
f = self.download_retry(self.options.adt_db_url)
http_code = f.getcode()
# file:/// urls don't have the http niceties
if not http_code or http_code == 200:
new_file = self.database_path + '.new'
with open(new_file,'wb') as f_out:
while True:
data=f.read(2048*1024)
if not data:
break
f_out.write(data)
if http_code and os.path.getsize(new_file) != int(f.getheader('content-length')):
self.logger.info('Short read downloading autopkgtest results')
os.unlink(new_file)
else:
os.rename(new_file, self.database_path)
else:
self.logger.error('Failure to fetch autopkgtest results %s: HTTP code=%d', self.options.adt_db_url, f.getcode())
except IOError as e:
self.logger.error('Failure to fetch autopkgtest results %s: %s', self.options.adt_db_url, str(e))
finally:
if f is not None:
f.close()
return os.path.exists(self.database_path)
def register_hints(self, hint_parser):
hint_parser.register_hint_type('force-badtest', britney2.hints.split_into_one_hint_per_package)
hint_parser.register_hint_type('force-skiptest', britney2.hints.split_into_one_hint_per_package)
@ -807,7 +843,7 @@ class AutopkgtestPolicy(BasePolicy):
try:
req = urlopen(url, timeout=30)
code = req.getcode()
if 200 <= code < 300:
if not code or 200 <= code < 300:
return req
except socket.timeout as e:
self.logger.info(
@ -970,6 +1006,71 @@ class AutopkgtestPolicy(BasePolicy):
for trigger in result_triggers:
self.add_trigger_to_results(trigger, src, ver, arch, run_id, seen, result)
def fetch_sqlite_results(self, src, arch):
'''Retrieve new results for source package/arch from sqlite
Remove matching pending_tests entries.
'''
# determine latest run_id from results
latest_run_id = ''
if not self.options.adt_shared_results_cache:
latest_run_id = self.latest_run_for_package(src, arch)
if not latest_run_id:
latest_run_id = ''
cur = self.db.cursor()
for row in cur.execute('SELECT r.exitcode,r.version,r.triggers,'
' r.run_id FROM test AS t '
'LEFT JOIN result AS r ON t.id=r.test_id '
'WHERE t.release=? AND t.arch=? '
'AND t.package=? AND r.run_id >= ?',
(self.options.series, arch, src, latest_run_id)):
exitcode, ver, triggers, run_id = row
if not ver:
if exitcode in (4, 12, 20):
# repair it
ver = "unknown"
else:
self.logger.error('%s/%s/%s is damaged, ignoring',
arch, src, run_id)
# ignore this; this will leave an orphaned request
# in autopkgtest-pending.json and thus require
# manual retries after fixing the tmpfail, but we
# can't just blindly attribute it to some pending
# test.
return
# parse recorded triggers in test result
if triggers:
result_triggers = [i for i in triggers.split(' ', 1) if '/' in i]
else:
self.logger.error('%s result has no ADT_TEST_TRIGGERS, ignoring')
continue
# 20200101_000000 is 15 chars long
seen = round(calendar.timegm(time.strptime(run_id[:15], '%Y%m%d_%H%M%S')))
# allow some skipped tests, but nothing else
if exitcode in (0, 2):
result = Result.PASS
elif exitcode == 8:
result = Result.NEUTRAL
else:
result = Result.FAIL
self.logger.info(
'Fetched test result for %s/%s/%s %s (triggers: %s): %s',
src, ver, arch, run_id, result_triggers, result.name.lower())
# remove matching test requests
for trigger in result_triggers:
self.remove_from_pending(trigger, src, arch)
# add this result
for trigger in result_triggers:
self.add_trigger_to_results(trigger, src, ver, arch, run_id, seen, result)
def remove_from_pending(self, trigger, src, arch):
try:
arch_list = self.pending_tests[trigger][src]
@ -1071,17 +1172,21 @@ class AutopkgtestPolicy(BasePolicy):
result[3] + int(self.options.adt_retry_older_than) * SECPERDAY < self._now:
# We might want to retry this failure, so continue
pass
elif not uses_swift:
elif not uses_swift and not hasattr(self,'db'):
# We're done if we don't retrigger and we're not using swift
return
elif result_state in {Result.PASS, Result.NEUTRAL}:
self.logger.debug('%s/%s triggered by %s already known', src, arch, trigger)
return
# Without swift we don't expect new results
if uses_swift:
# Without swift or autopkgtest.db we don't expect new results
if hasattr(self,'db'):
self.fetch_sqlite_results(src, arch)
elif uses_swift:
self.logger.info('Checking for new results for failed %s/%s for trigger %s', src, arch, trigger)
self.fetch_swift_results(self.options.adt_swift_url, src, arch)
if hasattr(self,'db') or uses_swift:
# do we have one now?
try:
self.test_results[trigger][src][arch]

@ -397,6 +397,7 @@ ADT_SHARED_RESULTS_CACHE =
ADT_SWIFT_URL = http://localhost:18085
ADT_CI_URL = https://autopkgtest.ubuntu.com/
ADT_HUGE = 20
ADT_DB_URL =
ADT_SUCCESS_BOUNTY =
ADT_REGRESSION_PENALTY =

@ -12,6 +12,7 @@ import fileinput
import unittest
import json
import pprint
import sqlite3
import urllib.parse
import apt_pkg
@ -44,11 +45,14 @@ class TestAutopkgtestBase(TestBase):
def setUp(self):
super().setUp()
self.fake_amqp = os.path.join(self.data.path, 'amqp')
self.db_path = os.path.join(self.data.path, 'autopkgtest.db')
# Set fake AMQP and Swift server
# Set fake AMQP and Swift server and autopkgtest.db
for line in fileinput.input(self.britney_conf, inplace=True):
if 'ADT_AMQP' in line:
print('ADT_AMQP = file://%s' % self.fake_amqp)
elif 'ADT_DB_URL' in line:
print('ADT_DB_URL = file://%s' % self.db_path)
else:
sys.stdout.write(line)
@ -82,8 +86,102 @@ class TestAutopkgtestBase(TestBase):
self.swift = mock_swift.AutoPkgTestSwiftServer(port=18085)
self.swift.set_results({})
self.db = self.init_sqlite_db(self.db_path)
def tearDown(self):
del self.swift
self.db.close()
try:
os.unlink(self.db_path)
except FileNotFoundError: pass
# https://git.launchpad.net/autopkgtest-cloud/tree/charms/focal/autopkgtest-web/webcontrol/publish-db,
# https://git.launchpad.net/autopkgtest-cloud/tree/charms/focal/autopkgtest-web/webcontrol/helpers/utils.py
def init_sqlite_db(self, path):
"""Create DB if it does not exist, and connect to it"""
db = sqlite3.connect(path)
db.execute("PRAGMA journal_mode = MEMORY")
db.execute(
"CREATE TABLE current_version("
" release CHAR[20], "
" pocket CHAR[40], "
" component CHAR[10],"
" package CHAR[50], "
" version CHAR[120], "
" PRIMARY KEY(release, package))"
)
db.execute("CREATE INDEX IF NOT EXISTS current_version_pocket_ix "
"ON current_version(pocket, component)")
db.execute(
"CREATE TABLE url_last_checked("
" url CHAR[100], "
" timestamp CHAR[50], "
" PRIMARY KEY(url))"
)
db.execute('CREATE TABLE IF NOT EXISTS test ('
' id INTEGER PRIMARY KEY, '
' release CHAR[20], '
' arch CHAR[20], '
' package char[120])')
db.execute('CREATE TABLE IF NOT EXISTS result ('
' test_id INTEGER, '
' run_id CHAR[30], '
' version VARCHAR[200], '
' triggers TEXT, '
' duration INTEGER, '
' exitcode INTEGER, '
' requester TEXT, '
' PRIMARY KEY(test_id, run_id), '
' FOREIGN KEY(test_id) REFERENCES test(id))')
# /packages/<name> mostly benefits from the index on package (0.8s -> 0.01s),
# but adding the other fields improves it a further 50% to 0.005s.
db.execute('CREATE UNIQUE INDEX IF NOT EXISTS test_package_uix ON test('
' package, release, arch)')
db.execute('CREATE INDEX IF NOT EXISTS result_run_ix ON result('
' run_id desc)')
db.commit()
return db
def set_results(self, results):
'''Wrapper to set autopkgtest results in both swift and sqlite3'''
self.swift.set_results(results)
# swift bucket name is irrelevant for sqlite
for i in results.values():
for k,v in i.items():
(series, arch, discard, source, latest) = k.split('/')
retcode = v[0]
if not v[1]:
source_ver = None
else:
source_ver = v[1].split(' ')[1]
try:
trigger = v[2]['custom_environment'][0].split('=')[1]
except (IndexError, KeyError):
trigger = None
try:
self.db.execute('INSERT INTO test (release, arch, package) '
'VALUES (?, ?, ?)',
(series, arch, source))
except sqlite3.IntegrityError:
# Completely normal if we have more than one result for
# the same source package; ignore
pass
self.db.execute('INSERT INTO result '
'(test_id, run_id, version, triggers, '
' exitcode) '
'SELECT test.id, ?, ?, ?, ? FROM test '
'WHERE release=? AND arch=? AND package=?',
(latest, source_ver, trigger, retcode,
series, arch, source))
self.db.commit()
def run_it(self, unstable_add, expect_status, expect_excuses={}):
'''Run britney with some unstable packages and verify excuses.
@ -181,6 +279,29 @@ class AT(TestAutopkgtestBase):
# Tests for generic packages
################################################################
def test_fail_on_missing_database(self):
'''Fails if autopkgtest.db is requested but not available'''
os.unlink(self.db_path)
self.data.add_default_packages(lightgreen=False)
britney_failed = 0
try:
self.run_it(
# uninstallable unstable version
[('lightgreen', {'Version': '1.1~beta', 'Depends': 'libc6 (>= 0.9), libgreen1 (>= 2)'}, 'autopkgtest')],
{'lightgreen': (False, {})},
{'lightgreen': [('old-version', '1'), ('new-version', '1.1~beta'),
('reason', 'depends'),
('excuses', 'uninstallable on arch amd64, not running autopkgtest there')
]
})[1]
except AssertionError as e:
britney_failed = 1
self.assertEqual(britney_failed, 1, "DB missing but britney succeeded")
def test_no_request_for_uninstallable(self):
'''Does not request a test for an uninstallable package'''
@ -215,7 +336,7 @@ class AT(TestAutopkgtestBase):
self.sourceppa_cache['purple'] = {'2': ''}
# The package has passed before on i386
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/p/purple/20150101_100000@': (0, 'purple 1', tr('purple/1')),
'testing/amd64/p/purple/20150101_100000@': (0, 'purple 1', tr('purple/1')),
'testing/amd64/p/purple/20200101_100000@': (0, 'purple 2', tr('purple/2')),
@ -241,7 +362,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(darkgreen=False)
# The package has failed before, and with a trigger too on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (4, 'green 1'),
'testing/amd64/d/darkgreen/20150101_100000@': (4, 'green 1', tr('failedbefore/1')),
}})
@ -286,7 +407,7 @@ class AT(TestAutopkgtestBase):
# green has passed on amd64 before
# lightgreen has passed on i386, therefore we should block on it returning
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/g/green/20150101_100000@': (0, 'green 4', tr('green/1')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
}})
@ -318,7 +439,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# green has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
}})
@ -361,7 +482,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# green has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
}})
@ -379,7 +500,7 @@ class AT(TestAutopkgtestBase):
self.assertNotIn('brittle', exc['green']['policy_info']['autopkgtest'])
# second run collects the results
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),
@ -423,7 +544,7 @@ class AT(TestAutopkgtestBase):
# third run should not trigger any new tests, should all be in the
# cache
self.swift.set_results({})
self.set_results({})
out = self.run_it(
[],
{'green': (True, {'green/2': {'amd64': 'PASS', 'i386': 'PASS'},
@ -441,7 +562,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# green has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
}})
@ -456,7 +577,7 @@ class AT(TestAutopkgtestBase):
{'green': [('old-version', '1'), ('new-version', '2')]})
# second run collects the results
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
'testing/amd64/l/lightgreen/20150101_100101@': (4, 'lightgreen 1', tr('green/2')),
@ -488,7 +609,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1'),
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1'),
'testing/amd64/l/lightgreen/20150101_100101@': (4, 'lightgreen 1'),
@ -517,7 +638,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
@ -573,7 +694,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),
@ -602,7 +723,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (4, 'lightgreen 1', tr('green/1')),
@ -634,7 +755,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# green has passed before on amd64, doesn't exist on i386
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/g/green64/20150101_100000@': (0, 'green64 0.1', tr('passedbefore/1')),
}})
@ -669,7 +790,7 @@ class AT(TestAutopkgtestBase):
'green': ['amd64', 'i386']}})
# second run collects the results
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),
@ -760,7 +881,7 @@ class AT(TestAutopkgtestBase):
'Conflicts': 'blue'},
testsuite='autopkgtest', add_src=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),
'testing/i386/g/green/20150101_100200@': (0, 'green 2', tr('green/2')),
@ -792,7 +913,7 @@ class AT(TestAutopkgtestBase):
'Conflicts': 'blue'},
testsuite='autopkgtest', add_src=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),
'testing/i386/g/green/20150101_100200@': (0, 'green 2', tr('green/2')),
@ -817,7 +938,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
# old lightgreen fails, thus new green should be held back
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/1.1')),
'testing/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1', tr('green/1.1')),
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('green/1')),
@ -880,7 +1001,7 @@ class AT(TestAutopkgtestBase):
'debci-testing-i386:lightgreen {"triggers": ["lightgreen/2"]}']))
# next run collects the results
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100200@': (0, 'lightgreen 2', tr('lightgreen/2')),
'testing/amd64/l/lightgreen/20150101_102000@': (0, 'lightgreen 2', tr('lightgreen/2')),
}})
@ -905,7 +1026,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('green/2')),
@ -946,7 +1067,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
# old lightgreen fails, thus new green should be held back
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/1.1')),
'testing/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1', tr('green/1.1')),
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('green/1')),
@ -981,7 +1102,7 @@ class AT(TestAutopkgtestBase):
self.assertEqual(self.pending_requests, {})
# lightgreen 2 stays unbuilt in britney, but we get a test result for it
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100200@': (0, 'lightgreen 2', tr('green/1.1')),
'testing/amd64/l/lightgreen/20150101_102000@': (0, 'lightgreen 2', tr('green/1.1')),
}})
@ -1011,7 +1132,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100101@': (0, 'lightgreen 1', tr('lightgreen/1')),
}})
@ -1036,7 +1157,7 @@ class AT(TestAutopkgtestBase):
self.assertEqual(len(self.amqp_requests), 6)
# we only get a result for lightgreen 2, not for the requested 1
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 0.5', tr('green/1')),
@ -1092,7 +1213,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
# green has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
}})
@ -1158,7 +1279,7 @@ class AT(TestAutopkgtestBase):
self.data.add('brown', False, {'Depends': 'grey'}, testsuite='autopkgtest')
self.data.add('brown', True, {'Depends': 'grey'}, testsuite='autopkgtest')
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/b/black/20150101_100000@': (0, 'black 1', tr('black/1')),
'testing/amd64/b/black/20150102_100000@': (99, 'black blacklisted', tr('black/2')),
'testing/amd64/g/grey/20150101_100000@': (99, 'grey blacklisted', tr('grey/1')),
@ -1187,7 +1308,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(black=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/b/black/20150101_100000@': (0, 'black 1', tr('black/1')),
'testing/amd64/b/black/20150102_100000@': (99, 'black blacklisted', tr('black/2')),
'testing/i386/b/black/20150101_100000@': (0, 'black 1', tr('black/1')),
@ -1210,7 +1331,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(black=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/b/black/20150101_100000@': (0, 'black 1', tr('black/1')),
'testing/i386/b/black/20150101_100001@': (0, 'black 1', tr('black/1')),
'testing/amd64/b/black/20150102_100000@': (4, 'black 2', tr('black/2')),
@ -1232,7 +1353,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('newgreen/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('newgreen/2')),
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('newgreen/2')),
@ -1261,7 +1382,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(darkgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('darkgreen/1')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('darkgreen/1')),
}})
@ -1278,7 +1399,7 @@ class AT(TestAutopkgtestBase):
{'darkgreen/2': {'darkgreen': ['amd64', 'i386']}})
# second run gets the results for darkgreen 2
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100010@': (0, 'darkgreen 2', tr('darkgreen/2')),
'testing/amd64/d/darkgreen/20150101_100010@': (0, 'darkgreen 2', tr('darkgreen/2')),
}})
@ -1322,7 +1443,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('green/1')),
'testing/amd64/g/green/20150101_100000@': (0, 'green 1', tr('green/1')),
'testing/i386/g/green/20150101_100010@': (0, 'green 2', tr('green/2')),
@ -1362,7 +1483,7 @@ class AT(TestAutopkgtestBase):
# third run gets the results for green and lightgreen, darkgreen is
# still running
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100020@': (0, 'green 3', tr('green/3')),
'testing/amd64/g/green/20150101_100020@': (0, 'green 3', tr('green/3')),
'testing/i386/l/lightgreen/20150101_100010@': (0, 'lightgreen 1', tr('green/3')),
@ -1380,7 +1501,7 @@ class AT(TestAutopkgtestBase):
{'green/3': {'darkgreen': ['amd64', 'i386']}})
# fourth run finally gets the new darkgreen result
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100010@': (0, 'darkgreen 1', tr('green/3')),
'testing/amd64/d/darkgreen/20150101_100010@': (0, 'darkgreen 1', tr('green/3')),
}})
@ -1399,7 +1520,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('passedbefore/1')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('passedbefore/1')),
}})
@ -1410,7 +1531,7 @@ class AT(TestAutopkgtestBase):
{'green': (False, {'darkgreen': {'amd64': 'RUNNING', 'i386': 'RUNNING'}})})
# second run: i386 result has version 1.1
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100010@': (0, 'darkgreen 1.1', tr('green/2'))
}})
self.run_it(
@ -1420,7 +1541,7 @@ class AT(TestAutopkgtestBase):
})})
# third run: amd64 result has version 1.2
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/d/darkgreen/20150101_100010@': (0, 'darkgreen 1.2', tr('green/2')),
}})
self.run_it(
@ -1435,7 +1556,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
# one tmpfail result without testpkg-version, should be ignored
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/i386/l/lightgreen/20150101_100101@': (16, None, tr('lightgreen/2')),
'testing/amd64/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('lightgreen/1')),
@ -1449,7 +1570,7 @@ class AT(TestAutopkgtestBase):
{'lightgreen/2': {'lightgreen': ['i386']}})
# one more tmpfail result, should not confuse britney with None version
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100201@': (16, None, tr('lightgreen/2')),
}})
self.run_it(
@ -1466,7 +1587,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# first run fails
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 2', tr('green/1')),
'testing/i386/g/green/20150101_100101@': (4, 'green 2', tr('green/2')),
'testing/amd64/g/green/20150101_100000@': (0, 'green 2', tr('green/1')),
@ -1490,7 +1611,7 @@ class AT(TestAutopkgtestBase):
# re-running test manually succeeded (note: darkgreen result should be
# cached already)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100201@': (0, 'green 2', tr('green/2')),
'testing/amd64/g/green/20150101_100201@': (0, 'green 2', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100201@': (0, 'lightgreen 1', tr('green/2')),
@ -1517,7 +1638,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(libc6=False)
# new libc6 works fine with green
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('libc6/2')),
'testing/amd64/g/green/20150101_100000@': (0, 'green 1', tr('libc6/2')),
}})
@ -1541,7 +1662,7 @@ class AT(TestAutopkgtestBase):
# new green fails; that's not libc6's fault though, so it should stay
# valid
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100100@': (4, 'green 2', tr('green/2')),
'testing/amd64/g/green/20150101_100100@': (4, 'green 2', tr('green/2')),
}})
@ -1563,7 +1684,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100101@': (0, 'green 1', tr('green/1')),
'testing/amd64/g/green/20150101_100101@': (0, 'green 1', tr('green/1')),
'testing/i386/g/green/20150101_100201@': (0, 'green 2', tr('green/2')),
@ -1590,7 +1711,7 @@ class AT(TestAutopkgtestBase):
# green
self.data.remove_all(True)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
# add new result for lightgreen 1
'testing/i386/l/lightgreen/20150101_100301@': (0, 'lightgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150101_100301@': (0, 'lightgreen 1', tr('green/2')),
@ -1626,7 +1747,7 @@ class AT(TestAutopkgtestBase):
# # self.data.add_default_packages(lightgreen=False)
# #
# # # lightgreen has passed before on i386 only, therefore ALWAYSFAIL on amd64
# # self.swift.set_results({'autopkgtest-testing': {
# # self.set_results({'autopkgtest-testing': {
# # 'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('passedbefore/1')),
# # }})
# #
@ -1686,7 +1807,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/r/rainbow/20150101_100000@': (0, 'rainbow 1', tr('passedbefore/1')),
}})
@ -1734,7 +1855,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
@ -1762,7 +1883,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
@ -1805,7 +1926,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
@ -1847,7 +1968,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
@ -1888,7 +2009,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
@ -1917,7 +2038,7 @@ class AT(TestAutopkgtestBase):
self.create_hint('autopkgtest', 'force-skiptest green/2')
# regression of green, darkgreen ok, lightgreen running
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
'testing/i386/g/green/20150101_100200@': (4, 'green 2', tr('green/2')),
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
@ -1941,7 +2062,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# green has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
}})
@ -1964,7 +2085,7 @@ class AT(TestAutopkgtestBase):
self.create_hint('freeze', 'block-all source')
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('passedbefore/1')),
'testing/amd64/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('passedbefore/1')),
}})
@ -1974,7 +2095,7 @@ class AT(TestAutopkgtestBase):
{'lightgreen': (False, {'lightgreen': {'amd64': 'RUNNING', 'i386': 'RUNNING'}})}
)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 2', tr('lightgreen/2')),
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 2', tr('lightgreen/2')),
}})
@ -1990,7 +2111,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150101_100101@': (4, 'lightgreen 2', tr('lightgreen/2')),
}})
@ -2011,7 +2132,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150101_100101@': (4, 'lightgreen 2', tr('lightgreen/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('lightgreen/1')),
@ -2034,7 +2155,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100100@': (4, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150102_100101@': (0, 'lightgreen 2', tr('lightgreen/2')),
}})
@ -2055,7 +2176,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100100@': (4, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150102_100101@': (0, 'lightgreen 2', tr('lightgreen/2')),
'testing/amd64/l/lightgreen/20150103_100101@': (4, 'lightgreen 3', tr('lightgreen/3')),
@ -2077,7 +2198,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100100@': (4, 'lightgreen 0.1', tr('lightgreen/0.1')),
'testing/amd64/l/lightgreen/20150102_100101@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150103_100101@': (4, 'lightgreen 1', tr('green/2')),
@ -2099,7 +2220,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150102_100100@': (4, 'lightgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150103_100101@': (0, 'lightgreen 2', tr('lightgreen/2')),
@ -2151,7 +2272,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100101@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150102_100101@': (4, 'lightgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150103_100102@': (0, 'lightgreen 2', tr('lightgreen/2')),
@ -2179,7 +2300,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False, lightgreen=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lightgreen/20150101_100101@': (0, 'lightgreen 1', tr('lightgreen/1')),
'testing/amd64/l/lightgreen/20150102_100101@': (0, 'lightgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150103_100102@': (0, 'lightgreen 2', tr('lightgreen/2')),
@ -2212,7 +2333,7 @@ class AT(TestAutopkgtestBase):
self.data.add('dkms', False, {})
self.data.add('fancy-dkms', False, {'Source': 'fancy', 'Depends': 'dkms (>= 1)'}, testsuite='autopkgtest-pkg-dkms')
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/f/fancy/20150101_100101@': (0, 'fancy 0.1', tr('passedbefore/1'))
}})
@ -2260,7 +2381,7 @@ class AT(TestAutopkgtestBase):
# works against linux-meta and -64only, fails against grumpy i386, no
# result yet for grumpy amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/f/fancy/20150101_100301@': (0, 'fancy 0.5', tr('passedbefore/1')),
'testing/i386/f/fancy/20150101_100101@': (0, 'fancy 1', tr('linux-meta/1')),
'testing/amd64/f/fancy/20150101_100101@': (0, 'fancy 1', tr('linux-meta/1')),
@ -2289,7 +2410,7 @@ class AT(TestAutopkgtestBase):
# works against linux-meta and -64only, fails against grumpy i386, no
# result yet for grumpy amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
# old results without trigger info
'testing/i386/f/fancy/20140101_100101@': (0, 'fancy 1', {}),
'testing/amd64/f/fancy/20140101_100101@': (8, 'fancy 1', {}),
@ -2331,7 +2452,7 @@ class AT(TestAutopkgtestBase):
self.data.add('linux-libc-dev', False, {'Source': 'linux'}, testsuite='autopkgtest')
self.data.add('linux-image', False, {'Source': 'linux-meta', 'Depends': 'linux-image-1'})
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/amd64/l/lxc/20150101_100101@': (0, 'lxc 0.1', tr('passedbefore/1'))
}})
@ -2365,7 +2486,7 @@ class AT(TestAutopkgtestBase):
self.data.add('linux-image-1', False, {'Source': 'linux'}, testsuite='autopkgtest')
self.data.add('linux-firmware', False, {'Source': 'linux-firmware'}, testsuite='autopkgtest')
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/f/fancy/20150101_090000@': (0, 'fancy 0.5', tr('passedbefore/1')),
'testing/i386/l/linux/20150101_100000@': (0, 'linux 2', tr('linux-meta/0.2')),
'testing/amd64/l/linux/20150101_100000@': (0, 'linux 2', tr('linux-meta/0.2')),
@ -2392,7 +2513,7 @@ class AT(TestAutopkgtestBase):
)
# now linux-meta is ready to go
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/f/fancy/20150101_100000@': (0, 'fancy 1', tr('linux-meta/0.2')),
'testing/amd64/f/fancy/20150101_100000@': (0, 'fancy 1', tr('linux-meta/0.2')),
}})
@ -2419,7 +2540,7 @@ class AT(TestAutopkgtestBase):
self.data.add('notme', False, {'Depends': 'libgcc1'}, testsuite='autopkgtest')
# binutils has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/b/binutils/20150101_100000@': (0, 'binutils 1', tr('passedbefore/1')),
}})
@ -2435,7 +2556,7 @@ class AT(TestAutopkgtestBase):
self.data.add('gcc-7', False, {}, testsuite='autopkgtest')
# gcc-7 has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-series': {
self.set_results({'autopkgtest-series': {
'series/i386/g/gcc-7/20150101_100000@': (0, 'gcc-7 1', tr('passedbefore/1')),
}})
@ -2510,7 +2631,7 @@ class AT(TestAutopkgtestBase):
self.assertEqual(len(self.amqp_requests), 2)
# add results to PPA specific swift container
self.swift.set_results({'autopkgtest-testing-awesome-developers-staging': {
self.set_results({'autopkgtest-testing-awesome-developers-staging': {
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1', tr('passedbefore/1')),
'testing/i386/l/lightgreen/20150101_100100@': (4, 'lightgreen 2', tr('lightgreen/2')),
'testing/amd64/l/lightgreen/20150101_100101@': (0, 'lightgreen 2', tr('lightgreen/2')),
@ -2574,7 +2695,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(lightgreen=False)
# first run to create autopkgtest-results.cache
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 2', tr('lightgreen/2')),
'testing/amd64/l/lightgreen/20150101_100000@': (0, 'lightgreen 2', tr('lightgreen/2')),
}})
@ -2599,7 +2720,7 @@ class AT(TestAutopkgtestBase):
sys.stdout.write(line)
# second run, should now not update cache
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 3', tr('lightgreen/3')),
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 3', tr('lightgreen/3')),
}})
@ -2714,7 +2835,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
# green has passed before on i386 only, therefore ALWAYSFAIL on amd64
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/g/green/20150101_100000@': (0, 'green 1', tr('passedbefore/1')),
}})
@ -2732,7 +2853,7 @@ class AT(TestAutopkgtestBase):
self.assertEqual(exc['green']['policy_info']['age']['age-requirement'], 40)
# second run collects the results
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
'testing/amd64/l/lightgreen/20150101_100101@': (4, 'lightgreen 1', tr('green/2')),
@ -2784,7 +2905,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/1')),
'testing/amd64/l/lightgreen/20150101_100101@': (4, 'lightgreen 1', tr('green/2')),
@ -2819,7 +2940,7 @@ class AT(TestAutopkgtestBase):
self.data.add_default_packages(green=False)
self.swift.set_results({'autopkgtest-testing': {
self.set_results({'autopkgtest-testing': {
'testing/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/amd64/d/darkgreen/20150101_100000@': (0, 'darkgreen 1', tr('green/2')),
'testing/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 1', tr('green/2')),

Loading…
Cancel
Save