~raharper/curtin/new-bionic-upstream-snapshot-v2

« back to all changes in this revision

Viewing changes to tests/vmtests/helpers.py

  • Committer: Scott Moser
  • Date: 2016-12-02 02:05:28 UTC
  • mfrom: (1.1.42)
  • Revision ID: smoser@ubuntu.com-20161202020528-qnwvmrom09tjjhzk
* New upstream snapshot.
  - pep8: fix pep8 errors found with 'make pep8' on zesty.
  - Workaround failures caused by gpg2 daemons left running in chroot.
    (LP: #1645680)
  - Install u-boot-tools when running on a system with u-boot.
    (LP: #1640519)
  - block: fix partition kname for raid devices  (LP: #1641661)
  - Fix up tox errors that slipped in and new pycodestyle 2.1.0 complaints.
  - vmtests: adjust vmtest image sync metadata filenames
  - vmtests: Add centos support
  - Disable WilyTestRaid5Bcache vmtest
  - tools/xkvm: fix --netdev=<bridge>
  - bytes2human: fix for values larger than 32 bit int on 32 bit python2.

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
 
68
68
        return 0
69
69
 
 
70
 
70
71
try:
71
72
    TimeoutExpired = subprocess.TimeoutExpired
72
73
except AttributeError:
99
100
    return Command(cmd, signal).run(**kwargs)
100
101
 
101
102
 
102
 
def find_releases():
103
 
    """Return a sorted list of releases defined in test cases."""
104
 
    # Use the TestLoader to load all tests cases defined within
105
 
    # tests/vmtests/ and figure out which releases they are testing.
 
103
def find_releases_by_distro():
 
104
    """
 
105
    Returns a dictionary of distros and the distro releases that will be tested
 
106
    """
 
107
    # Use the TestLoder to load all test cases defined within tests/vmtests/
 
108
    # and figure out what distros and releases they are testing. Any tests
 
109
    # which are disabled will be excluded.
106
110
    loader = TestLoader()
107
111
    # dir with the vmtest modules (i.e. tests/vmtests/)
108
112
    tests_dir = os.path.dirname(__file__)
110
114
    root_dir = os.path.split(os.path.split(tests_dir)[0])[0]
111
115
    # Find all test modules defined in curtin/tests/vmtests/
112
116
    module_test_suites = loader.discover(tests_dir, top_level_dir=root_dir)
113
 
    releases = set()
 
117
    # find all distros and releases tested for each distro
 
118
    distros = {}
114
119
    for mts in module_test_suites:
115
120
        for class_test_suite in mts:
116
121
            for test_case in class_test_suite:
117
 
                if getattr(test_case, 'release', ''):
118
 
                    releases.add(getattr(test_case, 'release'))
119
 
    return sorted(releases)
 
122
                # skip disabled tests
 
123
                if not getattr(test_case, '__test__', False):
 
124
                    continue
 
125
                for (dist, rel) in (
 
126
                        (getattr(test_case, a, None) for a in attrs)
 
127
                        for attrs in (('distro', 'release'),
 
128
                                      ('target_distro', 'target_release'))):
 
129
                    if dist and rel:
 
130
                        distros[dist] = distros.get(dist, set()).union((rel,))
 
131
    return {k: sorted(v) for (k, v) in distros.items()}
120
132
 
121
133
 
122
134
def _parse_ip_a(ip_a):