-
Notifications
You must be signed in to change notification settings - Fork 707
Expand file tree
/
Copy pathimages.tests.toml
More file actions
189 lines (166 loc) · 7.02 KB
/
Copy pathimages.tests.toml
File metadata and controls
189 lines (166 loc) · 7.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# ============================================================================
# Image test catalog
# ============================================================================
#
# Single source of truth for all image-runnable test definitions and
# the named groups that bundle them.
#
# Schema:
# [tests.X] : a single unit of testing — one configuration of
# one runner/harness, with framework-specific
# options under [tests.X.<framework>].
# [test-groups.X] : a named bundle of tests an image (or component)
# can reference instead of enumerating members.
#
# Image and component associations are NOT defined here. They live with
# the entity that runs them:
# - base/images/images.toml (tests.tests = [...])
# - base/comps/<name>/<name>.comp.toml (tests.tests = [...])
#
# Both fields can mix per-test and per-group references:
# tests.tests = [{ name = "static-image-checks" }, { group = "x" }]
#
# Declarative metadata on [tests.X]:
# description : human-readable summary
# type : "pytest" | "tmt" | "lisa"
# kind : "functional" | "performance"
# long-running : boolean; omit unless the test may run for hours
# required-capabilities : capability tokens the image must declare
#
# ============================================================================
# =============================================================================
# Static image checks (pytest)
# =============================================================================
# Single shared pytest suite for static (offline) image validation.
[tests.static-image-checks]
type = "pytest"
description = "Offline image validation (shared + image-specific tests)"
kind = "functional"
[tests.static-image-checks.pytest]
working-dir = "tests"
install = "pyproject"
test-paths = ["cases/static/"]
# {capabilities} is substituted by azldev as a comma-separated list of
# the capabilities set to `true` for the image (e.g.
# "machine-bootable,systemd,runtime-package-management"). The pytest
# plugin parses this into a set; @pytest.mark.require_capability("...")
# tests that don't match are skipped.
extra-args = [
"--image-path", "{image-path}",
"--image-name", "{image-name}",
"--capabilities", "{capabilities}",
]
# Runtime container tests — validate live container behavior via podman.
[tests.runtime-container-tests]
type = "pytest"
description = "Runtime container validation (exec into live containers)"
kind = "functional"
required-capabilities = ["container"]
[tests.runtime-container-tests.pytest]
working-dir = "tests"
install = "pyproject"
test-paths = ["cases/runtime/"]
extra-args = [
"--image-path", "{image-path}",
"--image-name", "{image-name}",
"--capabilities", "{capabilities}",
]
# =============================================================================
# LISA tests
# =============================================================================
[tests.smoke-test]
type = "lisa"
description = "LISA smoke test — fastest PR gate (pinned)"
kind = "functional"
required-capabilities = ["machine-bootable"]
[tests.smoke-test.lisa]
criteria = { testcase-names = ["smoke_test"] }
[tests.functional-core]
type = "lisa"
description = "Core functional coverage (LISA priority=1)"
kind = "functional"
required-capabilities = ["machine-bootable"]
[tests.functional-core.lisa]
criteria = { priority = [1] }
[tests.functional-extended]
type = "lisa"
description = "Extended functional coverage (LISA priority=2)"
kind = "functional"
long-running = true
required-capabilities = ["machine-bootable"]
[tests.functional-extended.lisa]
criteria = { category = "functional", priority = [2] }
[tests.kernel-ltp]
type = "lisa"
description = "Kernel LTP (Linux Test Project) suite"
kind = "functional"
long-running = true
required-capabilities = ["machine-bootable"]
[tests.kernel-ltp.lisa]
criteria = { testcase-names = ["verify_ltp_lite"] }
[tests.xfs-filesystem]
type = "lisa"
description = "XFS data-disk filesystem tests (standard + NVMe)"
kind = "functional"
required-capabilities = ["machine-bootable"]
[tests.xfs-filesystem.lisa]
criteria = { testcase-names = ["verify_xfs_standard_datadisk", "verify_xfs_nvme_datadisk"] }
[tests.lisa-perf]
type = "lisa"
description = "LISA performance test areas (network, nested, nvme, perf_tool, storage)"
kind = "performance"
long-running = true
required-capabilities = ["machine-bootable"]
[tests.lisa-perf.lisa]
criteria = [
{ area = "network", category = "performance" },
{ area = "nested", category = "performance" },
{ area = "nvme", category = "performance" },
{ area = "perf_tool", category = "performance" },
{ area = "storage", category = "performance" },
]
[tests.lisa-fips]
type = "lisa"
description = "LISA FIPS status and enablement tests"
kind = "functional"
required-capabilities = ["machine-bootable", "fips-enabled"]
[tests.lisa-fips.lisa]
criteria = { testcase-names = ["verify_azl_fips_status", "verify_fips_enablement"] }
[tests.bvt-metrics]
type = "lisa"
description = "BVT-equivalent boot timing and footprint metrics validation"
kind = "functional"
metrics-enabled = true
required-capabilities = ["machine-bootable"]
[tests.bvt-metrics.lisa]
criteria = { testcase-names = ["verify_bvt_boot_metrics", "verify_bvt_footprint"] }
# ISO validation: installs the ISO and verifies core OS functionality in
# the guest.
[tests.iso-validation]
type = "lisa"
description = "Validates Azure Linux ISO installation and core OS functionality in the installed system"
kind = "functional"
long-running = true
required-capabilities = ["installer-media"]
[tests.iso-validation.lisa]
criteria = { testcase-names = ["verify_azurelinux_iso_install", "verify_lkg_iso_docker_container_workflows", "verify_lkg_iso_package_management_dnf", "verify_lkg_iso_dmi_firmware_metadata"] }
# ---- VM base test groups -------------------------------------------------
# Functional coverage applicable to a VM-shaped Azure Linux image.
[test-groups.vm-base-functional]
description = "Functional coverage for VM base images"
tests = [
{ name = "smoke-test" },
{ name = "functional-core" },
{ name = "functional-extended" },
{ name = "kernel-ltp" },
{ name = "xfs-filesystem" },
{ name = "bvt-metrics" },
]
# Performance-oriented coverage. Kept as a separate group because
# performance runs typically have a different cadence and budget than
# functional runs, and consumers may want to opt in independently.
[test-groups.vm-base-performance]
description = "Performance coverage for VM base images"
tests = [
{ name = "lisa-perf" },
]