Merge ~raharper/curtin:vmtest/enable-h-series into curtin:master

Proposed by Ryan Harper
Status: Merged
Approved by: Michael Hudson-Doyle
Approved revision: 2708cf61883592b7c8a00427acceed036fa20810
Merge reported by: Server Team CI bot
Merged at revision: not available
Proposed branch: ~raharper/curtin:vmtest/enable-h-series
Merge into: curtin:master
Diff against target: 1095 lines (+390/-19)
49 files modified
tests/vmtests/releases.py (+9/-0)
tests/vmtests/test_apt_config_cmd.py (+4/-0)
tests/vmtests/test_basic.py (+8/-0)
tests/vmtests/test_basic_dasd.py (+4/-0)
tests/vmtests/test_bcache_basic.py (+4/-0)
tests/vmtests/test_bcache_bug1718699.py (+4/-0)
tests/vmtests/test_bcache_ceph.py (+8/-0)
tests/vmtests/test_bcache_partitions.py (+4/-0)
tests/vmtests/test_fs_battery.py (+4/-0)
tests/vmtests/test_iscsi.py (+4/-0)
tests/vmtests/test_journald_reporter.py (+4/-0)
tests/vmtests/test_lvm.py (+4/-0)
tests/vmtests/test_lvm_iscsi.py (+4/-0)
tests/vmtests/test_lvm_raid.py (+4/-0)
tests/vmtests/test_lvm_root.py (+15/-0)
tests/vmtests/test_mdadm_bcache.py (+34/-0)
tests/vmtests/test_mdadm_iscsi.py (+4/-0)
tests/vmtests/test_multipath.py (+4/-0)
tests/vmtests/test_multipath_lvm.py (+9/-0)
tests/vmtests/test_network.py (+4/-0)
tests/vmtests/test_network_alias.py (+4/-0)
tests/vmtests/test_network_bonding.py (+4/-0)
tests/vmtests/test_network_bridging.py (+4/-0)
tests/vmtests/test_network_disabled.py (+30/-19)
tests/vmtests/test_network_ipv6_static.py (+4/-0)
tests/vmtests/test_network_ipv6_vlan.py (+4/-0)
tests/vmtests/test_network_mtu.py (+4/-0)
tests/vmtests/test_network_ovs.py (+4/-0)
tests/vmtests/test_network_static.py (+4/-0)
tests/vmtests/test_network_static_routes.py (+5/-0)
tests/vmtests/test_network_vlan.py (+7/-0)
tests/vmtests/test_nvme.py (+4/-0)
tests/vmtests/test_panic.py (+4/-0)
tests/vmtests/test_pollinate_useragent.py (+4/-0)
tests/vmtests/test_preserve.py (+4/-0)
tests/vmtests/test_preserve_bcache.py (+4/-0)
tests/vmtests/test_preserve_lvm.py (+4/-0)
tests/vmtests/test_preserve_partition_wipe_vg.py (+9/-0)
tests/vmtests/test_preserve_raid.py (+4/-0)
tests/vmtests/test_raid5_bcache.py (+4/-0)
tests/vmtests/test_raid_partition_to_disk.py (+4/-0)
tests/vmtests/test_reuse_lvm_member.py (+5/-0)
tests/vmtests/test_reuse_msdos_partitions.py (+5/-0)
tests/vmtests/test_reuse_raid_member.py (+9/-0)
tests/vmtests/test_reuse_uefi_esp.py (+7/-0)
tests/vmtests/test_simple.py (+21/-0)
tests/vmtests/test_uefi_basic.py (+9/-0)
tests/vmtests/test_zfsroot.py (+10/-0)
tools/vmtest-add-release (+66/-0)
Reviewer Review Type Date Requested Status
Server Team CI bot continuous-integration Approve
curtin developers Pending
Review via email: mp+396278@code.launchpad.net

Commit message

vmtest: add Hirsute release classes, tool to add vmtest class

Add a tool to generate new release classes based on a previous
release, for example:

  ./tools/vmtest-add-release -p tests/vmtests \
    --previous-release=focal --distro-release=hirsute

User still needs to create the release class in tests/vmtests/releases.py

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)
d79a227... by Ryan Harper

Add Hirsute release, add tool to update vmtest classes

1d57ef5... by Ryan Harper

Adjust class definition to match other curtin tests

2eae73b... by Ryan Harper

Ensure new class has two empty lines

4f2ae96... by Ryan Harper

Add a tool to generate new release classes based on a previous release

For example:

  ./tools/vmtest-add-release -p tests/vmtests \
    --previous-release=focal --distro-release=hirsute

User still needs to create the release class in
  tests/vmtests/releases.py

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

make sync-images does not pull down the hirsute kernel variants for me; so maybe we also need to tackle that maas-daily vs maas-stable issues we see from time to time...

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

Thanks Ryan! There are flak8 failures:

https://paste.ubuntu.com/p/xbrKsbfyjF/

