From b4fd275041b94ad832f879213fc4c7cf4b3d8134 Mon Sep 17 00:00:00 2001 From: Narendra Bagria Date: Mon, 5 Aug 2024 17:37:23 +0530 Subject: [PATCH] test: CTS for zesDeviceGetSubDeviceProperties API (#63) Related to VLCLJ-2248 Signed-off-by: Bagria, Narendra --- .../src/test_sysman_device.cpp | 31 +++++++++++++++++-- .../src/test_sysman_engine.cpp | 4 +-- .../src/test_sysman_frequency.cpp | 4 +-- .../src/test_sysman_memory.cpp | 4 +-- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/conformance_tests/sysman/test_sysman_device/src/test_sysman_device.cpp b/conformance_tests/sysman/test_sysman_device/src/test_sysman_device.cpp index 5770f9b2..7a3f7804 100644 --- a/conformance_tests/sysman/test_sysman_device/src/test_sysman_device.cpp +++ b/conformance_tests/sysman/test_sysman_device/src/test_sysman_device.cpp @@ -52,6 +52,10 @@ class SysmanDeviceTest : public lzt::SysmanCtsClass {}; #define SYSMAN_DEVICE_TEST SysmanDeviceTest #endif // USE_ZESINIT +#ifdef USE_ZESINIT +bool is_uuid_pair_equal(uint8_t *uuid1, uint8_t *uuid2); +#endif // USE_ZESINIT + void run_device_hierarchy_child_process() { fs::path helper_path(fs::current_path() / "sysman_device"); std::vector paths; @@ -169,6 +173,29 @@ TEST_F( } } +#ifdef USE_ZESINIT +TEST_F( + SYSMAN_DEVICE_TEST, + GivenValidDeviceWhenRetrievingSubDevicesThenEnsureNoSubDeviceUUIDMatchesDeviceUUID) { + for (auto device : devices) { + auto device_properties = lzt::get_sysman_device_properties(device); + uint32_t sub_devices_count = device_properties.numSubdevices; + if (sub_devices_count > 0) { + uint32_t num_sub_devices = 0; + auto sub_device_properties = + lzt::get_sysman_subdevice_properties(device, num_sub_devices); + EXPECT_EQ(sub_devices_count, num_sub_devices); + for (uint32_t sub_device_index = 0; sub_device_index < num_sub_devices; + sub_device_index++) { + EXPECT_FALSE( + is_uuid_pair_equal(sub_device_properties[sub_device_index].uuid.id, + device_properties.core.uuid.id)); + } + } + } +} +#endif // USE_ZESINIT + TEST_F( SYSMAN_DEVICE_TEST, GivenValidDriverWhenRetrievingDeviceHandleFromUUIDThenReturnedDeviceHandleShouldMatchCurrentDeviceHandle) { @@ -446,7 +473,7 @@ static void compare_results(std::vector c, std::vector c_cpu) { } #ifdef USE_ZESINIT -bool is_uuids_equal(uint8_t *uuid1, uint8_t *uuid2) { +bool is_uuid_pair_equal(uint8_t *uuid1, uint8_t *uuid2) { for (uint32_t i = 0; i < ZE_MAX_UUID_SIZE; i++) { if (uuid1[i] != uuid2[i]) { return false; @@ -460,7 +487,7 @@ ze_device_handle_t get_core_device_by_uuid(uint8_t *uuid) { auto core_devices = lzt::get_ze_devices(driver); for (auto device : core_devices) { auto device_properties = lzt::get_device_properties(device); - if (is_uuids_equal(uuid, device_properties.uuid.id)) { + if (is_uuid_pair_equal(uuid, device_properties.uuid.id)) { return device; } } diff --git a/conformance_tests/sysman/test_sysman_engine/src/test_sysman_engine.cpp b/conformance_tests/sysman/test_sysman_engine/src/test_sysman_engine.cpp index 9ec7f2d6..25c08a4d 100644 --- a/conformance_tests/sysman/test_sysman_engine/src/test_sysman_engine.cpp +++ b/conformance_tests/sysman/test_sysman_engine/src/test_sysman_engine.cpp @@ -253,7 +253,7 @@ static void workload_for_device(ze_device_handle_t device) { } #ifdef USE_ZESINIT -bool is_uuids_equal(uint8_t *uuid1, uint8_t *uuid2) { +bool is_uuid_pair_equal(uint8_t *uuid1, uint8_t *uuid2) { for (uint32_t i = 0; i < ZE_MAX_UUID_SIZE; i++) { if (uuid1[i] != uuid2[i]) { return false; @@ -267,7 +267,7 @@ ze_device_handle_t get_core_device_by_uuid(uint8_t *uuid) { auto core_devices = lzt::get_ze_devices(driver); for (auto device : core_devices) { auto device_properties = lzt::get_device_properties(device); - if (is_uuids_equal(uuid, device_properties.uuid.id)) { + if (is_uuid_pair_equal(uuid, device_properties.uuid.id)) { return device; } } diff --git a/conformance_tests/sysman/test_sysman_frequency/src/test_sysman_frequency.cpp b/conformance_tests/sysman/test_sysman_frequency/src/test_sysman_frequency.cpp index 5eea36d9..515bdce6 100644 --- a/conformance_tests/sysman/test_sysman_frequency/src/test_sysman_frequency.cpp +++ b/conformance_tests/sysman/test_sysman_frequency/src/test_sysman_frequency.cpp @@ -464,7 +464,7 @@ void get_throttle_time_init(zes_freq_handle_t pfreq_handle, } #ifdef USE_ZESINIT -bool is_uuids_equal(uint8_t *uuid1, uint8_t *uuid2) { +bool is_uuid_pair_equal(uint8_t *uuid1, uint8_t *uuid2) { for (uint32_t i = 0; i < ZE_MAX_UUID_SIZE; i++) { if (uuid1[i] != uuid2[i]) { return false; @@ -478,7 +478,7 @@ ze_device_handle_t get_core_device_by_uuid(uint8_t *uuid) { auto core_devices = lzt::get_ze_devices(driver); for (auto device : core_devices) { auto device_properties = lzt::get_device_properties(device); - if (is_uuids_equal(uuid, device_properties.uuid.id)) { + if (is_uuid_pair_equal(uuid, device_properties.uuid.id)) { return device; } } diff --git a/conformance_tests/sysman/test_sysman_memory/src/test_sysman_memory.cpp b/conformance_tests/sysman/test_sysman_memory/src/test_sysman_memory.cpp index b8873202..7b7febaa 100644 --- a/conformance_tests/sysman/test_sysman_memory/src/test_sysman_memory.cpp +++ b/conformance_tests/sysman/test_sysman_memory/src/test_sysman_memory.cpp @@ -229,7 +229,7 @@ uint64_t get_free_memory_state(ze_device_handle_t device) { } #ifdef USE_ZESINIT -bool is_uuids_equal(uint8_t *uuid1, uint8_t *uuid2) { +bool is_uuid_pair_equal(uint8_t *uuid1, uint8_t *uuid2) { for (uint32_t i = 0; i < ZE_MAX_UUID_SIZE; i++) { if (uuid1[i] != uuid2[i]) { return false; @@ -243,7 +243,7 @@ ze_device_handle_t get_core_device_by_uuid(uint8_t *uuid) { auto core_devices = lzt::get_ze_devices(driver); for (auto device : core_devices) { auto device_properties = lzt::get_device_properties(device); - if (is_uuids_equal(uuid, device_properties.uuid.id)) { + if (is_uuid_pair_equal(uuid, device_properties.uuid.id)) { return device; } }