Merge ~raharper/curtin:feature/add-focal into curtin:master

Proposed by Ryan Harper
Status: Merged
Approved by: Ryan Harper
Approved revision: 00bd9b1aba710b1fd3b9414f3536e0c8c1c56dca
Merge reported by: Server Team CI bot
Merged at revision: not available
Proposed branch: ~raharper/curtin:feature/add-focal
Merge into: curtin:master
Diff against target: 945 lines (+310/-37)
38 files modified
tests/vmtests/releases.py (+23/-0)
tests/vmtests/test_apt_config_cmd.py (+1/-4)
tests/vmtests/test_basic.py (+24/-0)
tests/vmtests/test_basic_dasd.py (+8/-10)
tests/vmtests/test_bcache_basic.py (+5/-0)
tests/vmtests/test_bcache_bug1718699.py (+5/-0)
tests/vmtests/test_bcache_ceph.py (+8/-0)
tests/vmtests/test_bcache_partitions.py (+5/-0)
tests/vmtests/test_fs_battery.py (+5/-0)
tests/vmtests/test_iscsi.py (+5/-0)
tests/vmtests/test_journald_reporter.py (+5/-4)
tests/vmtests/test_lvm.py (+5/-0)
tests/vmtests/test_lvm_iscsi.py (+5/-0)
tests/vmtests/test_lvm_raid.py (+4/-0)
tests/vmtests/test_lvm_root.py (+16/-1)
tests/vmtests/test_mdadm_bcache.py (+35/-0)
tests/vmtests/test_mdadm_iscsi.py (+5/-0)
tests/vmtests/test_multipath.py (+5/-0)
tests/vmtests/test_network.py (+4/-0)
tests/vmtests/test_network_alias.py (+5/-0)
tests/vmtests/test_network_bonding.py (+4/-0)
tests/vmtests/test_network_bridging.py (+4/-0)
tests/vmtests/test_network_ipv6_static.py (+4/-0)
tests/vmtests/test_network_ipv6_vlan.py (+5/-1)
tests/vmtests/test_network_mtu.py (+8/-3)
tests/vmtests/test_network_static.py (+4/-0)
tests/vmtests/test_network_static_routes.py (+5/-0)
tests/vmtests/test_network_vlan.py (+9/-1)
tests/vmtests/test_nvme.py (+5/-0)
tests/vmtests/test_pollinate_useragent.py (+5/-0)
tests/vmtests/test_preserve.py (+5/-0)
tests/vmtests/test_preserve_raid.py (+5/-0)
tests/vmtests/test_raid5_bcache.py (+5/-0)
tests/vmtests/test_reuse_raid_member.py (+12/-11)
tests/vmtests/test_simple.py (+16/-1)
tests/vmtests/test_uefi_basic.py (+10/-0)
tests/vmtests/test_zfsroot.py (+14/-0)
tools/vmtest-filter (+12/-1)
Reviewer Review Type Date Requested Status
Server Team CI bot continuous-integration Approve
Paride Legovini Approve
Dan Watkins (community) Needs Information
Review via email: mp+375630@code.launchpad.net

Commit message

vmtests: Add Focal Fossa

- Add the new release
- Switch some old Cosmic cases to Disco
- Add CentosXXFromFocal relbase
- Bump Skip-by dates for lvmroot, MTU and VLAN issues

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Needs Fixing (continuous-integration)
~raharper/curtin:feature/add-focal updated
37ff035... by Ryan Harper

Focal systemd still pads vlan mtu by 4 bytes, skip it

Revision history for this message
Dan Watkins (oddbloke) wrote :

Qs inline

review: Needs Information
Revision history for this message
Ryan Harper (raharper) wrote :

Thanks Dan,

I'll update with some fixes.

~raharper/curtin:feature/add-focal updated
17c3e1d... by Ryan Harper

Fix tox

1a5c276... by Ryan Harper

Add a netplan.yaml check back into dasd test

7fa766f... by Ryan Harper

fix style whitespace

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Paride Legovini (paride) wrote :

Looks good!

review: Approve
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
~raharper/curtin:feature/add-focal updated
00bd9b1... by Ryan Harper

