summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaulo Zanoni <paulo.r.zanoni@intel.com>2013-11-14 14:53:15 -0200
committerPaulo Zanoni <paulo.r.zanoni@intel.com>2013-11-14 19:59:50 -0200
commitf7abef6618ab5b8c9a0358f9b765f3445f9f6be4 (patch)
tree0f16c68387f9fe0da6e64a42284326caf0dc7d96 /tests
parent482654674674cff4cfde4e3b68a4ff5ac125db08 (diff)
tests/pm_pc8: add --quick option
Not meant to be used on the QA cycles, but by developers who just want to quickly check things while doing development. Reduces the total time from 27 minutes to 6 minutes on my machine. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/pm_pc8.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/tests/pm_pc8.c b/tests/pm_pc8.c
index de9414f9..efeae219 100644
--- a/tests/pm_pc8.c
+++ b/tests/pm_pc8.c
@@ -1231,10 +1231,9 @@ static void gem_execbuf_subtest(void)
/* Assuming execbuf already works, let's see what happens when we force many
* suspend/resume cycles with commands. */
-static void gem_execbuf_stress_subtest(int wait_flags)
+static void gem_execbuf_stress_subtest(int rounds, int wait_flags)
{
int i;
- int max = 50;
int batch_size = 4 * sizeof(uint32_t);
uint32_t batch_buf[batch_size];
uint32_t handle;
@@ -1265,7 +1264,7 @@ static void gem_execbuf_stress_subtest(int wait_flags)
execbuf.flags = I915_EXEC_RENDER;
i915_execbuffer2_set_context_id(execbuf, 0);
- for (i = 0; i < max; i++) {
+ for (i = 0; i < rounds; i++) {
do_ioctl(drm_fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
if (wait_flags & WAIT_STATUS)
@@ -1281,8 +1280,16 @@ static void gem_execbuf_stress_subtest(int wait_flags)
int main(int argc, char *argv[])
{
+ int rounds = 50;
+
igt_subtest_init(argc, argv);
+ /* The --quick option makes the stress tests not so stressful. Useful
+ * when you're developing and just want to make a quick test to make
+ * sure you didn't break everything. */
+ if (argc > 1 && strcmp(argv[1], "--quick") == 0)
+ rounds = 10;
+
/* Skip instead of failing in case the machine is not prepared to reach
* PC8+. We don't want bug reports from cases where the machine is just
* not properly configured. */
@@ -1325,25 +1332,26 @@ int main(int argc, char *argv[])
/* Modeset stress */
igt_subtest("modeset-lpsp-stress")
- modeset_subtest(SCREEN_TYPE_LPSP, 50, WAIT_STATUS);
+ modeset_subtest(SCREEN_TYPE_LPSP, rounds, WAIT_STATUS);
igt_subtest("modeset-non-lpsp-stress")
- modeset_subtest(SCREEN_TYPE_NON_LPSP, 50, WAIT_STATUS);
+ modeset_subtest(SCREEN_TYPE_NON_LPSP, rounds, WAIT_STATUS);
igt_subtest("modeset-lpsp-stress-no-wait")
- modeset_subtest(SCREEN_TYPE_LPSP, 50, DONT_WAIT);
+ modeset_subtest(SCREEN_TYPE_LPSP, rounds, DONT_WAIT);
igt_subtest("modeset-non-lpsp-stress-no-wait")
- modeset_subtest(SCREEN_TYPE_NON_LPSP, 50, DONT_WAIT);
+ modeset_subtest(SCREEN_TYPE_NON_LPSP, rounds, DONT_WAIT);
igt_subtest("modeset-pc8-residency-stress")
- modeset_subtest(SCREEN_TYPE_ANY, 50, WAIT_PC8_RES);
+ modeset_subtest(SCREEN_TYPE_ANY, rounds, WAIT_PC8_RES);
igt_subtest("modeset-stress-extra-wait")
- modeset_subtest(SCREEN_TYPE_ANY, 50, WAIT_STATUS | WAIT_EXTRA);
+ modeset_subtest(SCREEN_TYPE_ANY, rounds,
+ WAIT_STATUS | WAIT_EXTRA);
/* GEM stress */
igt_subtest("gem-execbuf-stress")
- gem_execbuf_stress_subtest(WAIT_STATUS);
+ gem_execbuf_stress_subtest(rounds, WAIT_STATUS);
igt_subtest("gem-execbuf-stress")
- gem_execbuf_stress_subtest(WAIT_PC8_RES);
+ gem_execbuf_stress_subtest(rounds, WAIT_PC8_RES);
igt_subtest("gem-execbuf-stress")
- gem_execbuf_stress_subtest(WAIT_STATUS | WAIT_EXTRA);
+ gem_execbuf_stress_subtest(rounds, WAIT_STATUS | WAIT_EXTRA);
igt_fixture
teardown_environment();