mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-02-23 11:21:13 +00:00
Merge branch 'adt-results-from-swift'
This commit is contained in:
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…
x
Reference in New Issue
Block a user