MCPcopy Create free account
hub / github.com/apache/tvm / _add_target_specific_marks

Function _add_target_specific_marks

python/tvm/testing/plugin.py:144–219  ·  view source on GitHub ↗

Add any target-specific marks to parametrizations over target

(metafunc)

Source from the content-addressed store, hash-verified

142
143
144def _add_target_specific_marks(metafunc):
145 """Add any target-specific marks to parametrizations over target"""
146
147 def update_parametrize_target_arg(
148 mark,
149 argnames,
150 argvalues,
151 *args,
152 **kwargs,
153 ):
154 args = [arg.strip() for arg in argnames.split(",") if arg.strip()]
155 if "target" in args:
156 target_i = args.index("target")
157
158 new_argvalues = []
159 for argvalue in argvalues:
160 if isinstance(argvalue, _pytest.mark.structures.ParameterSet):
161 # The parametrized value is already a
162 # pytest.param, so track any marks already
163 # defined.
164 param_set = argvalue.values
165 target = param_set[target_i]
166 additional_marks = argvalue.marks
167 elif len(args) == 1:
168 # Single value parametrization, argvalue is a list of values.
169 target = argvalue
170 param_set = (target,)
171 additional_marks = []
172 else:
173 # Multiple correlated parameters, argvalue is a list of tuple of values.
174 param_set = argvalue
175 target = param_set[target_i]
176 additional_marks = []
177
178 if mark in metafunc.definition.own_markers:
179 xfail_targets = getattr(metafunc.function, "tvm_known_failing_targets", [])
180 if isinstance(target, str):
181 target_kind = target.split()[0]
182 elif isinstance(target, dict):
183 target_kind = target["kind"]
184 else:
185 target_kind = target.kind.name
186 if target_kind in xfail_targets:
187 additional_marks.append(
188 pytest.mark.xfail(
189 reason=f'Known failing test for target "{target_kind}"'
190 )
191 )
192
193 new_argvalues.append(
194 pytest.param(
195 *param_set, marks=_target_to_requirement(target) + additional_marks
196 )
197 )
198
199 try:
200 argvalues[:] = new_argvalues
201 except TypeError as err:

Callers 1

pytest_generate_testsFunction · 0.85

Calls 1

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…