(We should really improve on having a public project with private CI logs. I'm trying to get a definitive answer on the public/private Jenkins issue, and see how to move forward.)

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

After sorting sync-images issues, local run of:

./tools/jenkins-runner -p 12 --filter=target_release=hirsute

----------------------------------------------------------------------
Ran 923 tests in 1957.220s

OK (SKIP=139)
Thu, 14 Jan 2021 14:42:59 -0600: vmtest end [0] in 1959s

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

I need to fix up tox; let me do that now.

2708cf6... by Ryan Harper

Manually fix up tox issues from automatic adding if Hirsute

The automated tool isn't perfect; mostly issues with indentation.
One more refactor of the really-long-class-names in network disabled
test case as well.

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

Thanks for this!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/tests/vmtests/releases.py b/tests/vmtests/releases.py
index c99ca7e..35b069b 100644
--- a/tests/vmtests/releases.py
+++ b/tests/vmtests/releases.py
@@ -193,6 +193,14 @@ class _GroovyBase(_UbuntuBase):
193 subarch = "ga-20.10"193 subarch = "ga-20.10"
194194
195195
196class _HirsuteBase(_UbuntuBase):
197 release = "hirsute"
198 target_release = "hirsute"
199 mem = "2048"
200 if _UbuntuBase.arch == "arm64":
201 subarch = "ga-20.10"
202
203
196class _Releases(object):204class _Releases(object):
197 trusty = _TrustyBase205 trusty = _TrustyBase
198 precise = _PreciseBase206 precise = _PreciseBase
@@ -212,6 +220,7 @@ class _Releases(object):
212 eoan = _EoanBase220 eoan = _EoanBase
213 focal = _FocalBase221 focal = _FocalBase
214 groovy = _GroovyBase222 groovy = _GroovyBase
223 hirsute = _HirsuteBase
215224
216225
217class _CentosReleases(object):226class _CentosReleases(object):
diff --git a/tests/vmtests/test_apt_config_cmd.py b/tests/vmtests/test_apt_config_cmd.py
index 874efad..a95612c 100644
--- a/tests/vmtests/test_apt_config_cmd.py
+++ b/tests/vmtests/test_apt_config_cmd.py
@@ -68,6 +68,10 @@ class FocalTestAptConfigCMDCMD(relbase.focal, TestAptConfigCMD):
68 __test__ = True68 __test__ = True
6969
7070
71class HirsuteTestAptConfigCMDCMD(relbase.hirsute, TestAptConfigCMD):
72 __test__ = True
73
74
71class GroovyTestAptConfigCMDCMD(relbase.groovy, TestAptConfigCMD):75class GroovyTestAptConfigCMDCMD(relbase.groovy, TestAptConfigCMD):
72 __test__ = True76 __test__ = True
7377
diff --git a/tests/vmtests/test_basic.py b/tests/vmtests/test_basic.py
index 5723bc6..06f1f59 100644
--- a/tests/vmtests/test_basic.py
+++ b/tests/vmtests/test_basic.py
@@ -259,6 +259,10 @@ class FocalTestBasic(relbase.focal, TestBasicAbs):
259 __test__ = True259 __test__ = True
260260
261261
262class HirsuteTestBasic(relbase.hirsute, TestBasicAbs):
263 __test__ = True
264
265
262class GroovyTestBasic(relbase.groovy, TestBasicAbs):266class GroovyTestBasic(relbase.groovy, TestBasicAbs):
263 __test__ = True267 __test__ = True
264268
@@ -379,6 +383,10 @@ class FocalTestScsiBasic(relbase.focal, TestBasicScsiAbs):
379 __test__ = True383 __test__ = True
380384
381385
386class HirsuteTestScsiBasic(relbase.hirsute, TestBasicScsiAbs):
387 __test__ = True
388
389
382class GroovyTestScsiBasic(relbase.groovy, TestBasicScsiAbs):390class GroovyTestScsiBasic(relbase.groovy, TestBasicScsiAbs):
383 __test__ = True391 __test__ = True
384392
diff --git a/tests/vmtests/test_basic_dasd.py b/tests/vmtests/test_basic_dasd.py
index d61e1b9..49957b8 100644
--- a/tests/vmtests/test_basic_dasd.py
+++ b/tests/vmtests/test_basic_dasd.py
@@ -56,6 +56,10 @@ class FocalTestBasicDasd(relbase.focal, TestBasicDasd):
56 __test__ = True56 __test__ = True
5757
5858
59class HirsuteTestBasicDasd(relbase.hirsute, TestBasicDasd):
60 __test__ = True
61
62
59class GroovyTestBasicDasd(relbase.groovy, TestBasicDasd):63class GroovyTestBasicDasd(relbase.groovy, TestBasicDasd):
60 __test__ = True64 __test__ = True
6165
diff --git a/tests/vmtests/test_bcache_basic.py b/tests/vmtests/test_bcache_basic.py
index 053225f..e9ec1ea 100644
--- a/tests/vmtests/test_bcache_basic.py
+++ b/tests/vmtests/test_bcache_basic.py
@@ -68,6 +68,10 @@ class FocalBcacheBasic(relbase.focal, TestBcacheBasic):
68 __test__ = True68 __test__ = True
6969
7070
71class HirsuteBcacheBasic(relbase.hirsute, TestBcacheBasic):
72 __test__ = True
73
74
71class GroovyBcacheBasic(relbase.groovy, TestBcacheBasic):75class GroovyBcacheBasic(relbase.groovy, TestBcacheBasic):
72 __test__ = True76 __test__ = True
7377
diff --git a/tests/vmtests/test_bcache_bug1718699.py b/tests/vmtests/test_bcache_bug1718699.py
index ebb99ab..a43ec0f 100644
--- a/tests/vmtests/test_bcache_bug1718699.py
+++ b/tests/vmtests/test_bcache_bug1718699.py
@@ -23,6 +23,10 @@ class FocalTestBcacheBug1718699(relbase.focal, TestBcacheBug1718699):
23 __test__ = True23 __test__ = True
2424
2525
26class HirsuteTestBcacheBug1718699(relbase.hirsute, TestBcacheBug1718699):
27 __test__ = True
28
29
26class GroovyTestBcacheBug1718699(relbase.groovy, TestBcacheBug1718699):30class GroovyTestBcacheBug1718699(relbase.groovy, TestBcacheBug1718699):
27 __test__ = True31 __test__ = True
2832
diff --git a/tests/vmtests/test_bcache_ceph.py b/tests/vmtests/test_bcache_ceph.py
index bff4dd4..53e050c 100644
--- a/tests/vmtests/test_bcache_ceph.py
+++ b/tests/vmtests/test_bcache_ceph.py
@@ -79,6 +79,10 @@ class FocalTestBcacheCeph(relbase.focal, TestBcacheCeph):
79 __test__ = True79 __test__ = True
8080
8181
82class HirsuteTestBcacheCeph(relbase.hirsute, TestBcacheCeph):
83 __test__ = True
84
85
82class GroovyTestBcacheCeph(relbase.groovy, TestBcacheCeph):86class GroovyTestBcacheCeph(relbase.groovy, TestBcacheCeph):
83 __test__ = True87 __test__ = True
8488
@@ -109,6 +113,10 @@ class FocalTestBcacheCephLvm(relbase.focal, TestBcacheCephLvm):
109 __test__ = True113 __test__ = True
110114
111115
116class HirsuteTestBcacheCephLvm(relbase.hirsute, TestBcacheCephLvm):
117 __test__ = True
118
119
112class GroovyTestBcacheCephLvm(relbase.groovy, TestBcacheCephLvm):120class GroovyTestBcacheCephLvm(relbase.groovy, TestBcacheCephLvm):
113 __test__ = True121 __test__ = True
114122
diff --git a/tests/vmtests/test_bcache_partitions.py b/tests/vmtests/test_bcache_partitions.py
index 1ffea12..a69d2ef 100644
--- a/tests/vmtests/test_bcache_partitions.py
+++ b/tests/vmtests/test_bcache_partitions.py
@@ -29,6 +29,10 @@ class FocalTestBcachePartitions(relbase.focal, TestBcachePartitions):
29 __test__ = True29 __test__ = True
3030
3131
32class HirsuteTestBcachePartitions(relbase.hirsute, TestBcachePartitions):
33 __test__ = True
34
35
32class GroovyTestBcachePartitions(relbase.groovy, TestBcachePartitions):36class GroovyTestBcachePartitions(relbase.groovy, TestBcachePartitions):
33 __test__ = True37 __test__ = True
3438
diff --git a/tests/vmtests/test_fs_battery.py b/tests/vmtests/test_fs_battery.py
index 7177fea..7d7b494 100644
--- a/tests/vmtests/test_fs_battery.py
+++ b/tests/vmtests/test_fs_battery.py
@@ -243,6 +243,10 @@ class FocalTestFsBattery(relbase.focal, TestFsBattery):
243 __test__ = True243 __test__ = True
244244
245245
246class HirsuteTestFsBattery(relbase.hirsute, TestFsBattery):
247 __test__ = True
248
249
246class GroovyTestFsBattery(relbase.groovy, TestFsBattery):250class GroovyTestFsBattery(relbase.groovy, TestFsBattery):
247 __test__ = True251 __test__ = True
248252
diff --git a/tests/vmtests/test_iscsi.py b/tests/vmtests/test_iscsi.py
index f3406cd..c46ac30 100644
--- a/tests/vmtests/test_iscsi.py
+++ b/tests/vmtests/test_iscsi.py
@@ -76,6 +76,10 @@ class FocalTestIscsiBasic(relbase.focal, TestBasicIscsiAbs):
76 __test__ = True76 __test__ = True
7777
7878
79class HirsuteTestIscsiBasic(relbase.hirsute, TestBasicIscsiAbs):
80 __test__ = True
81
82
79class GroovyTestIscsiBasic(relbase.groovy, TestBasicIscsiAbs):83class GroovyTestIscsiBasic(relbase.groovy, TestBasicIscsiAbs):
80 __test__ = True84 __test__ = True
8185
diff --git a/tests/vmtests/test_journald_reporter.py b/tests/vmtests/test_journald_reporter.py
index ff003a5..3979aa7 100644
--- a/tests/vmtests/test_journald_reporter.py
+++ b/tests/vmtests/test_journald_reporter.py
@@ -36,6 +36,10 @@ class FocalTestJournaldReporter(relbase.focal, TestJournaldReporter):
36 __test__ = True36 __test__ = True
3737
3838
39class HirsuteTestJournaldReporter(relbase.hirsute, TestJournaldReporter):
40 __test__ = True
41
42
39class GroovyTestJournaldReporter(relbase.groovy, TestJournaldReporter):43class GroovyTestJournaldReporter(relbase.groovy, TestJournaldReporter):
40 __test__ = True44 __test__ = True
4145
diff --git a/tests/vmtests/test_lvm.py b/tests/vmtests/test_lvm.py
index eb65c32..d169eeb 100644
--- a/tests/vmtests/test_lvm.py
+++ b/tests/vmtests/test_lvm.py
@@ -81,6 +81,10 @@ class FocalTestLvm(relbase.focal, TestLvmAbs):
81 __test__ = True81 __test__ = True
8282
8383
84class HirsuteTestLvm(relbase.hirsute, TestLvmAbs):
85 __test__ = True
86
87
84class GroovyTestLvm(relbase.groovy, TestLvmAbs):88class GroovyTestLvm(relbase.groovy, TestLvmAbs):
85 __test__ = True89 __test__ = True
8690
diff --git a/tests/vmtests/test_lvm_iscsi.py b/tests/vmtests/test_lvm_iscsi.py
index e0b9606..0cf020e 100644
--- a/tests/vmtests/test_lvm_iscsi.py
+++ b/tests/vmtests/test_lvm_iscsi.py
@@ -99,6 +99,10 @@ class FocalTestIscsiLvm(relbase.focal, TestLvmIscsiAbs):
99 __test__ = True99 __test__ = True
100100
101101
102class HirsuteTestIscsiLvm(relbase.hirsute, TestLvmIscsiAbs):
103 __test__ = True
104
105
102class GroovyTestIscsiLvm(relbase.groovy, TestLvmIscsiAbs):106class GroovyTestIscsiLvm(relbase.groovy, TestLvmIscsiAbs):
103 __test__ = True107 __test__ = True
104108
diff --git a/tests/vmtests/test_lvm_raid.py b/tests/vmtests/test_lvm_raid.py
index 5fe7993..3fe71a9 100644
--- a/tests/vmtests/test_lvm_raid.py
+++ b/tests/vmtests/test_lvm_raid.py
@@ -59,5 +59,9 @@ class FocalTestLvmOverRaid(relbase.focal, TestLvmOverRaidAbs):
59 __test__ = True59 __test__ = True
6060
6161
62class HirsuteTestLvmOverRaid(relbase.hirsute, TestLvmOverRaidAbs):
63 __test__ = True
64
65
62class GroovyTestLvmOverRaid(relbase.groovy, TestLvmOverRaidAbs):66class GroovyTestLvmOverRaid(relbase.groovy, TestLvmOverRaidAbs):
63 __test__ = True67 __test__ = True
diff --git a/tests/vmtests/test_lvm_root.py b/tests/vmtests/test_lvm_root.py
index 12b8ea8..c910160 100644
--- a/tests/vmtests/test_lvm_root.py
+++ b/tests/vmtests/test_lvm_root.py
@@ -94,6 +94,13 @@ class FocalTestLvmRootExt4(relbase.focal, TestLvmRootAbs):
94 }94 }
9595
9696
97class HirsuteTestLvmRootExt4(relbase.hirsute, TestLvmRootAbs):
98 __test__ = True
99 conf_replace = {
100 '__ROOTFS_FORMAT__': 'ext4',
101 }
102
103
97class GroovyTestLvmRootExt4(relbase.groovy, TestLvmRootAbs):104class GroovyTestLvmRootExt4(relbase.groovy, TestLvmRootAbs):
98 __test__ = True105 __test__ = True
99 conf_replace = {106 conf_replace = {
@@ -147,6 +154,14 @@ class FocalTestUefiLvmRootExt4(relbase.focal, TestUefiLvmRootAbs):
147 }154 }
148155
149156
157class HirsuteTestUefiLvmRootExt4(relbase.hirsute, TestUefiLvmRootAbs):
158 __test__ = True
159 conf_replace = {
160 '__BOOTFS_FORMAT__': 'ext4',
161 '__ROOTFS_FORMAT__': 'ext4',
162 }
163
164
150class GroovyTestUefiLvmRootExt4(relbase.groovy, TestUefiLvmRootAbs):165class GroovyTestUefiLvmRootExt4(relbase.groovy, TestUefiLvmRootAbs):
151 __test__ = True166 __test__ = True
152 conf_replace = {167 conf_replace = {
diff --git a/tests/vmtests/test_mdadm_bcache.py b/tests/vmtests/test_mdadm_bcache.py
index ce909f8..62f25e7 100644
--- a/tests/vmtests/test_mdadm_bcache.py
+++ b/tests/vmtests/test_mdadm_bcache.py
@@ -158,6 +158,10 @@ class FocalTestMdadmBcache(relbase.focal, TestMdadmBcacheAbs):
158 __test__ = True158 __test__ = True
159159
160160
161class HirsuteTestMdadmBcache(relbase.hirsute, TestMdadmBcacheAbs):
162 __test__ = True
163
164
161class GroovyTestMdadmBcache(relbase.groovy, TestMdadmBcacheAbs):165class GroovyTestMdadmBcache(relbase.groovy, TestMdadmBcacheAbs):
162 __test__ = True166 __test__ = True
163167
@@ -203,6 +207,10 @@ class FocalTestMirrorboot(relbase.focal, TestMirrorbootAbs):
203 __test__ = True207 __test__ = True
204208
205209
210class HirsuteTestMirrorboot(relbase.hirsute, TestMirrorbootAbs):
211 __test__ = True
212
213
206class GroovyTestMirrorboot(relbase.groovy, TestMirrorbootAbs):214class GroovyTestMirrorboot(relbase.groovy, TestMirrorbootAbs):
207 __test__ = True215 __test__ = True
208216
@@ -252,6 +260,11 @@ class FocalTestMirrorbootPartitions(relbase.focal,
252 __test__ = True260 __test__ = True
253261
254262
263class HirsuteTestMirrorbootPartitions(relbase.hirsute,
264 TestMirrorbootPartitionsAbs):
265 __test__ = True
266
267
255class GroovyTestMirrorbootPartitions(relbase.groovy,268class GroovyTestMirrorbootPartitions(relbase.groovy,
256 TestMirrorbootPartitionsAbs):269 TestMirrorbootPartitionsAbs):
257 __test__ = True270 __test__ = True
@@ -347,6 +360,11 @@ class FocalTestMirrorbootPartitionsUEFI(relbase.focal,
347 __test__ = True360 __test__ = True
348361
349362
363class HirsuteTestMirrorbootPartitionsUEFI(relbase.hirsute,
364 TestMirrorbootPartitionsUEFIAbs):
365 __test__ = True
366
367
350class GroovyTestMirrorbootPartitionsUEFI(relbase.groovy,368class GroovyTestMirrorbootPartitionsUEFI(relbase.groovy,
351 TestMirrorbootPartitionsUEFIAbs):369 TestMirrorbootPartitionsUEFIAbs):
352 __test__ = True370 __test__ = True
@@ -396,6 +414,10 @@ class FocalTestRaid5boot(relbase.focal, TestRaid5bootAbs):
396 __test__ = True414 __test__ = True
397415
398416
417class HirsuteTestRaid5boot(relbase.hirsute, TestRaid5bootAbs):
418 __test__ = True
419
420
399class GroovyTestRaid5boot(relbase.groovy, TestRaid5bootAbs):421class GroovyTestRaid5boot(relbase.groovy, TestRaid5bootAbs):
400 __test__ = True422 __test__ = True
401423
@@ -457,6 +479,10 @@ class FocalTestRaid6boot(relbase.focal, TestRaid6bootAbs):
457 __test__ = True479 __test__ = True
458480
459481
482class HirsuteTestRaid6boot(relbase.hirsute, TestRaid6bootAbs):
483 __test__ = True
484
485
460class GroovyTestRaid6boot(relbase.groovy, TestRaid6bootAbs):486class GroovyTestRaid6boot(relbase.groovy, TestRaid6bootAbs):
461 __test__ = True487 __test__ = True
462488
@@ -504,6 +530,10 @@ class FocalTestRaid10boot(relbase.focal, TestRaid10bootAbs):
504 __test__ = True530 __test__ = True
505531
506532
533class HirsuteTestRaid10boot(relbase.hirsute, TestRaid10bootAbs):
534 __test__ = True
535
536
507class GroovyTestRaid10boot(relbase.groovy, TestRaid10bootAbs):537class GroovyTestRaid10boot(relbase.groovy, TestRaid10bootAbs):
508 __test__ = True538 __test__ = True
509539
@@ -608,6 +638,10 @@ class FocalTestAllindata(relbase.focal, TestAllindataAbs):
608 __test__ = True638 __test__ = True
609639
610640
641class HirsuteTestAllindata(relbase.hirsute, TestAllindataAbs):
642 __test__ = True
643
644
611class GroovyTestAllindata(relbase.groovy, TestAllindataAbs):645class GroovyTestAllindata(relbase.groovy, TestAllindataAbs):
612 __test__ = True646 __test__ = True
613647
diff --git a/tests/vmtests/test_mdadm_iscsi.py b/tests/vmtests/test_mdadm_iscsi.py
index 7e6fbf6..6ad6b72 100644
--- a/tests/vmtests/test_mdadm_iscsi.py
+++ b/tests/vmtests/test_mdadm_iscsi.py
@@ -54,6 +54,10 @@ class FocalTestIscsiMdadm(relbase.focal, TestMdadmIscsiAbs):
54 __test__ = True54 __test__ = True
5555
5656
57class HirsuteTestIscsiMdadm(relbase.hirsute, TestMdadmIscsiAbs):
58 __test__ = True
59
60
57class GroovyTestIscsiMdadm(relbase.groovy, TestMdadmIscsiAbs):61class GroovyTestIscsiMdadm(relbase.groovy, TestMdadmIscsiAbs):
58 __test__ = True62 __test__ = True
5963
diff --git a/tests/vmtests/test_multipath.py b/tests/vmtests/test_multipath.py
index 6d9c5df..f924d25 100644
--- a/tests/vmtests/test_multipath.py
+++ b/tests/vmtests/test_multipath.py
@@ -162,6 +162,10 @@ class FocalTestMultipathBasic(relbase.focal, TestMultipathBasicAbs):
162 __test__ = True162 __test__ = True
163163
164164
165class HirsuteTestMultipathBasic(relbase.hirsute, TestMultipathBasicAbs):
166 __test__ = True
167
168
165class GroovyTestMultipathBasic(relbase.groovy, TestMultipathBasicAbs):169class GroovyTestMultipathBasic(relbase.groovy, TestMultipathBasicAbs):
166 __test__ = True170 __test__ = True
167171
diff --git a/tests/vmtests/test_multipath_lvm.py b/tests/vmtests/test_multipath_lvm.py
index c5a1e42..f5f5537 100644
--- a/tests/vmtests/test_multipath_lvm.py
+++ b/tests/vmtests/test_multipath_lvm.py
@@ -60,6 +60,10 @@ class FocalTestMultipathLvm(relbase.focal, TestMultipathLvmAbs):
60 __test__ = True60 __test__ = True
6161
6262
63class HirsuteTestMultipathLvm(relbase.hirsute, TestMultipathLvmAbs):
64 __test__ = True
65
66
63class GroovyTestMultipathLvm(relbase.groovy, TestMultipathLvmAbs):67class GroovyTestMultipathLvm(relbase.groovy, TestMultipathLvmAbs):
64 __test__ = True68 __test__ = True
6569
@@ -73,6 +77,11 @@ class FocalTestMultipathLvmPartWipe(relbase.focal,
73 __test__ = True77 __test__ = True
7478
7579
80class HirsuteTestMultipathLvmPartWipe(relbase.hirsute,
81 TestMultipathLvmPartWipeAbs):
82 __test__ = True
83
84
76class GroovyTestMultipathLvmPartWipe(relbase.groovy,85class GroovyTestMultipathLvmPartWipe(relbase.groovy,
77 TestMultipathLvmPartWipeAbs):86 TestMultipathLvmPartWipeAbs):
78 __test__ = True87 __test__ = True
diff --git a/tests/vmtests/test_network.py b/tests/vmtests/test_network.py
index 43a7c6b..db16bd4 100644
--- a/tests/vmtests/test_network.py
+++ b/tests/vmtests/test_network.py
@@ -478,6 +478,10 @@ class FocalTestNetworkBasic(relbase.focal, TestNetworkBasicAbs):
478 __test__ = True478 __test__ = True
479479
480480
481class HirsuteTestNetworkBasic(relbase.hirsute, TestNetworkBasicAbs):
482 __test__ = True
483
484
481class GroovyTestNetworkBasic(relbase.groovy, TestNetworkBasicAbs):485class GroovyTestNetworkBasic(relbase.groovy, TestNetworkBasicAbs):
482 __test__ = True486 __test__ = True
483487
diff --git a/tests/vmtests/test_network_alias.py b/tests/vmtests/test_network_alias.py
index bc1fb22..9f460fa 100644
--- a/tests/vmtests/test_network_alias.py
+++ b/tests/vmtests/test_network_alias.py
@@ -56,6 +56,10 @@ class FocalTestNetworkAlias(relbase.focal, TestNetworkAliasAbs):
56 __test__ = True56 __test__ = True
5757
5858
59class HirsuteTestNetworkAlias(relbase.hirsute, TestNetworkAliasAbs):
60 __test__ = True
61
62
59class GroovyTestNetworkAlias(relbase.groovy, TestNetworkAliasAbs):63class GroovyTestNetworkAlias(relbase.groovy, TestNetworkAliasAbs):
60 __test__ = True64 __test__ = True
6165
diff --git a/tests/vmtests/test_network_bonding.py b/tests/vmtests/test_network_bonding.py
index 6c6dd6d..f58065d 100644
--- a/tests/vmtests/test_network_bonding.py
+++ b/tests/vmtests/test_network_bonding.py
@@ -61,6 +61,10 @@ class FocalTestBonding(relbase.focal, TestNetworkBondingAbs):
61 __test__ = True61 __test__ = True
6262
6363
64class HirsuteTestBonding(relbase.hirsute, TestNetworkBondingAbs):
65 __test__ = True
66
67
64class GroovyTestBonding(relbase.groovy, TestNetworkBondingAbs):68class GroovyTestBonding(relbase.groovy, TestNetworkBondingAbs):
65 __test__ = True69 __test__ = True
6670
diff --git a/tests/vmtests/test_network_bridging.py b/tests/vmtests/test_network_bridging.py
index 9ecd2f6..b0d5962 100644
--- a/tests/vmtests/test_network_bridging.py
+++ b/tests/vmtests/test_network_bridging.py
@@ -240,6 +240,10 @@ class FocalTestBridging(relbase.focal, TestBridgeNetworkAbs):
240 __test__ = True240 __test__ = True
241241
242242
243class HirsuteTestBridging(relbase.hirsute, TestBridgeNetworkAbs):
244 __test__ = True
245
246
243class GroovyTestBridging(relbase.groovy, TestBridgeNetworkAbs):247class GroovyTestBridging(relbase.groovy, TestBridgeNetworkAbs):
244 __test__ = True248 __test__ = True
245249
diff --git a/tests/vmtests/test_network_disabled.py b/tests/vmtests/test_network_disabled.py
index ea8dae2..9079f8e 100644
--- a/tests/vmtests/test_network_disabled.py
+++ b/tests/vmtests/test_network_disabled.py
@@ -33,6 +33,9 @@ class CurtinDisableNetworkRendering(TestNetworkBaseTestsAbs):
33 raise SkipTest('not available on %s' % self.__class__)33 raise SkipTest('not available on %s' % self.__class__)
3434
3535
36TestKlass1 = CurtinDisableNetworkRendering
37
38
36class CurtinDisableCloudInitNetworking(TestNetworkBaseTestsAbs):39class CurtinDisableCloudInitNetworking(TestNetworkBaseTestsAbs):
37 """ Test curtin can disable cloud-init networking in the target system """40 """ Test curtin can disable cloud-init networking in the target system """
38 conf_file = "examples/tests/network_config_disabled.yaml"41 conf_file = "examples/tests/network_config_disabled.yaml"
@@ -44,45 +47,53 @@ class CurtinDisableCloudInitNetworking(TestNetworkBaseTestsAbs):
44 raise SkipTest('not available on %s' % self.__class__)47 raise SkipTest('not available on %s' % self.__class__)
4548
4649
47class CurtinDisableCloudInitNetworkingVersion1(50TestKlass2 = CurtinDisableCloudInitNetworking
48 CurtinDisableCloudInitNetworking51
49):52
53class CurtinDisableCloudInitNetworkingVersion1(TestKlass2):
50 """ Test curtin can disable cloud-init networking in the target system54 """ Test curtin can disable cloud-init networking in the target system
51 with version key. """55 with version key. """
52 conf_file = "examples/tests/network_config_disabled_with_version.yaml"56 conf_file = "examples/tests/network_config_disabled_with_version.yaml"
5357
5458
55class FocalCurtinDisableNetworkRendering(relbase.focal,59TestKlass3 = CurtinDisableCloudInitNetworkingVersion1
56 CurtinDisableNetworkRendering):60
61
62class FocalCurtinDisableNetworkRendering(relbase.focal, TestKlass1):
63 __test__ = True
64
65
66class HirsuteCurtinDisableNetworkRendering(relbase.hirsute, TestKlass1):
67 __test__ = True
68
69
70class GroovyCurtinDisableNetworkRendering(relbase.groovy, TestKlass1):
71 __test__ = True
72
73
74class FocalCurtinDisableCloudInitNetworking(relbase.focal, TestKlass2):
57 __test__ = True75 __test__ = True
5876
5977
60class GroovyCurtinDisableNetworkRendering(relbase.groovy,78class HirsuteCurtinDisableCloudInitNetworking(relbase.hirsute, TestKlass2):
61 CurtinDisableNetworkRendering):
62 __test__ = True79 __test__ = True
6380
6481
65class FocalCurtinDisableCloudInitNetworkingVersion1(82class GroovyCurtinDisableCloudInitNetworking(relbase.groovy, TestKlass2):
66 relbase.focal,
67 CurtinDisableCloudInitNetworkingVersion1
68):
69 __test__ = True83 __test__ = True
7084
7185
72class GroovyCurtinDisableCloudInitNetworkingVersion1(86class FocalCurtinDisableCloudInitNetworkingVersion1(relbase.focal, TestKlass3):
73 relbase.groovy,
74 CurtinDisableCloudInitNetworkingVersion1
75):
76 __test__ = True87 __test__ = True
7788
7889
79class FocalCurtinDisableCloudInitNetworking(relbase.focal,90class HirsuteCurtinDisableCloudInitNetworkingVersion1(relbase.hirsute,
80 CurtinDisableCloudInitNetworking):91 TestKlass3):
81 __test__ = True92 __test__ = True
8293
8394
84class GroovyCurtinDisableCloudInitNetworking(relbase.groovy,95class GroovyCurtinDisableCloudInitNetworkingVersion1(relbase.groovy,
85 CurtinDisableCloudInitNetworking):96 TestKlass3):
86 __test__ = True97 __test__ = True
8798
8899
diff --git a/tests/vmtests/test_network_ipv6_static.py b/tests/vmtests/test_network_ipv6_static.py
index 28ff697..c3e5b5a 100644
--- a/tests/vmtests/test_network_ipv6_static.py
+++ b/tests/vmtests/test_network_ipv6_static.py
@@ -27,6 +27,10 @@ class FocalTestNetworkIPV6Static(relbase.focal, TestNetworkIPV6StaticAbs):
27 __test__ = True27 __test__ = True
2828
2929
30class HirsuteTestNetworkIPV6Static(relbase.hirsute, TestNetworkIPV6StaticAbs):
31 __test__ = True
32
33
30class GroovyTestNetworkIPV6Static(relbase.groovy, TestNetworkIPV6StaticAbs):34class GroovyTestNetworkIPV6Static(relbase.groovy, TestNetworkIPV6StaticAbs):
31 __test__ = True35 __test__ = True
3236
diff --git a/tests/vmtests/test_network_ipv6_vlan.py b/tests/vmtests/test_network_ipv6_vlan.py
index 226f52e..96c056b 100644
--- a/tests/vmtests/test_network_ipv6_vlan.py
+++ b/tests/vmtests/test_network_ipv6_vlan.py
@@ -26,6 +26,10 @@ class FocalTestNetworkIPV6Vlan(relbase.focal, TestNetworkIPV6VlanAbs):
26 __test__ = True26 __test__ = True
2727
2828
29class HirsuteTestNetworkIPV6Vlan(relbase.hirsute, TestNetworkIPV6VlanAbs):
30 __test__ = True
31
32
29class GroovyTestNetworkIPV6Vlan(relbase.groovy, TestNetworkIPV6VlanAbs):33class GroovyTestNetworkIPV6Vlan(relbase.groovy, TestNetworkIPV6VlanAbs):
30 __test__ = True34 __test__ = True
3135
diff --git a/tests/vmtests/test_network_mtu.py b/tests/vmtests/test_network_mtu.py
index c70b9e0..8e6e57c 100644
--- a/tests/vmtests/test_network_mtu.py
+++ b/tests/vmtests/test_network_mtu.py
@@ -193,6 +193,10 @@ class FocalTestNetworkMtu(relbase.focal, TestNetworkMtuNetworkdAbs):
193 __test__ = True193 __test__ = True
194194
195195
196class HirsuteTestNetworkMtu(relbase.hirsute, TestNetworkMtuNetworkdAbs):
197 __test__ = True
198
199
196class GroovyTestNetworkMtu(relbase.groovy, TestNetworkMtuNetworkdAbs):200class GroovyTestNetworkMtu(relbase.groovy, TestNetworkMtuNetworkdAbs):
197 __test__ = True201 __test__ = True
198202
diff --git a/tests/vmtests/test_network_ovs.py b/tests/vmtests/test_network_ovs.py
index 0cee17e..a32d637 100644
--- a/tests/vmtests/test_network_ovs.py
+++ b/tests/vmtests/test_network_ovs.py
@@ -38,6 +38,10 @@ class FocalTestNetworkOvs(relbase.focal, TestNetworkOvsAbs):
38 __test__ = True38 __test__ = True
3939
4040
41class HirsuteTestNetworkOvs(relbase.hirsute, TestNetworkOvsAbs):
42 __test__ = True
43
44
41class GroovyTestNetworkOvs(relbase.groovy, TestNetworkOvsAbs):45class GroovyTestNetworkOvs(relbase.groovy, TestNetworkOvsAbs):
42 __test__ = True46 __test__ = True
4347
diff --git a/tests/vmtests/test_network_static.py b/tests/vmtests/test_network_static.py
index e0abd54..abcbb75 100644
--- a/tests/vmtests/test_network_static.py
+++ b/tests/vmtests/test_network_static.py
@@ -32,6 +32,10 @@ class FocalTestNetworkStatic(relbase.focal, TestNetworkStaticAbs):
32 __test__ = True32 __test__ = True
3333
3434
35class HirsuteTestNetworkStatic(relbase.hirsute, TestNetworkStaticAbs):
36 __test__ = True
37
38
35class GroovyTestNetworkStatic(relbase.groovy, TestNetworkStaticAbs):39class GroovyTestNetworkStatic(relbase.groovy, TestNetworkStaticAbs):
36 __test__ = True40 __test__ = True
3741
diff --git a/tests/vmtests/test_network_static_routes.py b/tests/vmtests/test_network_static_routes.py
index f99d9d5..e158f9a 100644
--- a/tests/vmtests/test_network_static_routes.py
+++ b/tests/vmtests/test_network_static_routes.py
@@ -33,6 +33,11 @@ class FocalTestNetworkStaticRoutes(relbase.focal,
33 __test__ = True33 __test__ = True
3434
3535
36class HirsuteTestNetworkStaticRoutes(relbase.hirsute,
37 TestNetworkStaticRoutesAbs):
38 __test__ = True
39
40
36class GroovyTestNetworkStaticRoutes(relbase.groovy,41class GroovyTestNetworkStaticRoutes(relbase.groovy,
37 TestNetworkStaticRoutesAbs):42 TestNetworkStaticRoutesAbs):
38 __test__ = True43 __test__ = True
diff --git a/tests/vmtests/test_network_vlan.py b/tests/vmtests/test_network_vlan.py
index 691ba83..af52af0 100644
--- a/tests/vmtests/test_network_vlan.py
+++ b/tests/vmtests/test_network_vlan.py
@@ -83,6 +83,13 @@ class FocalTestNetworkVlan(relbase.focal, TestNetworkVlanAbs):
83 return super().test_ip_output()83 return super().test_ip_output()
8484
8585
86class HirsuteTestNetworkVlan(relbase.hirsute, TestNetworkVlanAbs):
87 __test__ = True
88
89 def test_ip_output(self):
90 return super().test_ip_output()
91
92
86class GroovyTestNetworkVlan(relbase.groovy, TestNetworkVlanAbs):93class GroovyTestNetworkVlan(relbase.groovy, TestNetworkVlanAbs):
87 __test__ = True94 __test__ = True
8895
diff --git a/tests/vmtests/test_nvme.py b/tests/vmtests/test_nvme.py
index 39f9f3c..9531a80 100644
--- a/tests/vmtests/test_nvme.py
+++ b/tests/vmtests/test_nvme.py
@@ -143,6 +143,10 @@ class FocalTestNvmeBcache(relbase.focal, TestNvmeBcacheAbs):
143 __test__ = True143 __test__ = True
144144
145145
146class HirsuteTestNvmeBcache(relbase.hirsute, TestNvmeBcacheAbs):
147 __test__ = True
148
149
146class GroovyTestNvmeBcache(relbase.groovy, TestNvmeBcacheAbs):150class GroovyTestNvmeBcache(relbase.groovy, TestNvmeBcacheAbs):
147 __test__ = True151 __test__ = True
148152
diff --git a/tests/vmtests/test_panic.py b/tests/vmtests/test_panic.py
index 7b1fdbe..e841f2a 100644
--- a/tests/vmtests/test_panic.py
+++ b/tests/vmtests/test_panic.py
@@ -29,6 +29,10 @@ class FocalTestInstallPanic(relbase.focal, TestInstallPanic):
29 __test__ = True29 __test__ = True
3030
3131
32class HirsuteTestInstallPanic(relbase.hirsute, TestInstallPanic):
33 __test__ = True
34
35
32class GroovyTestInstallPanic(relbase.groovy, TestInstallPanic):36class GroovyTestInstallPanic(relbase.groovy, TestInstallPanic):
33 __test__ = True37 __test__ = True
3438
diff --git a/tests/vmtests/test_pollinate_useragent.py b/tests/vmtests/test_pollinate_useragent.py
index ed14719..4aeefd8 100644
--- a/tests/vmtests/test_pollinate_useragent.py
+++ b/tests/vmtests/test_pollinate_useragent.py
@@ -65,6 +65,10 @@ class FocalTestPollinateUserAgent(relbase.focal, TestPollinateUserAgent):
65 __test__ = True65 __test__ = True
6666
6767
68class HirsuteTestPollinateUserAgent(relbase.hirsute, TestPollinateUserAgent):
69 __test__ = True
70
71
68class GroovyTestPollinateUserAgent(relbase.groovy, TestPollinateUserAgent):72class GroovyTestPollinateUserAgent(relbase.groovy, TestPollinateUserAgent):
69 __test__ = True73 __test__ = True
7074
diff --git a/tests/vmtests/test_preserve.py b/tests/vmtests/test_preserve.py
index 998218c..28dd34f 100644
--- a/tests/vmtests/test_preserve.py
+++ b/tests/vmtests/test_preserve.py
@@ -29,6 +29,10 @@ class FocalTestPreserve(relbase.focal, TestPreserve):
29 __test__ = True29 __test__ = True
3030
3131
32class HirsuteTestPreserve(relbase.hirsute, TestPreserve):
33 __test__ = True
34
35
32class GroovyTestPreserve(relbase.groovy, TestPreserve):36class GroovyTestPreserve(relbase.groovy, TestPreserve):
33 __test__ = True37 __test__ = True
3438
diff --git a/tests/vmtests/test_preserve_bcache.py b/tests/vmtests/test_preserve_bcache.py
index bd91c5a..2e6b412 100644
--- a/tests/vmtests/test_preserve_bcache.py
+++ b/tests/vmtests/test_preserve_bcache.py
@@ -60,6 +60,10 @@ class FocalTestPreserveBcache(relbase.focal, TestPreserveBcache):
60 __test__ = True60 __test__ = True
6161
6262
63class HirsuteTestPreserveBcache(relbase.hirsute, TestPreserveBcache):
64 __test__ = True
65
66
63class GroovyTestPreserveBcache(relbase.groovy, TestPreserveBcache):67class GroovyTestPreserveBcache(relbase.groovy, TestPreserveBcache):
64 __test__ = True68 __test__ = True
6569
diff --git a/tests/vmtests/test_preserve_lvm.py b/tests/vmtests/test_preserve_lvm.py
index 0ed7ad4..274e9c6 100644
--- a/tests/vmtests/test_preserve_lvm.py
+++ b/tests/vmtests/test_preserve_lvm.py
@@ -73,6 +73,10 @@ class FocalTestLvmPreserve(relbase.focal, TestLvmPreserveAbs):
73 __test__ = True73 __test__ = True
7474
7575
76class HirsuteTestLvmPreserve(relbase.hirsute, TestLvmPreserveAbs):
77 __test__ = True
78
79
76class GroovyTestLvmPreserve(relbase.groovy, TestLvmPreserveAbs):80class GroovyTestLvmPreserve(relbase.groovy, TestLvmPreserveAbs):
77 __test__ = True81 __test__ = True
7882
diff --git a/tests/vmtests/test_preserve_partition_wipe_vg.py b/tests/vmtests/test_preserve_partition_wipe_vg.py
index 58b1f65..2469615 100644
--- a/tests/vmtests/test_preserve_partition_wipe_vg.py
+++ b/tests/vmtests/test_preserve_partition_wipe_vg.py
@@ -29,6 +29,10 @@ class FocalTestPreserveWipeLvm(relbase.focal, TestPreserveWipeLvm):
29 __test__ = True29 __test__ = True
3030
3131
32class HirsuteTestPreserveWipeLvm(relbase.hirsute, TestPreserveWipeLvm):
33 __test__ = True
34
35
32class GroovyTestPreserveWipeLvm(relbase.groovy, TestPreserveWipeLvm):36class GroovyTestPreserveWipeLvm(relbase.groovy, TestPreserveWipeLvm):
33 __test__ = True37 __test__ = True
3438
@@ -52,6 +56,11 @@ class FocalTestPreserveWipeLvmSimple(relbase.focal, TestPreserveWipeLvmSimple):
52 __test__ = True56 __test__ = True
5357
5458
59class HirsuteTestPreserveWipeLvmSimple(relbase.hirsute,
60 TestPreserveWipeLvmSimple):
61 __test__ = True
62
63
55class GroovyTestPreserveWipeLvmSimple(relbase.groovy,64class GroovyTestPreserveWipeLvmSimple(relbase.groovy,
56 TestPreserveWipeLvmSimple):65 TestPreserveWipeLvmSimple):
57 __test__ = True66 __test__ = True
diff --git a/tests/vmtests/test_preserve_raid.py b/tests/vmtests/test_preserve_raid.py
index 15f2f50..7fc6daa 100644
--- a/tests/vmtests/test_preserve_raid.py
+++ b/tests/vmtests/test_preserve_raid.py
@@ -29,6 +29,10 @@ class FocalTestPreserveRAID(relbase.focal, TestPreserveRAID):
29 __test__ = True29 __test__ = True
3030
3131
32class HirsuteTestPreserveRAID(relbase.hirsute, TestPreserveRAID):
33 __test__ = True
34
35
32class GroovyTestPreserveRAID(relbase.groovy, TestPreserveRAID):36class GroovyTestPreserveRAID(relbase.groovy, TestPreserveRAID):
33 __test__ = True37 __test__ = True
3438
diff --git a/tests/vmtests/test_raid5_bcache.py b/tests/vmtests/test_raid5_bcache.py
index 12c1878..493c0fd 100644
--- a/tests/vmtests/test_raid5_bcache.py
+++ b/tests/vmtests/test_raid5_bcache.py
@@ -92,6 +92,10 @@ class FocalTestRaid5Bcache(relbase.focal, TestMdadmBcacheAbs):
92 __test__ = True92 __test__ = True
9393
9494
95class HirsuteTestRaid5Bcache(relbase.hirsute, TestMdadmBcacheAbs):
96 __test__ = True
97
98
95class GroovyTestRaid5Bcache(relbase.groovy, TestMdadmBcacheAbs):99class GroovyTestRaid5Bcache(relbase.groovy, TestMdadmBcacheAbs):
96 __test__ = True100 __test__ = True
97101
diff --git a/tests/vmtests/test_raid_partition_to_disk.py b/tests/vmtests/test_raid_partition_to_disk.py
index 4635713..aaa73f2 100644
--- a/tests/vmtests/test_raid_partition_to_disk.py
+++ b/tests/vmtests/test_raid_partition_to_disk.py
@@ -22,6 +22,10 @@ class FocalTestRAIDPartitionToDisk(relbase.focal, TestRAIDPartitionToDisk):
22 __test__ = True22 __test__ = True
2323
2424
25class HirsuteTestRAIDPartitionToDisk(relbase.hirsute, TestRAIDPartitionToDisk):
26 __test__ = True
27
28
25class GroovyTestRAIDPartitionToDisk(relbase.groovy, TestRAIDPartitionToDisk):29class GroovyTestRAIDPartitionToDisk(relbase.groovy, TestRAIDPartitionToDisk):
26 __test__ = True30 __test__ = True
2731
diff --git a/tests/vmtests/test_reuse_lvm_member.py b/tests/vmtests/test_reuse_lvm_member.py
index 87afcfb..eba3d1b 100644
--- a/tests/vmtests/test_reuse_lvm_member.py
+++ b/tests/vmtests/test_reuse_lvm_member.py
@@ -26,6 +26,11 @@ class FocalTestReuseLVMMemberPartition(relbase.focal,
26 __test__ = True26 __test__ = True
2727
2828
29class HirsuteTestReuseLVMMemberPartition(relbase.hirsute,
30 TestReuseLVMMemberPartition):
31 __test__ = True
32
33
29class GroovyTestReuseLVMMemberPartition(relbase.groovy,34class GroovyTestReuseLVMMemberPartition(relbase.groovy,
30 TestReuseLVMMemberPartition):35 TestReuseLVMMemberPartition):
31 __test__ = True36 __test__ = True
diff --git a/tests/vmtests/test_reuse_msdos_partitions.py b/tests/vmtests/test_reuse_msdos_partitions.py
index 9f18d3c..77431bf 100644
--- a/tests/vmtests/test_reuse_msdos_partitions.py
+++ b/tests/vmtests/test_reuse_msdos_partitions.py
@@ -23,6 +23,11 @@ class FocalTestReuseMSDOSPartitions(relbase.focal,
23 __test__ = True23 __test__ = True
2424
2525
26class HirsuteTestReuseMSDOSPartitions(relbase.hirsute,
27 TestReuseMSDOSPartitions):
28 __test__ = True
29
30
26class GroovyTestReuseMSDOSPartitions(relbase.groovy,31class GroovyTestReuseMSDOSPartitions(relbase.groovy,
27 TestReuseMSDOSPartitions):32 TestReuseMSDOSPartitions):
28 __test__ = True33 __test__ = True
diff --git a/tests/vmtests/test_reuse_raid_member.py b/tests/vmtests/test_reuse_raid_member.py
index 7be98f3..e3723e8 100644
--- a/tests/vmtests/test_reuse_raid_member.py
+++ b/tests/vmtests/test_reuse_raid_member.py
@@ -32,6 +32,10 @@ class FocalTestReuseRAIDMember(relbase.focal, TestReuseRAIDMember):
32 __test__ = True32 __test__ = True
3333
3434
35class HirsuteTestReuseRAIDMember(relbase.hirsute, TestReuseRAIDMember):
36 __test__ = True
37
38
35class GroovyTestReuseRAIDMember(relbase.groovy, TestReuseRAIDMember):39class GroovyTestReuseRAIDMember(relbase.groovy, TestReuseRAIDMember):
36 __test__ = True40 __test__ = True
3741
@@ -46,6 +50,11 @@ class FocalTestReuseRAIDMemberPartition(relbase.focal,
46 __test__ = True50 __test__ = True
4751
4852
53class HirsuteTestReuseRAIDMemberPartition(relbase.hirsute,
54 TestReuseRAIDMemberPartition):
55 __test__ = True
56
57
49class GroovyTestReuseRAIDMemberPartition(relbase.groovy,58class GroovyTestReuseRAIDMemberPartition(relbase.groovy,
50 TestReuseRAIDMemberPartition):59 TestReuseRAIDMemberPartition):
51 __test__ = True60 __test__ = True
diff --git a/tests/vmtests/test_reuse_uefi_esp.py b/tests/vmtests/test_reuse_uefi_esp.py
index 46e7ac7..46f3a57 100644
--- a/tests/vmtests/test_reuse_uefi_esp.py
+++ b/tests/vmtests/test_reuse_uefi_esp.py
@@ -42,6 +42,13 @@ class FocalTestUefiReuseEsp(relbase.focal, TestUefiReuseEspAbs):
42 return super().test_efiboot_menu_has_one_distro_entry()42 return super().test_efiboot_menu_has_one_distro_entry()
4343
4444
45class HirsuteTestUefiReuseEsp(relbase.hirsute, TestUefiReuseEspAbs):
46 __test__ = True
47
48 def test_efiboot_menu_has_one_distro_entry(self):
49 return super().test_efiboot_menu_has_one_distro_entry()
50
51
45class GroovyTestUefiReuseEsp(relbase.groovy, TestUefiReuseEspAbs):52class GroovyTestUefiReuseEsp(relbase.groovy, TestUefiReuseEspAbs):
46 __test__ = True53 __test__ = True
4754
diff --git a/tests/vmtests/test_simple.py b/tests/vmtests/test_simple.py
index 9e71047..83dca96 100644
--- a/tests/vmtests/test_simple.py
+++ b/tests/vmtests/test_simple.py
@@ -56,6 +56,13 @@ class FocalTestSimple(relbase.focal, TestSimple):
56 self.output_files_exist(["netplan.yaml"])56 self.output_files_exist(["netplan.yaml"])
5757
5858
59class HirsuteTestSimple(relbase.hirsute, TestSimple):
60 __test__ = True
61
62 def test_output_files_exist(self):
63 self.output_files_exist(["netplan.yaml"])
64
65
59class GroovyTestSimple(relbase.groovy, TestSimple):66class GroovyTestSimple(relbase.groovy, TestSimple):
60 __test__ = True67 __test__ = True
6168
@@ -112,6 +119,13 @@ class FocalTestSimpleStorage(relbase.focal, TestSimpleStorage):
112 self.output_files_exist(["netplan.yaml"])119 self.output_files_exist(["netplan.yaml"])
113120
114121
122class HirsuteTestSimpleStorage(relbase.hirsute, TestSimpleStorage):
123 __test__ = True
124
125 def test_output_files_exist(self):
126 self.output_files_exist(["netplan.yaml"])
127
128
115class GroovyTestSimpleStorage(relbase.groovy, TestSimpleStorage):129class GroovyTestSimpleStorage(relbase.groovy, TestSimpleStorage):
116 __test__ = True130 __test__ = True
117131
@@ -145,6 +159,13 @@ class FocalTestGrubNoDefaults(relbase.focal, TestGrubNoDefaults):
145 self.output_files_exist(["netplan.yaml"])159 self.output_files_exist(["netplan.yaml"])
146160
147161
162class HirsuteTestGrubNoDefaults(relbase.hirsute, TestGrubNoDefaults):
163 __test__ = True
164
165 def test_output_files_exist(self):
166 self.output_files_exist(["netplan.yaml"])
167
168
148class GroovyTestGrubNoDefaults(relbase.groovy, TestGrubNoDefaults):169class GroovyTestGrubNoDefaults(relbase.groovy, TestGrubNoDefaults):
149 __test__ = True170 __test__ = True
150171
diff --git a/tests/vmtests/test_uefi_basic.py b/tests/vmtests/test_uefi_basic.py
index 932c1c8..0ed4fab 100644
--- a/tests/vmtests/test_uefi_basic.py
+++ b/tests/vmtests/test_uefi_basic.py
@@ -114,6 +114,10 @@ class FocalUefiTestBasic(relbase.focal, TestBasicAbs):
114 __test__ = True114 __test__ = True
115115
116116
117class HirsuteUefiTestBasic(relbase.hirsute, TestBasicAbs):
118 __test__ = True
119
120
117class GroovyUefiTestBasic(relbase.groovy, TestBasicAbs):121class GroovyUefiTestBasic(relbase.groovy, TestBasicAbs):
118 __test__ = True122 __test__ = True
119123
@@ -138,6 +142,11 @@ class FocalUefiTestBasic4k(relbase.focal, TestBasicAbs):
138 disk_block_size = 4096142 disk_block_size = 4096
139143
140144
145class HirsuteUefiTestBasic4k(relbase.hirsute, TestBasicAbs):
146 __test__ = True
147 disk_block_size = 4096
148
149
141class GroovyUefiTestBasic4k(relbase.groovy, TestBasicAbs):150class GroovyUefiTestBasic4k(relbase.groovy, TestBasicAbs):
142 __test__ = True151 __test__ = True
143 disk_block_size = 4096152 disk_block_size = 4096
diff --git a/tests/vmtests/test_zfsroot.py b/tests/vmtests/test_zfsroot.py
index 952bf7b..21e33b6 100644
--- a/tests/vmtests/test_zfsroot.py
+++ b/tests/vmtests/test_zfsroot.py
@@ -101,6 +101,11 @@ class FocalTestZfsRoot(relbase.focal, TestZfsRootAbs):
101 mem = 4096101 mem = 4096
102102
103103
104class HirsuteTestZfsRoot(relbase.hirsute, TestZfsRootAbs):
105 __test__ = True
106 mem = 4096
107
108
104class GroovyTestZfsRoot(relbase.groovy, TestZfsRootAbs):109class GroovyTestZfsRoot(relbase.groovy, TestZfsRootAbs):
105 __test__ = True110 __test__ = True
106 mem = 4096111 mem = 4096
@@ -130,6 +135,11 @@ class FocalTestZfsRootFsType(relbase.focal, TestZfsRootFsTypeAbs):
130 mem = 4096135 mem = 4096
131136
132137
138class HirsuteTestZfsRootFsType(relbase.hirsute, TestZfsRootFsTypeAbs):
139 __test__ = True
140 mem = 4096
141
142
133class GroovyTestZfsRootFsType(relbase.groovy, TestZfsRootFsTypeAbs):143class GroovyTestZfsRootFsType(relbase.groovy, TestZfsRootFsTypeAbs):
134 __test__ = True144 __test__ = True
135145
diff --git a/tools/vmtest-add-release b/tools/vmtest-add-release
136new file mode 100755146new file mode 100755
index 0000000..7a74296
--- /dev/null
+++ b/tools/vmtest-add-release
@@ -0,0 +1,66 @@
1#!/usr/bin/python3
2
3import argparse
4import glob
5import os
6
7
8def update_file(fname, previous, distro):
9 new_content = []
10 new_class = []
11 modified = False
12 copying_class = False
13 with open(fname, 'r') as fh:
14 # using read().splitlines() to strip the newline char
15 for line in fh.read().splitlines():
16 # if we find class of previous release, copy and replace with
17 # new release
18 if line.startswith('class %s' % previous):
19 copying_class = True
20 elif copying_class and line and not line[0].isspace():
21 copying_class = False
22 # done copying class; transform and extend
23 nc = "\n".join(new_class)
24 nc = nc.replace(previous, distro) # Focal -> Groovy
25 nc = nc.replace(previous.lower(), distro.lower()) # focal -> groovy
26 nc += "\n"
27 new_content.extend(nc.splitlines())
28 new_class = []
29
30 if copying_class:
31 # retain existing lines, make a copy for the new class
32 new_content.append(line)
33 new_class.append(line)
34 modified = True
35 else:
36 new_content.append(line)
37
38 # skip a re-write of content if no modifications
39 if modified:
40 updated_fn = fname
41 with open(updated_fn, 'w') as wfh:
42 wfh.write("\n".join(new_content) + '\n')
43 print("Wrote updated file: %s" % updated_fn)
44
45
46if __name__ == "__main__":
47 parser = argparse.ArgumentParser(
48 prog="vmtest-add-release",
49 description="Tool to add vmtest classes by distro release")
50 parser.add_argument('--distro-release', '-d',
51 action='store', required=True)
52 parser.add_argument('--path', '-p', action='store', required=True)
53 parser.add_argument('--previous-release', '-r',
54 action='store', required=True)
55
56 args = parser.parse_args()
57 distro = args.distro_release.title()
58 previous = args.previous_release.title()
59 target = args.path
60 if os.path.isdir(target):
61 files = glob.glob(os.path.normpath(target) + '/' + 'test_*.py')
62 else:
63 files = [target]
64
65 for fname in files:
66 update_file(fname, previous, distro)

Subscribers

People subscribed via source and target branches