From a661c098b0156a7cba4f29af0d6f223ca72560ba Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 6 Aug 2013 15:09:50 +0100 Subject: [PATCH] gem_partial_pwrite_pread: Exercise different cacheing of the staging bo --- tests/gem_partial_pwrite_pread.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/tests/gem_partial_pwrite_pread.c b/tests/gem_partial_pwrite_pread.c index 2ca0ece..eac2760 100644 --- a/tests/gem_partial_pwrite_pread.c +++ b/tests/gem_partial_pwrite_pread.c @@ -253,6 +253,26 @@ static void test_partial_read_writes(void) } } +static void do_tests(int cache_level, const char *suffix) +{ + char name[80]; + + if (cache_level != -1) + gem_set_cacheing(fd, scratch_bo->handle, cache_level); + + snprintf(name, sizeof(name), "reads%s", suffix); + if (drmtest_run_subtest(name)) + test_partial_reads(); + + snprintf(name, sizeof(name), "writes%s", suffix); + if (drmtest_run_subtest(name)) + test_partial_writes(); + + snprintf(name, sizeof(name), "writes-after-reads%s", suffix); + if (drmtest_run_subtest(name)) + test_partial_read_writes(); +} + int main(int argc, char **argv) { srandom(0xdeadbeef); @@ -274,14 +294,11 @@ int main(int argc, char **argv) drmtest_init_aperture_trashers(bufmgr); mappable_gtt_limit = gem_mappable_aperture_size(); - if (drmtest_run_subtest("reads")) - test_partial_reads(); + do_tests(-1, ""); - if (drmtest_run_subtest("writes")) - test_partial_writes(); - - if (drmtest_run_subtest("writes-after-reads")) - test_partial_read_writes(); + /* Repeat the tests using different levels of snooping */ + do_tests(0, "-uncached"); + do_tests(1, "-snoop"); drmtest_cleanup_aperture_trashers(); drm_intel_bufmgr_destroy(bufmgr); -- 2.7.4