Skip to content

Commit

Permalink
[OpenVINO backend] Provide more granular tests exclusion mechanism (k…
Browse files Browse the repository at this point in the history
…eras-team#20845)

* [OpenVINO backend] Provide more granular tests exclusion mechanism

This mechanism is required for open-source community who will provide PRs for each operation.
In order to validate PR with the concrete operation support, they should remove the corresponding line.

Signed-off-by: Kazantsev, Roman <[email protected]>

* Optimize code in conftest.py

Signed-off-by: Kazantsev, Roman <[email protected]>

* Format code file

Signed-off-by: Kazantsev, Roman <[email protected]>

* Update keras/src/backend/openvino/excluded_concrete_tests.txt

---------

Signed-off-by: Kazantsev, Roman <[email protected]>
  • Loading branch information
rkazants authored Feb 2, 2025
1 parent 06fb0ae commit 00aeab3
Show file tree
Hide file tree
Showing 3 changed files with 123 additions and 1 deletion.
21 changes: 21 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,34 @@ def pytest_configure(config):


def pytest_collection_modifyitems(config, items):
with open(
"keras/src/backend/openvino/excluded_concrete_tests.txt", "r"
) as file:
openvino_skipped_tests = file.readlines()
# it is necessary to check if stripped line is not empty
# and exclude such lines
openvino_skipped_tests = [
line.strip() for line in openvino_skipped_tests if line.strip()
]

requires_trainable_backend = pytest.mark.skipif(
backend() == "numpy" or backend() == "openvino",
reason="Trainer not implemented for NumPy and OpenVINO backend.",
)
for item in items:
if "requires_trainable_backend" in item.keywords:
item.add_marker(requires_trainable_backend)
# also, skip concrete tests for openvino, listed in the special file
# this is more granular mechanism to exclude tests rather
# than using --ignore option
for skipped_test in openvino_skipped_tests:
if skipped_test in item.nodeid:
item.add_marker(
skip_if_backend(
"openvino",
"Not supported operation by openvino backend",
)
)


def skip_if_backend(given_backend, reason):
Expand Down
102 changes: 102 additions & 0 deletions keras/src/backend/openvino/excluded_concrete_tests.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
NumPyTestRot90
NumpyArrayCreateOpsCorrectnessTest
NumpyDtypeTest
HistogramTest
NumpyOneInputOpsCorrectnessTest::test_all
NumpyOneInputOpsCorrectnessTest::test_amax
NumpyOneInputOpsCorrectnessTest::test_amin
NumpyOneInputOpsCorrectnessTest::test_any
NumpyOneInputOpsCorrectnessTest::test_argmax
NumpyOneInputOpsCorrectnessTest::test_argmin
NumpyOneInputOpsCorrectnessTest::test_argpartition
NumpyOneInputOpsCorrectnessTest::test_argsort
NumpyOneInputOpsCorrectnessTest::test_array
NumpyOneInputOpsCorrectnessTest::test_average
NumpyOneInputOpsCorrectnessTest::test_bincount
NumpyOneInputOpsCorrectnessTest::test_bitwise_invert
NumpyOneInputOpsCorrectnessTest::test_conj
NumpyOneInputOpsCorrectnessTest::test_correlate
NumpyOneInputOpsCorrectnessTest::test_count_nonzero
NumpyOneInputOpsCorrectnessTest::test_cumprod
NumpyOneInputOpsCorrectnessTest::test_diag
NumpyOneInputOpsCorrectnessTest::test_diagonal
NumpyOneInputOpsCorrectnessTest::test_diff
NumpyOneInputOpsCorrectnessTest::test_dot
NumpyOneInputOpsCorrectnessTest::test_exp
NumpyOneInputOpsCorrectnessTest::test_expand_dims
NumpyOneInputOpsCorrectnessTest::test_flip
NumpyOneInputOpsCorrectnessTest::test_floor_divide
NumpyOneInputOpsCorrectnessTest::test_hstack
NumpyOneInputOpsCorrectnessTest::test_imag
NumpyOneInputOpsCorrectnessTest::test_isfinite
NumpyOneInputOpsCorrectnessTest::test_isinf
NumpyOneInputOpsCorrectnessTest::test_log
NumpyOneInputOpsCorrectnessTest::test_max
NumpyOneInputOpsCorrectnessTest::test_mean
NumpyOneInputOpsCorrectnessTest::test_median
NumpyOneInputOpsCorrectnessTest::test_meshgrid
NumpyOneInputOpsCorrectnessTest::test_min
NumpyOneInputOpsCorrectnessTest::test_moveaxis
NumpyOneInputOpsCorrectnessTest::test_nan_to_num
NumpyOneInputOpsCorrectnessTest::test_ndim
NumpyOneInputOpsCorrectnessTest::test_nonzero
NumpyOneInputOpsCorrectnessTest::test_pad_float16_constant_2
NumpyOneInputOpsCorrectnessTest::test_pad_float32_constant_2
NumpyOneInputOpsCorrectnessTest::test_pad_float64_constant_2
NumpyOneInputOpsCorrectnessTest::test_pad_int16_constant_2
NumpyOneInputOpsCorrectnessTest::test_pad_int8_constant_2
NumpyOneInputOpsCorrectnessTest::test_pad_uint8_constant_2
NumpyOneInputOpsCorrectnessTest::test_pad_int32_constant_2
NumpyOneInputOpsCorrectnessTest::test_prod
NumpyOneInputOpsCorrectnessTest::test_ravel
NumpyOneInputOpsCorrectnessTest::test_real
NumpyOneInputOpsCorrectnessTest::test_reciprocal
NumpyOneInputOpsCorrectnessTest::test_repeat
NumpyOneInputOpsCorrectnessTest::test_reshape
NumpyOneInputOpsCorrectnessTest::test_roll
NumpyOneInputOpsCorrectnessTest::test_round
NumpyOneInputOpsCorrectnessTest::test_searchsorted
NumpyOneInputOpsCorrectnessTest::test_select
NumpyOneInputOpsCorrectnessTest::test_signbit
NumpyOneInputOpsCorrectnessTest::test_size
NumpyOneInputOpsCorrectnessTest::test_slogdet
NumpyOneInputOpsCorrectnessTest::test_sort
NumpyOneInputOpsCorrectnessTest::test_split
NumpyOneInputOpsCorrectnessTest::test_sqrt_int32
NumpyOneInputOpsCorrectnessTest::test_squeeze
NumpyOneInputOpsCorrectnessTest::test_std
NumpyOneInputOpsCorrectnessTest::test_sum
NumpyOneInputOpsCorrectnessTest::test_swapaxes
NumpyOneInputOpsCorrectnessTest::test_tile
NumpyOneInputOpsCorrectnessTest::test_trace
NumpyOneInputOpsCorrectnessTest::test_transpose
NumpyOneInputOpsCorrectnessTest::test_tril
NumpyOneInputOpsCorrectnessTest::test_tril_in_layer
NumpyOneInputOpsCorrectnessTest::test_triu
NumpyOneInputOpsCorrectnessTest::test_trunc
NumpyOneInputOpsCorrectnessTest::test_unravel_index
NumpyOneInputOpsCorrectnessTest::test_var
NumpyOneInputOpsCorrectnessTest::test_vectorize
NumpyOneInputOpsCorrectnessTest::test_vstack
NumpyTwoInputOpsCorrectnessTest::test_append
NumpyTwoInputOpsCorrectnessTest::test_arctan2
NumpyTwoInputOpsCorrectnessTest::test_bitwise_and
NumpyTwoInputOpsCorrectnessTest::test_bitwise_left_shift
NumpyTwoInputOpsCorrectnessTest::test_bitwise_or
NumpyTwoInputOpsCorrectnessTest::test_bitwise_right_shift
NumpyTwoInputOpsCorrectnessTest::test_bitwise_xor
NumpyTwoInputOpsCorrectnessTest::test_cross
NumpyTwoInputOpsCorrectnessTest::test_digitize
NumpyTwoInputOpsCorrectnessTest::test_divide_no_nan
NumpyTwoInputOpsCorrectnessTest::test_einsum
NumpyTwoInputOpsCorrectnessTest::test_full_like
NumpyTwoInputOpsCorrectnessTest::test_inner
NumpyTwoInputOpsCorrectnessTest::test_isclose
NumpyTwoInputOpsCorrectnessTest::test_linspace
NumpyTwoInputOpsCorrectnessTest::test_logspace
NumpyTwoInputOpsCorrectnessTest::test_outer
NumpyTwoInputOpsCorrectnessTest::test_quantile
NumpyTwoInputOpsCorrectnessTest::test_take_along_axis
NumpyTwoInputOpsCorrectnessTest::test_tensordot
NumpyTwoInputOpsCorrectnessTest::test_vdot
NumpyTwoInputOpsCorrectnessTest::test_where
1 change: 0 additions & 1 deletion keras/src/backend/openvino/excluded_tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ keras/src/ops/image_test.py
keras/src/ops/linalg_test.py
keras/src/ops/math_test.py
keras/src/ops/nn_test.py
keras/src/ops/numpy_test.py
keras/src/optimizers
keras/src/quantizers
keras/src/random
Expand Down

0 comments on commit 00aeab3

Please sign in to comment.