From 089fed91eb1b33631e02dd55666e3f9429b34ce6 Mon Sep 17 00:00:00 2001 From: Ma Jun Date: Tue, 23 May 2023 14:48:27 +0800 Subject: [PATCH] tests/amdgpu: Stop the amdgpu test when device initialize failed We should stop the amdgpu test when amdgpu device inialize failed. Otherwise the amdgpu test will be executed and get wrong result. For example, "./amdgpu_test -l" will show the all of the test cases enabled. Signed-off-by: Ma Jun --- tests/amdgpu/amdgpu_test.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/tests/amdgpu/amdgpu_test.c b/tests/amdgpu/amdgpu_test.c index ec787889..3e29413e 100644 --- a/tests/amdgpu/amdgpu_test.c +++ b/tests/amdgpu/amdgpu_test.c @@ -481,22 +481,31 @@ static int amdgpu_find_device(uint8_t bus, uint16_t dev) return -1; } -static void amdgpu_disable_suites() +static int amdgpu_disable_suites() { amdgpu_device_handle device_handle; uint32_t major_version, minor_version, family_id; drmDevicePtr devices[MAX_CARDS_SUPPORTED]; int i, drm_count; int size = sizeof(suites_active_stat) / sizeof(suites_active_stat[0]); + int ret = 0; - if (amdgpu_device_initialize(drm_amdgpu[0], &major_version, - &minor_version, &device_handle)) - return; + ret = amdgpu_device_initialize(drm_amdgpu[0], &major_version, + &minor_version, &device_handle); + + if (ret) { + fprintf(stderr, "device initialize failed\n"); + return ret; + } family_id = device_handle->info.family_id; - if (amdgpu_device_deinitialize(device_handle)) - return; + ret = amdgpu_device_deinitialize(device_handle); + + if (ret) { + fprintf(stderr, "device deinitialize failed\n"); + return ret; + } drm_count = drmGetDevices2(0, devices, MAX_CARDS_SUPPORTED); @@ -592,6 +601,8 @@ static void amdgpu_disable_suites() if (drm_count < 2) if (amdgpu_set_test_active(HOTUNPLUG_TESTS_STR, "Unplug with exported fence", CU_FALSE)) fprintf(stderr, "test deactivation failed - %s\n", CU_get_error_msg()); + + return 0; } int test_device_index; @@ -823,7 +834,8 @@ int main(int argc, char **argv) CU_basic_set_mode(CU_BRM_VERBOSE); /* Disable suites and individual tests based on misc. conditions */ - amdgpu_disable_suites(); + if (amdgpu_disable_suites()) + goto end; /* Parse command line string */ opterr = 0; /* Do not print error messages from getopt */