From 93a65895bb775932b02a3de692a1262ef7fafdbc Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Tue, 24 Jan 2012 23:18:21 +0100 Subject: drmtest: add progress indicator Some test that trash the aperture necessarily need to take forever, so add a little progress indicator to keep worried minds at peace. Signed-Off-by: Daniel Vetter --- lib/drmtest.c | 15 +++++++++++++++ lib/drmtest.h | 1 + tests/gem_cs_prefetch.c | 2 ++ 3 files changed, 18 insertions(+) diff --git a/lib/drmtest.c b/lib/drmtest.c index b2ac7621..eda012c8 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -358,6 +358,21 @@ void drmtest_permute_array(void *array, unsigned size, } } +void drmtest_progress(const char *header, uint64_t i, uint64_t total) +{ + if (i+1 >= total) { + fprintf(stderr, "\r%s100%%\n", header, + (long long unsigned) i * 100 / total); + return; + } + + /* only bother updating about every 0.5% */ + if (i % (total / 200) == 0 || i+1 >= total) { + fprintf(stderr, "\r%s%3llu%%", header, + (long long unsigned) i * 100 / total); + } +} + /* mappable aperture trasher helper */ drm_intel_bo **trash_bos; int num_trash_bos; diff --git a/lib/drmtest.h b/lib/drmtest.h index 90d81e7f..a8438abd 100644 --- a/lib/drmtest.h +++ b/lib/drmtest.h @@ -60,6 +60,7 @@ void drmtest_permute_array(void *array, unsigned size, void (*exchange_func)(void *array, unsigned i, unsigned j)); +void drmtest_progress(const char *header, uint64_t i, uint64_t total); /* helpers based upon the libdrm buffer manager */ void drmtest_init_aperture_trashers(drm_intel_bufmgr *bufmgr); diff --git a/tests/gem_cs_prefetch.c b/tests/gem_cs_prefetch.c index d425ae9d..983d28eb 100644 --- a/tests/gem_cs_prefetch.c +++ b/tests/gem_cs_prefetch.c @@ -157,8 +157,10 @@ int main(int argc, char **argv) // leak buffers //drm_intel_bo_unreference(batch_bo); + drmtest_progress("gem_cs_prefetch: ", i, count); } + fprintf(stderr, "Test suceeded, cleanup up - this might take a while.\n"); drm_intel_bufmgr_destroy(bufmgr); close(fd); -- cgit v1.2.3