This can be used to test multiple GPUs Signed-off-by: Alex Xie <AlexBin.Xie at amd.com> --- tests/amdgpu/amdgpu_test.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/tests/amdgpu/amdgpu_test.c b/tests/amdgpu/amdgpu_test.c index e42ef9d..2437db4 100644 --- a/tests/amdgpu/amdgpu_test.c +++ b/tests/amdgpu/amdgpu_test.c @@ -108,12 +108,14 @@ static void display_test_suites(void) /** Help string for command line parameters */ -static const char usage[] = "Usage: %s [-hl] [<-s <suite id>> [-t <test id>]]\n" - "where:\n" - " l - Display all suites and their tests\n" - " h - Display this help\n"; +static const char usage[] = + "Usage: %s [-hl] [<-s <suite id>> [-t <test id>]] [-d <device_id>]\n" + "where:\n" + " l - Display all suites and their tests\n" + " d - Choose which device to run tests\n" + " h - Display this help\n"; /** Specified options strings for getopt */ -static const char options[] = "hls:t:"; +static const char options[] = "hls:t:d:"; /* Open AMD devices. * Return the number of AMD device openned. @@ -238,6 +240,7 @@ int main(int argc, char **argv) int i = 0; int suite_id = -1; /* By default run everything */ int test_id = -1; /* By default run all tests in the suite */ + int device_id = 0; /* By default run most tests on device 0 */ CU_pSuite pSuite = NULL; CU_pTest pTest = NULL; @@ -266,6 +269,9 @@ int main(int argc, char **argv) case 't': test_id = atoi(optarg); break; + case 'd': + device_id = atoi(optarg); + break; case '?': case 'h': fprintf(stderr, usage, argv[0]); @@ -283,6 +289,15 @@ int main(int argc, char **argv) exit(EXIT_FAILURE); } + if (device_id) { + /* Most tests run on device 0. + * Swap the chosen device to device 0. + */ + i = drm_amdgpu[0]; + drm_amdgpu[0] = drm_amdgpu[device_id]; + drm_amdgpu[device_id] = i; + } + amdgpu_print_devices(); /* Initialize test suites to run */ -- 2.7.4