Move skip_by date for vlan bug out since we're already past the date and it's not fixed

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/tests/vmtests/releases.py b/tests/vmtests/releases.py
2index df2863f..bf8be2f 100644
3--- a/tests/vmtests/releases.py
4+++ b/tests/vmtests/releases.py
5@@ -45,6 +45,13 @@ class _Centos70FromBionicBase(_CentosFromUbuntuBase):
6 target_release = "centos70"
7
8
9+class _Centos70FromFocalBase(_CentosFromUbuntuBase):
10+ # release for boot
11+ release = "focal"
12+ # release for target
13+ target_release = "centos70"
14+
15+
16 class _UbuntuCore16FromXenialBase(_UbuntuCoreUbuntuBase):
17 # release for boot
18 release = "xenial"
19@@ -63,6 +70,11 @@ class _Centos66FromBionicBase(_CentosFromUbuntuBase):
20 target_release = "centos66"
21
22
23+class _Centos66FromFocalBase(_CentosFromUbuntuBase):
24+ release = "focal"
25+ target_release = "centos66"
26+
27+
28 class _PreciseBase(_UbuntuBase):
29 release = "xenial"
30 target_release = "precise"
31@@ -150,6 +162,14 @@ class _EoanBase(_UbuntuBase):
32 subarch = "ga-19.10"
33
34
35+class _FocalBase(_UbuntuBase):
36+ release = "focal"
37+ target_release = "focal"
38+ mem = "2048"
39+ if _UbuntuBase.arch == "arm64":
40+ subarch = "ga-20.04"
41+
42+
43 class _Releases(object):
44 trusty = _TrustyBase
45 precise = _PreciseBase
46@@ -167,6 +187,7 @@ class _Releases(object):
47 cosmic = _CosmicBase
48 disco = _DiscoBase
49 eoan = _EoanBase
50+ focal = _FocalBase
51
52
53 class _CentosReleases(object):
54@@ -174,6 +195,8 @@ class _CentosReleases(object):
55 centos66_xenial = _Centos66FromXenialBase
56 centos70_bionic = _Centos70FromBionicBase
57 centos66_bionic = _Centos66FromBionicBase
58+ centos70_focal = _Centos70FromFocalBase
59+ centos66_focal = _Centos66FromFocalBase
60
61
62 class _UbuntuCoreReleases(object):
63diff --git a/tests/vmtests/test_apt_config_cmd.py b/tests/vmtests/test_apt_config_cmd.py
64index 55677d9..4e43882 100644
65--- a/tests/vmtests/test_apt_config_cmd.py
66+++ b/tests/vmtests/test_apt_config_cmd.py
67@@ -64,11 +64,8 @@ class BionicTestAptConfigCMDCMD(relbase.bionic, TestAptConfigCMD):
68 __test__ = True
69
70
71-class DiscoTestAptConfigCMDCMD(relbase.disco, TestAptConfigCMD):
72+class FocalTestAptConfigCMDCMD(relbase.focal, TestAptConfigCMD):
73 __test__ = True
74
75
76-class EoanTestAptConfigCMDCMD(relbase.eoan, TestAptConfigCMD):
77- __test__ = True
78-
79 # vi: ts=4 expandtab syntax=python
80diff --git a/tests/vmtests/test_basic.py b/tests/vmtests/test_basic.py
81index 8895a5e..c15fe8c 100644
82--- a/tests/vmtests/test_basic.py
83+++ b/tests/vmtests/test_basic.py
84@@ -260,6 +260,11 @@ class Centos70BionicTestBasic(centos_relbase.centos70_bionic,
85 __test__ = True
86
87
88+class Centos70FocalTestBasic(centos_relbase.centos70_focal,
89+ CentosTestBasicAbs):
90+ __test__ = True
91+
92+
93 class Centos66XenialTestBasic(centos_relbase.centos66_xenial,
94 CentosTestBasicAbs):
95 __test__ = True
96@@ -303,6 +308,10 @@ class EoanTestBasic(relbase.eoan, TestBasicAbs):
97 __test__ = True
98
99
100+class FocalTestBasic(relbase.focal, TestBasicAbs):
101+ __test__ = True
102+
103+
104 class TestBasicScsiAbs(TestBasicAbs):
105 conf_file = "examples/tests/basic_scsi.yaml"
106 disk_driver = 'scsi-hd'
107@@ -388,6 +397,16 @@ class Centos70XenialTestScsiBasic(centos_relbase.centos70_xenial,
108 __test__ = True
109
110
111+class Centos70BionicTestScsiBasic(centos_relbase.centos70_bionic,
112+ TestBasicScsiAbs, CentosTestBasicAbs):
113+ __test__ = True
114+
115+
116+class Centos70FocalTestScsiBasic(centos_relbase.centos70_focal,
117+ TestBasicScsiAbs, CentosTestBasicAbs):
118+ __test__ = True
119+
120+
121 class XenialGATestScsiBasic(relbase.xenial_ga, TestBasicScsiAbs):
122 __test__ = True
123
124@@ -411,4 +430,9 @@ class DiscoTestScsiBasic(relbase.disco, TestBasicScsiAbs):
125 class EoanTestScsiBasic(relbase.eoan, TestBasicScsiAbs):
126 __test__ = True
127
128+
129+class FocalTestScsiBasic(relbase.focal, TestBasicScsiAbs):
130+ __test__ = True
131+
132+
133 # vi: ts=4 expandtab syntax=python
134diff --git a/tests/vmtests/test_basic_dasd.py b/tests/vmtests/test_basic_dasd.py
135index 9b200e2..8079edd 100644
136--- a/tests/vmtests/test_basic_dasd.py
137+++ b/tests/vmtests/test_basic_dasd.py
138@@ -38,8 +38,10 @@ class TestBasicDasd(VMBaseClass):
139 """)]
140
141 def test_output_files_exist(self):
142- self.output_files_exist(["sfdisk_list", "blkid",
143- "proc_partitions"])
144+ files_to_check = ["sfdisk_list", "blkid", "proc_partitions"]
145+ if self.target_release != "xenial":
146+ files_to_check.append('netplan.yaml')
147+ self.output_files_exist(files_to_check)
148
149
150 class XenialGATestBasicDasd(relbase.xenial, TestBasicDasd):
151@@ -49,21 +51,17 @@ class XenialGATestBasicDasd(relbase.xenial, TestBasicDasd):
152 class BionicTestBasicDasd(relbase.bionic, TestBasicDasd):
153 __test__ = True
154
155- def test_output_files_exist(self):
156- self.output_files_exist(["netplan.yaml"])
157-
158
159 class DiscoTestBasicDasd(relbase.disco, TestBasicDasd):
160 __test__ = True
161
162- def test_output_files_exist(self):
163- self.output_files_exist(["netplan.yaml"])
164-
165
166 class EoanTestBasicDasd(relbase.eoan, TestBasicDasd):
167 __test__ = True
168
169- def test_output_files_exist(self):
170- self.output_files_exist(["netplan.yaml"])
171+
172+class FocalTestBasicDasd(relbase.focal, TestBasicDasd):
173+ __test__ = True
174+
175
176 # vi: ts=4 expandtab syntax=python
177diff --git a/tests/vmtests/test_bcache_basic.py b/tests/vmtests/test_bcache_basic.py
178index a8ce1fd..bf77381 100644
179--- a/tests/vmtests/test_bcache_basic.py
180+++ b/tests/vmtests/test_bcache_basic.py
181@@ -71,4 +71,9 @@ class DiscoBcacheBasic(relbase.disco, TestBcacheBasic):
182 class EoanBcacheBasic(relbase.eoan, TestBcacheBasic):
183 __test__ = True
184
185+
186+class FocalBcacheBasic(relbase.focal, TestBcacheBasic):
187+ __test__ = True
188+
189+
190 # vi: ts=4 expandtab syntax=python
191diff --git a/tests/vmtests/test_bcache_bug1718699.py b/tests/vmtests/test_bcache_bug1718699.py
192index b42a943..f4937ab 100644
193--- a/tests/vmtests/test_bcache_bug1718699.py
194+++ b/tests/vmtests/test_bcache_bug1718699.py
195@@ -26,4 +26,9 @@ class DiscoTestBcacheBug1718699(relbase.disco, TestBcacheBug1718699):
196 class EoanTestBcacheBug1718699(relbase.eoan, TestBcacheBug1718699):
197 __test__ = True
198
199+
200+class FocalTestBcacheBug1718699(relbase.focal, TestBcacheBug1718699):
201+ __test__ = True
202+
203+
204 # vi: ts=4 expandtab syntax=python
205diff --git a/tests/vmtests/test_bcache_ceph.py b/tests/vmtests/test_bcache_ceph.py
206index 07d9bca..f94a8b0 100644
207--- a/tests/vmtests/test_bcache_ceph.py
208+++ b/tests/vmtests/test_bcache_ceph.py
209@@ -83,6 +83,10 @@ class EoanTestBcacheCeph(relbase.eoan, TestBcacheCeph):
210 __test__ = True
211
212
213+class FocalTestBcacheCeph(relbase.focal, TestBcacheCeph):
214+ __test__ = True
215+
216+
217 class TestBcacheCephLvm(TestBcacheCeph):
218 test_type = 'storage'
219 nr_cpus = 2
220@@ -105,4 +109,8 @@ class BionicTestBcacheCephLvm(relbase.bionic, TestBcacheCephLvm):
221 __test__ = True
222
223
224+class FocalTestBcacheCephLvm(relbase.focal, TestBcacheCephLvm):
225+ __test__ = True
226+
227+
228 # vi: ts=4 expandtab syntax=python
229diff --git a/tests/vmtests/test_bcache_partitions.py b/tests/vmtests/test_bcache_partitions.py
230index 161ca07..faa23a0 100644
231--- a/tests/vmtests/test_bcache_partitions.py
232+++ b/tests/vmtests/test_bcache_partitions.py
233@@ -32,4 +32,9 @@ class DiscoTestBcachePartitions(relbase.disco, TestBcachePartitions):
234 class EoanTestBcachePartitions(relbase.eoan, TestBcachePartitions):
235 __test__ = True
236
237+
238+class FocalTestBcachePartitions(relbase.focal, TestBcachePartitions):
239+ __test__ = True
240+
241+
242 # vi: ts=4 expandtab syntax=python
243diff --git a/tests/vmtests/test_fs_battery.py b/tests/vmtests/test_fs_battery.py
244index 9b16fe9..58eb441 100644
245--- a/tests/vmtests/test_fs_battery.py
246+++ b/tests/vmtests/test_fs_battery.py
247@@ -238,4 +238,9 @@ class DiscoTestFsBattery(relbase.disco, TestFsBattery):
248 class EoanTestFsBattery(relbase.eoan, TestFsBattery):
249 __test__ = True
250
251+
252+class FocalTestFsBattery(relbase.focal, TestFsBattery):
253+ __test__ = True
254+
255+
256 # vi: ts=4 expandtab syntax=python
257diff --git a/tests/vmtests/test_iscsi.py b/tests/vmtests/test_iscsi.py
258index e8bcb46..c47f100 100644
259--- a/tests/vmtests/test_iscsi.py
260+++ b/tests/vmtests/test_iscsi.py
261@@ -78,4 +78,9 @@ class DiscoTestIscsiBasic(relbase.disco, TestBasicIscsiAbs):
262 class EoanTestIscsiBasic(relbase.eoan, TestBasicIscsiAbs):
263 __test__ = True
264
265+
266+class FocalTestIscsiBasic(relbase.focal, TestBasicIscsiAbs):
267+ __test__ = True
268+
269+
270 # vi: ts=4 expandtab syntax=python
271diff --git a/tests/vmtests/test_journald_reporter.py b/tests/vmtests/test_journald_reporter.py
272index 36e3fb0..de060d5 100644
273--- a/tests/vmtests/test_journald_reporter.py
274+++ b/tests/vmtests/test_journald_reporter.py
275@@ -28,10 +28,6 @@ class TestJournaldReporter(VMBaseClass):
276 self.assertIn(key, e1)
277
278
279-class XenialTestJournaldReporter(relbase.xenial, TestJournaldReporter):
280- __test__ = True
281-
282-
283 class BionicTestJournaldReporter(relbase.bionic, TestJournaldReporter):
284 __test__ = True
285
286@@ -43,4 +39,9 @@ class DiscoTestJournaldReporter(relbase.disco, TestJournaldReporter):
287 class EoanTestJournaldReporter(relbase.eoan, TestJournaldReporter):
288 __test__ = True
289
290+
291+class FocalTestJournaldReporter(relbase.focal, TestJournaldReporter):
292+ __test__ = True
293+
294+
295 # vi: ts=4 expandtab syntax=python
296diff --git a/tests/vmtests/test_lvm.py b/tests/vmtests/test_lvm.py
297index e95d767..9a48b43 100644
298--- a/tests/vmtests/test_lvm.py
299+++ b/tests/vmtests/test_lvm.py
300@@ -92,4 +92,9 @@ class DiscoTestLvm(relbase.disco, TestLvmAbs):
301 class EoanTestLvm(relbase.eoan, TestLvmAbs):
302 __test__ = True
303
304+
305+class FocalTestLvm(relbase.focal, TestLvmAbs):
306+ __test__ = True
307+
308+
309 # vi: ts=4 expandtab syntax=python
310diff --git a/tests/vmtests/test_lvm_iscsi.py b/tests/vmtests/test_lvm_iscsi.py
311index 96f78b6..5578d22 100644
312--- a/tests/vmtests/test_lvm_iscsi.py
313+++ b/tests/vmtests/test_lvm_iscsi.py
314@@ -92,4 +92,9 @@ class DiscoTestIscsiLvm(relbase.disco, TestLvmIscsiAbs):
315 class EoanTestIscsiLvm(relbase.eoan, TestLvmIscsiAbs):
316 __test__ = True
317
318+
319+class FocalTestIscsiLvm(relbase.focal, TestLvmIscsiAbs):
320+ __test__ = True
321+
322+
323 # vi: ts=4 expandtab syntax=python
324diff --git a/tests/vmtests/test_lvm_raid.py b/tests/vmtests/test_lvm_raid.py
325index c0ac6e8..24c2765 100644
326--- a/tests/vmtests/test_lvm_raid.py
327+++ b/tests/vmtests/test_lvm_raid.py
328@@ -43,6 +43,10 @@ class TestLvmOverRaidAbs(TestMdadmAbs, TestLvmAbs):
329 return self._test_pvs(dname_to_vg)
330
331
332+class FocalTestLvmOverRaid(relbase.focal, TestLvmOverRaidAbs):
333+ __test__ = True
334+
335+
336 class EoanTestLvmOverRaid(relbase.eoan, TestLvmOverRaidAbs):
337 __test__ = True
338
339diff --git a/tests/vmtests/test_lvm_root.py b/tests/vmtests/test_lvm_root.py
340index 33deeac..e49a18c 100644
341--- a/tests/vmtests/test_lvm_root.py
342+++ b/tests/vmtests/test_lvm_root.py
343@@ -84,6 +84,13 @@ class XenialTestLvmRootExt4(relbase.xenial, TestLvmRootAbs):
344 }
345
346
347+class FocalTestLvmRootExt4(relbase.focal, TestLvmRootAbs):
348+ __test__ = True
349+ conf_replace = {
350+ '__ROOTFS_FORMAT__': 'ext4',
351+ }
352+
353+
354 class XenialTestLvmRootXfs(relbase.xenial, TestLvmRootAbs):
355 __test__ = True
356 conf_replace = {
357@@ -122,6 +129,14 @@ class XenialTestUefiLvmRootExt4(relbase.xenial, TestUefiLvmRootAbs):
358 }
359
360
361+class FocalTestUefiLvmRootExt4(relbase.focal, TestUefiLvmRootAbs):
362+ __test__ = True
363+ conf_replace = {
364+ '__BOOTFS_FORMAT__': 'ext4',
365+ '__ROOTFS_FORMAT__': 'ext4',
366+ }
367+
368+
369 class XenialTestUefiLvmRootXfs(relbase.xenial, TestUefiLvmRootAbs):
370 __test__ = True
371 conf_replace = {
372@@ -130,7 +145,7 @@ class XenialTestUefiLvmRootXfs(relbase.xenial, TestUefiLvmRootAbs):
373 }
374
375
376-@VMBaseClass.skip_by_date("1652822", fixby="2019-06-01", install=False)
377+@VMBaseClass.skip_by_date("1652822", fixby="2020-06-01", install=False)
378 class XenialTestUefiLvmRootXfsBootXfs(relbase.xenial, TestUefiLvmRootAbs):
379 """This tests xfs root and xfs boot with uefi.
380
381diff --git a/tests/vmtests/test_mdadm_bcache.py b/tests/vmtests/test_mdadm_bcache.py
382index 1c2396b..ba9d174 100644
383--- a/tests/vmtests/test_mdadm_bcache.py
384+++ b/tests/vmtests/test_mdadm_bcache.py
385@@ -151,6 +151,10 @@ class EoanTestMdadmBcache(relbase.eoan, TestMdadmBcacheAbs):
386 __test__ = True
387
388
389+class FocalTestMdadmBcache(relbase.focal, TestMdadmBcacheAbs):
390+ __test__ = True
391+
392+
393 class TestMirrorbootAbs(TestMdadmAbs):
394 # alternative config for more complex setup
395 conf_file = "examples/tests/mirrorboot.yaml"
396@@ -191,6 +195,10 @@ class EoanTestMirrorboot(relbase.eoan, TestMirrorbootAbs):
397 __test__ = True
398
399
400+class FocalTestMirrorboot(relbase.focal, TestMirrorbootAbs):
401+ __test__ = True
402+
403+
404 class TestMirrorbootPartitionsAbs(TestMdadmAbs):
405 # alternative config for more complex setup
406 conf_file = "examples/tests/mirrorboot-msdos-partition.yaml"
407@@ -236,6 +244,11 @@ class EoanTestMirrorbootPartitions(relbase.eoan,
408 __test__ = True
409
410
411+class FocalTestMirrorbootPartitions(relbase.focal,
412+ TestMirrorbootPartitionsAbs):
413+ __test__ = True
414+
415+
416 class TestMirrorbootPartitionsUEFIAbs(TestMdadmAbs):
417 # alternative config for more complex setup
418 conf_file = "examples/tests/mirrorboot-uefi.yaml"
419@@ -286,6 +299,11 @@ class EoanTestMirrorbootPartitionsUEFI(relbase.eoan,
420 __test__ = True
421
422
423+class FocalTestMirrorbootPartitionsUEFI(relbase.focal,
424+ TestMirrorbootPartitionsUEFIAbs):
425+ __test__ = True
426+
427+
428 class TestRaid5bootAbs(TestMdadmAbs):
429 # alternative config for more complex setup
430 conf_file = "examples/tests/raid5boot.yaml"
431@@ -326,6 +344,10 @@ class EoanTestRaid5boot(relbase.eoan, TestRaid5bootAbs):
432 __test__ = True
433
434
435+class FocalTestRaid5boot(relbase.focal, TestRaid5bootAbs):
436+ __test__ = True
437+
438+
439 class TestRaid6bootAbs(TestMdadmAbs):
440 # alternative config for more complex setup
441 conf_file = "examples/tests/raid6boot.yaml"
442@@ -382,6 +404,10 @@ class EoanTestRaid6boot(relbase.eoan, TestRaid6bootAbs):
443 __test__ = True
444
445
446+class FocalTestRaid6boot(relbase.focal, TestRaid6bootAbs):
447+ __test__ = True
448+
449+
450 class TestRaid10bootAbs(TestMdadmAbs):
451 # alternative config for more complex setup
452 conf_file = "examples/tests/raid10boot.yaml"
453@@ -424,6 +450,10 @@ class EoanTestRaid10boot(relbase.eoan, TestRaid10bootAbs):
454 __test__ = True
455
456
457+class FocalTestRaid10boot(relbase.focal, TestRaid10bootAbs):
458+ __test__ = True
459+
460+
461 class TestAllindataAbs(TestMdadmAbs):
462 # more complex, needs more time
463 # alternative config for more complex setup
464@@ -523,4 +553,9 @@ class DiscoTestAllindata(relbase.disco, TestAllindataAbs):
465 class EoanTestAllindata(relbase.eoan, TestAllindataAbs):
466 __test__ = True
467
468+
469+class FocalTestAllindata(relbase.focal, TestAllindataAbs):
470+ __test__ = True
471+
472+
473 # vi: ts=4 expandtab syntax=python
474diff --git a/tests/vmtests/test_mdadm_iscsi.py b/tests/vmtests/test_mdadm_iscsi.py
475index cd465c7..c0e6989 100644
476--- a/tests/vmtests/test_mdadm_iscsi.py
477+++ b/tests/vmtests/test_mdadm_iscsi.py
478@@ -57,4 +57,9 @@ class DiscoTestIscsiMdadm(relbase.disco, TestMdadmIscsiAbs):
479 class EoanTestIscsiMdadm(relbase.eoan, TestMdadmIscsiAbs):
480 __test__ = True
481
482+
483+class FocalTestIscsiMdadm(relbase.focal, TestMdadmIscsiAbs):
484+ __test__ = True
485+
486+
487 # vi: ts=4 expandtab syntax=python
488diff --git a/tests/vmtests/test_multipath.py b/tests/vmtests/test_multipath.py
489index e0b68ec..339441e 100644
490--- a/tests/vmtests/test_multipath.py
491+++ b/tests/vmtests/test_multipath.py
492@@ -87,4 +87,9 @@ class DiscoTestMultipathBasic(relbase.disco, TestMultipathBasicAbs):
493 class EoanTestMultipathBasic(relbase.eoan, TestMultipathBasicAbs):
494 __test__ = True
495
496+
497+class FocalTestMultipathBasic(relbase.focal, TestMultipathBasicAbs):
498+ __test__ = True
499+
500+
501 # vi: ts=4 expandtab syntax=python
502diff --git a/tests/vmtests/test_network.py b/tests/vmtests/test_network.py
503index 6d3047c..f54e40a 100644
504--- a/tests/vmtests/test_network.py
505+++ b/tests/vmtests/test_network.py
506@@ -480,6 +480,10 @@ class EoanTestNetworkBasic(relbase.eoan, TestNetworkBasicAbs):
507 __test__ = True
508
509
510+class FocalTestNetworkBasic(relbase.focal, TestNetworkBasicAbs):
511+ __test__ = True
512+
513+
514 class Centos66TestNetworkBasic(centos_relbase.centos66_xenial,
515 CentosTestNetworkBasicAbs):
516 __test__ = True
517diff --git a/tests/vmtests/test_network_alias.py b/tests/vmtests/test_network_alias.py
518index 995d982..13c89ee 100644
519--- a/tests/vmtests/test_network_alias.py
520+++ b/tests/vmtests/test_network_alias.py
521@@ -59,4 +59,9 @@ class DiscoTestNetworkAlias(relbase.disco, TestNetworkAliasAbs):
522 class EoanTestNetworkAlias(relbase.eoan, TestNetworkAliasAbs):
523 __test__ = True
524
525+
526+class FocalTestNetworkAlias(relbase.focal, TestNetworkAliasAbs):
527+ __test__ = True
528+
529+
530 # vi: ts=4 expandtab syntax=python
531diff --git a/tests/vmtests/test_network_bonding.py b/tests/vmtests/test_network_bonding.py
532index ec7b48c..b808aec 100644
533--- a/tests/vmtests/test_network_bonding.py
534+++ b/tests/vmtests/test_network_bonding.py
535@@ -65,6 +65,10 @@ class EoanTestBonding(relbase.eoan, TestNetworkBondingAbs):
536 __test__ = True
537
538
539+class FocalTestBonding(relbase.focal, TestNetworkBondingAbs):
540+ __test__ = True
541+
542+
543 class Centos66TestNetworkBonding(centos_relbase.centos66_xenial,
544 CentosTestNetworkBondingAbs):
545 __test__ = True
546diff --git a/tests/vmtests/test_network_bridging.py b/tests/vmtests/test_network_bridging.py
547index 129bae6..3b5b99c 100644
548--- a/tests/vmtests/test_network_bridging.py
549+++ b/tests/vmtests/test_network_bridging.py
550@@ -244,6 +244,10 @@ class EoanTestBridging(relbase.eoan, TestBridgeNetworkAbs):
551 __test__ = True
552
553
554+class FocalTestBridging(relbase.focal, TestBridgeNetworkAbs):
555+ __test__ = True
556+
557+
558 class XenialTestBridgingV2(relbase.xenial, TestBridgeNetworkAbs):
559 """ This class only needs to verify that when provided a v2 config
560 that the Xenial network packages are installed. """
561diff --git a/tests/vmtests/test_network_ipv6_static.py b/tests/vmtests/test_network_ipv6_static.py
562index 925cc79..278c837 100644
563--- a/tests/vmtests/test_network_ipv6_static.py
564+++ b/tests/vmtests/test_network_ipv6_static.py
565@@ -31,6 +31,10 @@ class EoanTestNetworkIPV6Static(relbase.eoan, TestNetworkIPV6StaticAbs):
566 __test__ = True
567
568
569+class FocalTestNetworkIPV6Static(relbase.focal, TestNetworkIPV6StaticAbs):
570+ __test__ = True
571+
572+
573 class Centos66TestNetworkIPV6Static(centos_relbase.centos66_xenial,
574 CentosTestNetworkIPV6StaticAbs):
575 __test__ = True
576diff --git a/tests/vmtests/test_network_ipv6_vlan.py b/tests/vmtests/test_network_ipv6_vlan.py
577index 93673d0..f0f7389 100644
578--- a/tests/vmtests/test_network_ipv6_vlan.py
579+++ b/tests/vmtests/test_network_ipv6_vlan.py
580@@ -29,11 +29,15 @@ class DiscoTestNetworkIPV6Vlan(relbase.disco, TestNetworkIPV6VlanAbs):
581 class EoanTestNetworkIPV6Vlan(relbase.eoan, TestNetworkIPV6VlanAbs):
582 __test__ = True
583
584- @TestNetworkVlanAbs.skip_by_date("1846232", fixby="2019-12-01")
585+ @TestNetworkVlanAbs.skip_by_date("1846232", fixby="2020-01-10")
586 def test_ip_output(self):
587 pass
588
589
590+class FocalTestNetworkIPV6Vlan(relbase.focal, TestNetworkIPV6VlanAbs):
591+ __test__ = True
592+
593+
594 class Centos66TestNetworkIPV6Vlan(centos_relbase.centos66_xenial,
595 CentosTestNetworkIPV6VlanAbs):
596 __test__ = True
597diff --git a/tests/vmtests/test_network_mtu.py b/tests/vmtests/test_network_mtu.py
598index 8a55fca..b81ee0e 100644
599--- a/tests/vmtests/test_network_mtu.py
600+++ b/tests/vmtests/test_network_mtu.py
601@@ -165,21 +165,26 @@ class TestNetworkMtu(relbase.xenial, TestNetworkMtuAbs):
602 __test__ = True
603
604
605-@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-01")
606+@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-10")
607 class BionicTestNetworkMtu(relbase.bionic, TestNetworkMtuAbs):
608 __test__ = True
609
610
611-@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-01")
612+@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-10")
613 class DiscoTestNetworkMtu(relbase.disco, TestNetworkMtuAbs):
614 __test__ = True
615
616
617-@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-01")
618+@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-10")
619 class EoanTestNetworkMtu(relbase.eoan, TestNetworkMtuAbs):
620 __test__ = True
621
622
623+@TestNetworkMtuAbs.skip_by_date("1671951", fixby="2020-01-10")
624+class FocalTestNetworkMtu(relbase.focal, TestNetworkMtuAbs):
625+ __test__ = True
626+
627+
628 class Centos66TestNetworkMtu(centos_relbase.centos66_xenial,
629 CentosTestNetworkMtuAbs):
630 __test__ = True
631diff --git a/tests/vmtests/test_network_static.py b/tests/vmtests/test_network_static.py
632index 01f30d5..b2fac16 100644
633--- a/tests/vmtests/test_network_static.py
634+++ b/tests/vmtests/test_network_static.py
635@@ -36,6 +36,10 @@ class EoanTestNetworkStatic(relbase.eoan, TestNetworkStaticAbs):
636 __test__ = True
637
638
639+class FocalTestNetworkStatic(relbase.focal, TestNetworkStaticAbs):
640+ __test__ = True
641+
642+
643 class Centos66TestNetworkStatic(centos_relbase.centos66_xenial,
644 CentosTestNetworkStaticAbs):
645 __test__ = True
646diff --git a/tests/vmtests/test_network_static_routes.py b/tests/vmtests/test_network_static_routes.py
647index 5a8969c..8e63df8 100644
648--- a/tests/vmtests/test_network_static_routes.py
649+++ b/tests/vmtests/test_network_static_routes.py
650@@ -38,6 +38,11 @@ class EoanTestNetworkStaticRoutes(relbase.eoan,
651 __test__ = True
652
653
654+class FocalTestNetworkStaticRoutes(relbase.focal,
655+ TestNetworkStaticRoutesAbs):
656+ __test__ = True
657+
658+
659 class Centos66TestNetworkStaticRoutes(centos_relbase.centos66_xenial,
660 CentosTestNetworkStaticRoutesAbs):
661 __test__ = False
662diff --git a/tests/vmtests/test_network_vlan.py b/tests/vmtests/test_network_vlan.py
663index 3764973..27aaa2b 100644
664--- a/tests/vmtests/test_network_vlan.py
665+++ b/tests/vmtests/test_network_vlan.py
666@@ -83,7 +83,15 @@ class DiscoTestNetworkVlan(relbase.disco, TestNetworkVlanAbs):
667 class EoanTestNetworkVlan(relbase.eoan, TestNetworkVlanAbs):
668 __test__ = True
669
670- @TestNetworkBaseTestsAbs.skip_by_date("1846232", fixby="2019-12-01")
671+ @TestNetworkBaseTestsAbs.skip_by_date("1846232", fixby="2020-01-10")
672+ def test_ip_output(self):
673+ pass
674+
675+
676+class FocalTestNetworkVlan(relbase.focal, TestNetworkVlanAbs):
677+ __test__ = True
678+
679+ @TestNetworkBaseTestsAbs.skip_by_date("1846232", fixby="2020-01-10")
680 def test_ip_output(self):
681 pass
682
683diff --git a/tests/vmtests/test_nvme.py b/tests/vmtests/test_nvme.py
684index bcd5c09..4f0b4d7 100644
685--- a/tests/vmtests/test_nvme.py
686+++ b/tests/vmtests/test_nvme.py
687@@ -150,4 +150,9 @@ class DiscoTestNvmeBcache(relbase.disco, TestNvmeBcacheAbs):
688 class EoanTestNvmeBcache(relbase.eoan, TestNvmeBcacheAbs):
689 __test__ = True
690
691+
692+class FocalTestNvmeBcache(relbase.focal, TestNvmeBcacheAbs):
693+ __test__ = True
694+
695+
696 # vi: ts=4 expandtab syntax=python
697diff --git a/tests/vmtests/test_pollinate_useragent.py b/tests/vmtests/test_pollinate_useragent.py
698index f01add2..046fff5 100644
699--- a/tests/vmtests/test_pollinate_useragent.py
700+++ b/tests/vmtests/test_pollinate_useragent.py
701@@ -68,4 +68,9 @@ class DiscoTestPollinateUserAgent(relbase.disco, TestPollinateUserAgent):
702 class EoanTestPollinateUserAgent(relbase.eoan, TestPollinateUserAgent):
703 __test__ = True
704
705+
706+class FocalTestPollinateUserAgent(relbase.focal, TestPollinateUserAgent):
707+ __test__ = True
708+
709+
710 # vi: ts=4 expandtab syntax=python
711diff --git a/tests/vmtests/test_preserve.py b/tests/vmtests/test_preserve.py
712index 434b71d..6194ab0 100644
713--- a/tests/vmtests/test_preserve.py
714+++ b/tests/vmtests/test_preserve.py
715@@ -32,4 +32,9 @@ class DiscoTestPreserve(relbase.disco, TestPreserve):
716 class EoanTestPreserve(relbase.eoan, TestPreserve):
717 __test__ = True
718
719+
720+class FocalTestPreserve(relbase.focal, TestPreserve):
721+ __test__ = True
722+
723+
724 # vi: ts=4 expandtab syntax=python
725diff --git a/tests/vmtests/test_preserve_raid.py b/tests/vmtests/test_preserve_raid.py
726index 678f893..3168f57 100644
727--- a/tests/vmtests/test_preserve_raid.py
728+++ b/tests/vmtests/test_preserve_raid.py
729@@ -32,4 +32,9 @@ class DiscoTestPreserveRAID(relbase.disco, TestPreserveRAID):
730 class EoanTestPreserveRAID(relbase.eoan, TestPreserveRAID):
731 __test__ = True
732
733+
734+class FocalTestPreserveRAID(relbase.focal, TestPreserveRAID):
735+ __test__ = True
736+
737+
738 # vi: ts=4 expandtab syntax=python
739diff --git a/tests/vmtests/test_raid5_bcache.py b/tests/vmtests/test_raid5_bcache.py
740index 90549b2..a2df218 100644
741--- a/tests/vmtests/test_raid5_bcache.py
742+++ b/tests/vmtests/test_raid5_bcache.py
743@@ -90,4 +90,9 @@ class DiscoTestRaid5Bcache(relbase.disco, TestMdadmBcacheAbs):
744 class EoanTestRaid5Bcache(relbase.eoan, TestMdadmBcacheAbs):
745 __test__ = True
746
747+
748+class FocalTestRaid5Bcache(relbase.focal, TestMdadmBcacheAbs):
749+ __test__ = True
750+
751+
752 # vi: ts=4 expandtab syntax=python
753diff --git a/tests/vmtests/test_reuse_raid_member.py b/tests/vmtests/test_reuse_raid_member.py
754index 3052c9c..af46a9b 100644
755--- a/tests/vmtests/test_reuse_raid_member.py
756+++ b/tests/vmtests/test_reuse_raid_member.py
757@@ -28,35 +28,36 @@ class BionicTestReuseRAIDMember(relbase.bionic, TestReuseRAIDMember):
758 __test__ = True
759
760
761-class CosmicTestReuseRAIDMember(relbase.cosmic, TestReuseRAIDMember):
762+class DiscoTestReuseRAIDMember(relbase.disco, TestReuseRAIDMember):
763 __test__ = True
764
765
766-class DiscoTestReuseRAIDMember(relbase.disco, TestReuseRAIDMember):
767+class EoanTestReuseRAIDMember(relbase.eoan, TestReuseRAIDMember):
768 __test__ = True
769
770
771-class EoanTestReuseRAIDMember(relbase.eoan, TestReuseRAIDMember):
772+class FocalTestReuseRAIDMember(relbase.focal, TestReuseRAIDMember):
773 __test__ = True
774
775
776-class BionicTestReuseRAIDMemberPartition(
777- relbase.bionic, TestReuseRAIDMemberPartition):
778+class BionicTestReuseRAIDMemberPartition(relbase.bionic,
779+ TestReuseRAIDMemberPartition):
780 __test__ = True
781
782
783-class CosmicTestReuseRAIDMemberPartition(
784- relbase.cosmic, TestReuseRAIDMemberPartition):
785+class DiscoTestReuseRAIDMemberPartition(relbase.disco,
786+ TestReuseRAIDMemberPartition):
787 __test__ = True
788
789
790-class DiscoTestReuseRAIDMemberPartition(
791- relbase.disco, TestReuseRAIDMemberPartition):
792+class EoanTestReuseRAIDMemberPartition(relbase.eoan,
793+ TestReuseRAIDMemberPartition):
794 __test__ = True
795
796
797-class EoanTestReuseRAIDMemberPartition(
798- relbase.eoan, TestReuseRAIDMemberPartition):
799+class FocalTestReuseRAIDMemberPartition(relbase.focal,
800+ TestReuseRAIDMemberPartition):
801 __test__ = True
802
803+
804 # vi: ts=4 expandtab syntax=python
805diff --git a/tests/vmtests/test_simple.py b/tests/vmtests/test_simple.py
806index 8c46af7..9a21879 100644
807--- a/tests/vmtests/test_simple.py
808+++ b/tests/vmtests/test_simple.py
809@@ -63,6 +63,13 @@ class EoanTestSimple(relbase.eoan, TestSimple):
810 self.output_files_exist(["netplan.yaml"])
811
812
813+class FocalTestSimple(relbase.focal, TestSimple):
814+ __test__ = True
815+
816+ def test_output_files_exist(self):
817+ self.output_files_exist(["netplan.yaml"])
818+
819+
820 class TestSimpleStorage(VMBaseClass):
821 """ Test curtin runs clear-holders when mode=simple with storage cfg. """
822 conf_file = "examples/tests/simple-storage.yaml"
823@@ -119,6 +126,13 @@ class EoanTestSimpleStorage(relbase.eoan, TestSimpleStorage):
824 self.output_files_exist(["netplan.yaml"])
825
826
827+class FocalTestSimpleStorage(relbase.focal, TestSimpleStorage):
828+ __test__ = True
829+
830+ def test_output_files_exist(self):
831+ self.output_files_exist(["netplan.yaml"])
832+
833+
834 class TestGrubNoDefaults(VMBaseClass):
835 """ Test that curtin does not emit any grub configuration files. """
836 conf_file = "examples/tests/no-grub-file.yaml"
837@@ -138,10 +152,11 @@ class TestGrubNoDefaults(VMBaseClass):
838 self.assertNotIn('50-curtin-settings.cfg', grub_d_files)
839
840
841-class DiscoTestGrubNoDefaults(relbase.disco, TestGrubNoDefaults):
842+class FocalTestGrubNoDefaults(relbase.focal, TestGrubNoDefaults):
843 __test__ = True
844
845 def test_output_files_exist(self):
846 self.output_files_exist(["netplan.yaml"])
847
848+
849 # vi: ts=4 expandtab syntax=python
850diff --git a/tests/vmtests/test_uefi_basic.py b/tests/vmtests/test_uefi_basic.py
851index 374b79f..a20506d 100644
852--- a/tests/vmtests/test_uefi_basic.py
853+++ b/tests/vmtests/test_uefi_basic.py
854@@ -113,6 +113,10 @@ class EoanUefiTestBasic(relbase.eoan, TestBasicAbs):
855 __test__ = True
856
857
858+class FocalUefiTestBasic(relbase.focal, TestBasicAbs):
859+ __test__ = True
860+
861+
862 class Centos70UefiTestBasic4k(centos_relbase.centos70_xenial, TestBasicAbs):
863 __test__ = True
864 disk_block_size = 4096
865@@ -137,4 +141,10 @@ class EoanUefiTestBasic4k(relbase.eoan, TestBasicAbs):
866 __test__ = True
867 disk_block_size = 4096
868
869+
870+class FocalUefiTestBasic4k(relbase.focal, TestBasicAbs):
871+ __test__ = True
872+ disk_block_size = 4096
873+
874+
875 # vi: ts=4 expandtab syntax=python
876diff --git a/tests/vmtests/test_zfsroot.py b/tests/vmtests/test_zfsroot.py
877index a0e50e9..86992c3 100644
878--- a/tests/vmtests/test_zfsroot.py
879+++ b/tests/vmtests/test_zfsroot.py
880@@ -1,3 +1,5 @@
881+# This file is part of curtin. See LICENSE file for copyright and license info.
882+
883 from . import VMBaseClass, check_install_log, skip_if_flag
884 from .releases import base_vm_classes as relbase
885
886@@ -104,6 +106,11 @@ class EoanTestZfsRoot(relbase.eoan, TestZfsRootAbs):
887 mem = 4096
888
889
890+class FocalTestZfsRoot(relbase.focal, TestZfsRootAbs):
891+ __test__ = True
892+ mem = 4096
893+
894+
895 class TestZfsRootFsTypeAbs(TestZfsRootAbs):
896 conf_file = "examples/tests/basic-zfsroot.yaml"
897
898@@ -131,3 +138,10 @@ class DiscoTestZfsRootFsType(relbase.disco, TestZfsRootFsTypeAbs):
899 class EoanTestZfsRootFsType(relbase.eoan, TestZfsRootFsTypeAbs):
900 __test__ = True
901 mem = 4096
902+
903+
904+class FocalTestZfsRootFsType(relbase.focal, TestZfsRootFsTypeAbs):
905+ __test__ = True
906+ mem = 4096
907+
908+# vi: ts=4 expandtab syntax=python
909diff --git a/tools/vmtest-filter b/tools/vmtest-filter
910index 55e63d5..ae427c3 100755
911--- a/tools/vmtest-filter
912+++ b/tools/vmtest-filter
913@@ -4,7 +4,9 @@
914 import argparse
915 import logging
916 import os
917+import pdb
918 import sys
919+import traceback
920
921 # Fix path so we can import helpers
922 sys.path.insert(1, os.path.realpath(os.path.join(
923@@ -17,7 +19,7 @@ from tests.vmtests.helpers import find_testcases_by_attr # noqa: E402
924 logging.disable(logging.CRITICAL)
925
926
927-if __name__ == '__main__':
928+def main():
929 parser = argparse.ArgumentParser(prog='vmtest-filter',
930 description='Dump matching testcases',
931 usage='''vmtest-filter --attr=value''')
932@@ -54,4 +56,13 @@ if __name__ == '__main__':
933 for tc in find_testcases_by_attr(**kwargs):
934 print(tc)
935
936+if __name__ == '__main__':
937+ try:
938+ ret = main()
939+ except:
940+ traceback.print_exc()
941+ pdb.post_mortem()
942+ ret = 1
943+ sys.exit(ret)
944+
945 # vi: ts=4 expandtab syntax=python

Subscribers

People subscribed via source and target branches