Tested: 1. As root, tests passed on primary. 2. As root, tests passed on render node. BO export/import test was skipped 3. As non-privileged user, tests failed on primary as expected. 4. As non-privileged user, tests passed on render node. BO export/import test was skipped Signed-off-by: Alex Xie <AlexBin.Xie at amd.com> --- tests/amdgpu/amdgpu_test.c | 13 ++++++++++--- tests/amdgpu/amdgpu_test.h | 3 +++ tests/amdgpu/bo_tests.c | 5 +++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/tests/amdgpu/amdgpu_test.c b/tests/amdgpu/amdgpu_test.c index c01ee54..3fd6820 100644 --- a/tests/amdgpu/amdgpu_test.c +++ b/tests/amdgpu/amdgpu_test.c @@ -56,6 +56,9 @@ */ int drm_amdgpu[MAX_CARDS_SUPPORTED]; +/** Open render node to test */ +int open_render_node = 0; /* By default run most tests on primary node */ + /** The table of all known test suites to run */ static CU_SuiteInfo suites[] = { { @@ -109,16 +112,17 @@ static void display_test_suites(void) /** Help string for command line parameters */ static const char usage[] = - "Usage: %s [-hlp] [<-s <suite id>> [-t <test id>]] " + "Usage: %s [-hlpr] [<-s <suite id>> [-t <test id>]] " "[-b <pci_bus_id> [-d <pci_device_id>]]\n" "where:\n" " l - Display all suites and their tests\n" + " r - Run the tests on render node\n" " b - Specify device's PCI bus id to run tests\n" " d - Specify device's PCI device id to run tests (optional)\n" " p - Display information of AMDGPU devices in system\n" " h - Display this help\n"; /** Specified options strings for getopt */ -static const char options[] = "hlps:t:b:d:"; +static const char options[] = "hlrps:t:b:d:"; /* Open AMD devices. * Return the number of AMD device openned. @@ -326,6 +330,9 @@ int main(int argc, char **argv) case 'p': display_devices = 1; break; + case 'r': + open_render_node = 1; + break; case '?': case 'h': fprintf(stderr, usage, argv[0]); @@ -336,7 +343,7 @@ int main(int argc, char **argv) } } - if (amdgpu_open_devices(0) <= 0) { + if (amdgpu_open_devices(open_render_node) <= 0) { perror("Cannot open AMDGPU device"); exit(EXIT_FAILURE); } diff --git a/tests/amdgpu/amdgpu_test.h b/tests/amdgpu/amdgpu_test.h index fca92ad..e30e231 100644 --- a/tests/amdgpu/amdgpu_test.h +++ b/tests/amdgpu/amdgpu_test.h @@ -35,6 +35,9 @@ /* Forward reference for array to keep "drm" handles */ extern int drm_amdgpu[MAX_CARDS_SUPPORTED]; +/* Global variables */ +extern int open_render_node; + /************************* Basic test suite ********************************/ /* diff --git a/tests/amdgpu/bo_tests.c b/tests/amdgpu/bo_tests.c index 25df767..74b5e77 100644 --- a/tests/amdgpu/bo_tests.c +++ b/tests/amdgpu/bo_tests.c @@ -152,6 +152,11 @@ static void amdgpu_bo_export_import_do_type(enum amdgpu_bo_handle_type type) static void amdgpu_bo_export_import(void) { + if (open_render_node) { + printf("(DRM render node is used. Skip export/Import test) "); + return; + } + amdgpu_bo_export_import_do_type(amdgpu_bo_handle_type_gem_flink_name); amdgpu_bo_export_import_do_type(amdgpu_bo_handle_type_dma_buf_fd); } -- 2.7.4