From 82e4c46b8b6e6ba4b96a8f21f97a069f609fe0db Mon Sep 17 00:00:00 2001 From: Karolina Rogowska Date: Thu, 25 Aug 2022 17:14:25 +0200 Subject: [PATCH] marking tests that are os-dependent Signed-off-by: Karolina Rogowska --- .../tests/cache_ops/test_multistream_seq_cutoff.py | 5 ++++- test/functional/tests/ci/test_incremental_load_ci.py | 2 ++ test/functional/tests/ci/test_simulation_startup.py | 1 + .../tests/failover_standby/test_failover_advanced.py | 12 ++++++++---- .../tests/incremental_load/test_core_pool.py | 1 + .../functional/tests/initialize/test_clean_reboot.py | 3 ++- .../tests/initialize/test_startup_init_config.py | 5 +++++ test/functional/tests/io/trim/test_trim.py | 1 + test/functional/tests/io/trim/test_trim_stress.py | 3 ++- .../tests/io_class/test_io_class_occupancy.py | 3 +++ .../tests/io_class/test_io_class_occupancy_load.py | 1 + .../tests/io_class/test_io_class_occupancy_repart.py | 1 + .../tests/io_class/test_io_class_occupancy_resize.py | 1 + .../functional/tests/io_class/test_io_class_purge.py | 1 + test/functional/tests/io_class/test_io_class_wlth.py | 1 + .../tests/lazy_writes/cleaning_policy/test_acp.py | 3 ++- .../recovery/test_recovery_all_options.py | 3 ++- .../recovery/test_recovery_flush_reset.py | 4 +++- test/functional/tests/misc/test_weak_modules.py | 3 +++ test/functional/tests/performance/test_100p_hits.py | 3 ++- .../tests/security/test_compilation_flags.py | 5 ++++- test/functional/tests/stress/test_kedr.py | 2 +- 22 files changed, 51 insertions(+), 13 deletions(-) diff --git a/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py b/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py index f7f5849..d88e25d 100644 --- a/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py +++ b/test/functional/tests/cache_ops/test_multistream_seq_cutoff.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2020-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # import os @@ -23,6 +23,7 @@ random_thresholds = random.sample(range(1028, 1024 ** 2, 4), 3) random_stream_numbers = random.sample(range(2, 128), 3) +@pytest.mark.os_dependent @pytest.mark.parametrizex("streams_number", [1, 128] + random_stream_numbers) @pytest.mark.parametrizex("threshold", [Size(1, Unit.MebiByte), Size(1, Unit.GibiByte)] @@ -130,6 +131,7 @@ def run_dd(target_path, count, seek): TestRun.LOGGER.info(f"dd command:\n{dd}") +@pytest.mark.os_dependent @pytest.mark.parametrizex("streams_seq_rand", [(64, 64), (64, 192)]) @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @@ -185,6 +187,7 @@ def test_multistream_seq_cutoff_stress_raw(streams_seq_rand): TestRun.LOGGER.info(f"{core.get_statistics()}") +@pytest.mark.os_dependent @pytest.mark.parametrizex("streams_seq_rand", [(64, 64), (64, 192)]) @pytest.mark.parametrizex("filesystem", Filesystem) @pytest.mark.parametrizex("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) diff --git a/test/functional/tests/ci/test_incremental_load_ci.py b/test/functional/tests/ci/test_incremental_load_ci.py index 07c4c73..81f881a 100644 --- a/test/functional/tests/ci/test_incremental_load_ci.py +++ b/test/functional/tests/ci/test_incremental_load_ci.py @@ -15,6 +15,7 @@ from test_utils.size import Size, Unit @pytest.mark.CI +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_incremental_load_basic(): @@ -68,6 +69,7 @@ def test_incremental_load_basic(): @pytest.mark.CI +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_incremental_load_hidden_core(): diff --git a/test/functional/tests/ci/test_simulation_startup.py b/test/functional/tests/ci/test_simulation_startup.py index e422adf..840661a 100644 --- a/test/functional/tests/ci/test_simulation_startup.py +++ b/test/functional/tests/ci/test_simulation_startup.py @@ -16,6 +16,7 @@ from test_utils.size import Size, Unit @pytest.mark.CI +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_simulation_startup_from_config(): diff --git a/test/functional/tests/failover_standby/test_failover_advanced.py b/test/functional/tests/failover_standby/test_failover_advanced.py index a3376a6..e20a78f 100644 --- a/test/functional/tests/failover_standby/test_failover_advanced.py +++ b/test/functional/tests/failover_standby/test_failover_advanced.py @@ -76,9 +76,10 @@ def timed_async_power_cycle(): ) +@pytest.mark.os_dependent_standby_mode_specific +@pytest.mark.multidut(2) @pytest.mark.require_disk("cache_dev", DiskTypeSet([DiskType.optane])) @pytest.mark.require_disk("core_dev", DiskTypeSet([DiskType.nand])) -@pytest.mark.multidut(2) @pytest.mark.parametrize("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) @pytest.mark.parametrize("cls", [CacheLineSize.LINE_4KiB, CacheLineSize.LINE_64KiB]) @pytest.mark.parametrize("cleaning_policy", [c for c in CleaningPolicy if c != CleaningPolicy.nop]) @@ -336,9 +337,10 @@ def test_failover_during_background_cleaning(cache_mode, cls, cleaning_policy, n TestRun.executor.wait_for_connection() +@pytest.mark.os_dependent_standby_mode_specific +@pytest.mark.multidut(2) @pytest.mark.require_disk("cache_dev", DiskTypeSet([DiskType.optane])) @pytest.mark.require_disk("core_dev", DiskTypeSet([DiskType.nand])) -@pytest.mark.multidut(2) @pytest.mark.parametrize("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) @pytest.mark.parametrize("cls", [CacheLineSize.LINE_4KiB, CacheLineSize.LINE_64KiB]) @pytest.mark.parametrize("num_iterations", [2]) @@ -586,9 +588,10 @@ def test_failover_during_dirty_flush(cache_mode, cls, num_iterations): TestRun.executor.wait_for_connection() +@pytest.mark.os_dependent_standby_mode_specific +@pytest.mark.multidut(2) @pytest.mark.require_disk("cache_dev", DiskTypeSet([DiskType.optane])) @pytest.mark.require_disk("core_dev", DiskTypeSet([DiskType.nand])) -@pytest.mark.multidut(2) @pytest.mark.parametrize("cache_mode", CacheMode.with_any_trait(CacheModeTrait.InsertRead)) @pytest.mark.parametrize("cls", [CacheLineSize.LINE_4KiB, CacheLineSize.LINE_64KiB]) @pytest.mark.parametrize("cleaning_policy", CleaningPolicy) @@ -872,9 +875,10 @@ def test_failover_during_io_with_eviction(cache_mode, cls, cleaning_policy, num_ TestRun.executor.wait_for_connection() +@pytest.mark.os_dependent_standby_mode_specific +@pytest.mark.multidut(2) @pytest.mark.require_disk("cache_dev", DiskTypeSet([DiskType.optane])) @pytest.mark.require_disk("core_dev", DiskTypeSet([DiskType.nand])) -@pytest.mark.multidut(2) @pytest.mark.parametrize("cls", [CacheLineSize.LINE_4KiB, CacheLineSize.LINE_64KiB]) @pytest.mark.parametrize("cleaning_policy", [c for c in CleaningPolicy if c != CleaningPolicy.alru]) @pytest.mark.parametrize("num_iterations", [1]) diff --git a/test/functional/tests/incremental_load/test_core_pool.py b/test/functional/tests/incremental_load/test_core_pool.py index 32a053c..a05171c 100644 --- a/test/functional/tests/incremental_load/test_core_pool.py +++ b/test/functional/tests/incremental_load/test_core_pool.py @@ -71,6 +71,7 @@ def test_attach_core_pool(): cache.stop() +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_core_pool_exclusive_open(): diff --git a/test/functional/tests/initialize/test_clean_reboot.py b/test/functional/tests/initialize/test_clean_reboot.py index 475db44..8006b3d 100644 --- a/test/functional/tests/initialize/test_clean_reboot.py +++ b/test/functional/tests/initialize/test_clean_reboot.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2020-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # @@ -20,6 +20,7 @@ from test_utils.size import Size, Unit mount_point = "/mnt/test" +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrizex("cache_mode", CacheMode) diff --git a/test/functional/tests/initialize/test_startup_init_config.py b/test/functional/tests/initialize/test_startup_init_config.py index 960bdaa..e92040f 100644 --- a/test/functional/tests/initialize/test_startup_init_config.py +++ b/test/functional/tests/initialize/test_startup_init_config.py @@ -155,6 +155,7 @@ def test_cas_init_with_changed_mode(cache_mode_pair): validate_cache(cache_mode_pair[1]) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeSet([DiskType.hdd])) @pytest.mark.require_plugin("power_control") @@ -259,6 +260,7 @@ def test_cas_startup_lazy(): ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeSet([DiskType.hdd])) def test_cas_startup_negative_missing_core(): @@ -320,6 +322,7 @@ def test_cas_startup_negative_missing_core(): InitConfig().create_default_init_config() +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeSet([DiskType.hdd])) def test_cas_startup_negative_missing_cache(): @@ -381,6 +384,7 @@ def test_cas_startup_negative_missing_cache(): InitConfig().create_default_init_config() +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeSet([DiskType.hdd])) @pytest.mark.require_plugin("power_control") @@ -485,6 +489,7 @@ def test_failover_config_startup(): ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) def test_failover_config_startup_negative(): """ diff --git a/test/functional/tests/io/trim/test_trim.py b/test/functional/tests/io/trim/test_trim.py index e00bb10..d45c496 100644 --- a/test/functional/tests/io/trim/test_trim.py +++ b/test/functional/tests/io/trim/test_trim.py @@ -171,6 +171,7 @@ def test_trim_propagation(): cas_fio.run() +@pytest.mark.os_dependent @pytest.mark.parametrizex("cache_mode", CacheMode.with_traits(CacheModeTrait.InsertWrite)) @pytest.mark.parametrizex("filesystem", Filesystem) @pytest.mark.parametrizex("cleaning_policy", CleaningPolicy) diff --git a/test/functional/tests/io/trim/test_trim_stress.py b/test/functional/tests/io/trim/test_trim_stress.py index 06096b3..a92ac9b 100644 --- a/test/functional/tests/io/trim/test_trim_stress.py +++ b/test/functional/tests/io/trim/test_trim_stress.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2020-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # @@ -14,6 +14,7 @@ from test_tools.disk_utils import Filesystem from test_utils.size import Size, Unit +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand, DiskType.sata])) @pytest.mark.require_disk("core", DiskTypeSet([DiskType.optane, DiskType.nand, DiskType.sata])) @pytest.mark.parametrizex("cache_mode", CacheMode) diff --git a/test/functional/tests/io_class/test_io_class_occupancy.py b/test/functional/tests/io_class/test_io_class_occupancy.py index 3ca5d05..b7ea53b 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy.py +++ b/test/functional/tests/io_class/test_io_class_occupancy.py @@ -28,6 +28,7 @@ from tests.io_class.io_class_common import ( ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrize("io_size_multiplication", [0.5, 2]) @@ -157,6 +158,7 @@ def test_io_class_occupancy_directory_write(io_size_multiplication, cache_mode): ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrize("io_size_multiplication", [0.5, 2]) @@ -290,6 +292,7 @@ def test_io_class_occupancy_directory_read(io_size_multiplication): ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_ioclass_occupancy_sum_cache(): diff --git a/test/functional/tests/io_class/test_io_class_occupancy_load.py b/test/functional/tests/io_class/test_io_class_occupancy_load.py index 0f75e13..d50a22d 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy_load.py +++ b/test/functional/tests/io_class/test_io_class_occupancy_load.py @@ -28,6 +28,7 @@ from tests.io_class.io_class_common import ( ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_ioclass_occupancy_load(): diff --git a/test/functional/tests/io_class/test_io_class_occupancy_repart.py b/test/functional/tests/io_class/test_io_class_occupancy_repart.py index cc242bb..5fcc66c 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy_repart.py +++ b/test/functional/tests/io_class/test_io_class_occupancy_repart.py @@ -27,6 +27,7 @@ from tests.io_class.io_class_common import ( ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrize("io_class_size_multiplication", [0.5, 1]) diff --git a/test/functional/tests/io_class/test_io_class_occupancy_resize.py b/test/functional/tests/io_class/test_io_class_occupancy_resize.py index f8019cc..eb07c29 100644 --- a/test/functional/tests/io_class/test_io_class_occupancy_resize.py +++ b/test/functional/tests/io_class/test_io_class_occupancy_resize.py @@ -23,6 +23,7 @@ from tests.io_class.io_class_common import ( ) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrizex("cache_line_size", CacheLineSize) diff --git a/test/functional/tests/io_class/test_io_class_purge.py b/test/functional/tests/io_class/test_io_class_purge.py index a03170c..55c1b09 100644 --- a/test/functional/tests/io_class/test_io_class_purge.py +++ b/test/functional/tests/io_class/test_io_class_purge.py @@ -19,6 +19,7 @@ from test_utils.size import Unit, Size from tests.io_class.io_class_common import prepare, mountpoint, ioclass_config_path +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_ioclass_usage_sum(): diff --git a/test/functional/tests/io_class/test_io_class_wlth.py b/test/functional/tests/io_class/test_io_class_wlth.py index d4aff76..52c1820 100644 --- a/test/functional/tests/io_class/test_io_class_wlth.py +++ b/test/functional/tests/io_class/test_io_class_wlth.py @@ -15,6 +15,7 @@ from test_utils.size import Unit, Size from tests.io_class.io_class_common import prepare +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) def test_ioclass_wlth(): diff --git a/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py b/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py index 1aab16c..351499d 100644 --- a/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py +++ b/test/functional/tests/lazy_writes/cleaning_policy/test_acp.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2020-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # @@ -278,6 +278,7 @@ def test_acp_param_flush_max_buffers(cache_line_size, cache_mode): casadm.stop_all_caches() +@pytest.mark.os_dependent @pytest.mark.parametrizex( "cache_line_size", [CacheLineSize.LINE_4KiB, CacheLineSize.LINE_16KiB, CacheLineSize.LINE_64KiB], diff --git a/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py b/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py index be39d85..b25a813 100644 --- a/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py +++ b/test/functional/tests/lazy_writes/recovery/test_recovery_all_options.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2019-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # @@ -29,6 +29,7 @@ pattern = "0xabcd" other_pattern = "0x0000" +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrizex("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) diff --git a/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py b/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py index 8b8eaeb..18b6675 100644 --- a/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py +++ b/test/functional/tests/lazy_writes/recovery/test_recovery_flush_reset.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2019-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # @@ -24,6 +24,7 @@ mount_point = "/mnt" test_file_size = Size(4.5, Unit.GibiByte) +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrizex("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) @@ -100,6 +101,7 @@ def test_recovery_flush_reset_raw(cache_mode): pass +@pytest.mark.os_dependent @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) @pytest.mark.parametrizex("cache_mode", CacheMode.with_traits(CacheModeTrait.LazyWrites)) diff --git a/test/functional/tests/misc/test_weak_modules.py b/test/functional/tests/misc/test_weak_modules.py index 2aadf7c..35d59a9 100644 --- a/test/functional/tests/misc/test_weak_modules.py +++ b/test/functional/tests/misc/test_weak_modules.py @@ -7,6 +7,8 @@ import os import re +import pytest + from api.cas.installer import clean_opencas_repo, rsync_opencas_sources from core.test_run import TestRun from test_tools.fs_utils import ( @@ -22,6 +24,7 @@ modules_links_dir = "/lib/modules/$(uname -r)/weak-updates/block/opencas" modules_names = ["cas_cache.ko"] +@pytest.mark.os_dependent def test_weak_modules(): """ title: Test for weak-modules symlinks handling. diff --git a/test/functional/tests/performance/test_100p_hits.py b/test/functional/tests/performance/test_100p_hits.py index 8ef7eb0..97c202b 100644 --- a/test/functional/tests/performance/test_100p_hits.py +++ b/test/functional/tests/performance/test_100p_hits.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2020-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # @@ -22,6 +22,7 @@ from test_utils.output import CmdException from storage_devices.disk import DiskTypeSet, DiskTypeLowerThan, DiskType +@pytest.mark.os_dependent @pytest.mark.performance() @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) @pytest.mark.require_disk("core", DiskTypeLowerThan("cache")) diff --git a/test/functional/tests/security/test_compilation_flags.py b/test/functional/tests/security/test_compilation_flags.py index 19b2022..e519134 100644 --- a/test/functional/tests/security/test_compilation_flags.py +++ b/test/functional/tests/security/test_compilation_flags.py @@ -1,16 +1,19 @@ # -# Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2019-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # import os import re +import pytest + from core.test_run import TestRun from test_tools.fs_utils import Permissions, PermissionsUsers, PermissionSign from test_utils.filesystem.fs_item import FsItem +@pytest.mark.os_dependent def test_checksec(): """ title: Checking defenses enabled compilation flags. diff --git a/test/functional/tests/stress/test_kedr.py b/test/functional/tests/stress/test_kedr.py index 523b991..84828f1 100644 --- a/test/functional/tests/stress/test_kedr.py +++ b/test/functional/tests/stress/test_kedr.py @@ -1,5 +1,5 @@ # -# Copyright(c) 2020-2021 Intel Corporation +# Copyright(c) 2020-2022 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause #