Skip to content

Commit b885362

Browse files
authored
[CI] Refactor of tvm.testing.requires_* annotations (#11313)
* [CI] Improved skip messages when using @tvm.testing.requires_* Previously, the same message was given regardless of why a test couldn't be run. This has been split up into separate checks for TVM cmake options in `config.cmake`, enabled targets in `TVM_TEST_TARGETS` environment variable, and checks for available hardware. * Refactor to specify repeated feature marks, compile-only markers * Fixed lint errors * Import from contrib, not from a different import * Removed use of requires_llvm() as a list of marks * Corrected mark from requires_gpu to requires_cuda * Adding missing "not" * Added USE_CMSISNN as a requirement for corstone300.
1 parent cee74c9 commit b885362

File tree

6 files changed

+463
-383
lines changed

6 files changed

+463
-383
lines changed

python/tvm/testing/plugin.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@
5656
def pytest_configure(config):
5757
"""Runs at pytest configure time, defines marks to be used later."""
5858

59-
for markername, desc in MARKERS.items():
60-
config.addinivalue_line("markers", "{}: {}".format(markername, desc))
59+
for feature in utils.Feature._all_features.values():
60+
feature._register_marker(config)
6161

6262
print("enabled targets:", "; ".join(map(lambda x: x[0], utils.enabled_targets())))
6363
print("pytest marker:", config.option.markexpr)
@@ -269,25 +269,26 @@ def _target_to_requirement(target):
269269

270270
# mapping from target to decorator
271271
if target.kind.name == "cuda" and "cudnn" in target.attrs.get("libs", []):
272-
return utils.requires_cudnn()
272+
return utils.requires_cudnn.marks()
273273
if target.kind.name == "cuda" and "cublas" in target.attrs.get("libs", []):
274-
return utils.requires_cublas()
274+
return utils.requires_cublas.marks()
275275
if target.kind.name == "cuda":
276-
return utils.requires_cuda()
276+
return utils.requires_cuda.marks()
277277
if target.kind.name == "rocm":
278-
return utils.requires_rocm()
278+
return utils.requires_rocm.marks()
279279
if target.kind.name == "vulkan":
280-
return utils.requires_vulkan()
280+
return utils.requires_vulkan.marks()
281281
if target.kind.name == "nvptx":
282-
return utils.requires_nvptx()
282+
return utils.requires_nvptx.marks()
283283
if target.kind.name == "metal":
284-
return utils.requires_metal()
284+
return utils.requires_metal.marks()
285285
if target.kind.name == "opencl":
286-
return utils.requires_opencl()
286+
return utils.requires_opencl.marks()
287287
if target.kind.name == "llvm":
288-
return utils.requires_llvm()
288+
return utils.requires_llvm.marks()
289289
if target.kind.name == "hexagon":
290-
return utils.requires_hexagon()
290+
return utils.requires_hexagon.marks()
291+
291292
return []
292293

293294

0 commit comments

Comments
 (0)