150 Commits

Author SHA1 Message Date
Damien Lespiau
949ce5b8a1 lib: Remove stale comment
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-10-28 11:00:07 +00:00
Ville Syrjälä
471ec64de8 lib/drmtest: Add kmstest_paint_color_alpha()
kmstest_paint_color_alpha() just like kmstest_paint_color() except you
also get to specify the alpha channel.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2013-10-21 20:00:32 +03:00
Daniel Vetter
3d2d73ed45 kmstest: don't pollute stderr for impossible output configs
Otherwise on machines where the only output available is restricted to
one pipe we'll have tons of "warn" results for no gain in the piglit
runner. All tests that use the kmstest helpers already check the
return value and do something sensible (like skip the tests if there's
really no config available).

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-20 19:24:08 +02:00
Damien Lespiau
09e9f0b216 rendercopy: Add a way to dump an .aub file with the rendercopy bos
v2 (by Ben): Remove libdrm dependency since intel-gpu-tools now requires
a higher version anyway. Remove associated #ifdef ENABLE_AUB_DUMP

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
2013-10-18 09:49:41 -07:00
Daniel Vetter
5038b7e4c2 lib: fix the assert in igt_stop_helper
So much for developing different patches on different machines and
then not retesting after rebasing. Reported by Ben on irc.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-18 17:56:02 +02:00
Daniel Vetter
548323c87d lib/drmtest: Check that helper processes have died correctly
If the test gets stopped sometimes a helper process falls over.
We need to report this. Since we currently don't track helper
process to precisely we can't shut up the 2nd test failure messge.
This shouldn't happen anyway.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-17 13:35:51 +02:00
Damien Lespiau
252dca1c7b lib: Add kmstest_paint_color()
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-10-15 19:32:09 +01:00
Daniel Vetter
ffdece38e2 tests/gem_suspend: test debugfs/sysfs reads while s/r
Just a very quick hack cobbled together with /bin/sh and exec. We
can't use system since that does stupid things with singals ... Still
we need to whack the child process pretty hard to get rid of it.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-10 14:20:43 +02:00
Daniel Vetter
590f610140 lib/drmtest: extract rawer __gem_set_tiling
For tests that expect failures. Also apply the existing gem_set_tiling
helper a bit wider.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-09 20:50:50 +02:00
Damien Lespiau
21a89a9f07 lib: Adjust dump_modes() to the new stereo encoding
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:22 +01:00
Damien Lespiau
a7d1937cd7 testdisplay: Use DRM_MODE_FLAG_3D_MASK
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:22 +01:00
Damien Lespiau
79f4cfedbf lib: Add a helper to write a png from a struct kmstest_fb
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:21 +01:00
Damien Lespiau
dac45f5f06 lib: Split create_image_surface() out of create_cairo_ctx()
So we can use it in the next commit.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:21 +01:00
Damien Lespiau
bde7060e3c lib: Add a helper to paint a PNG using cairo
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:21 +01:00
Damien Lespiau
30e0710ca3 lib: Dump information about the supported 3D stereo formats
When dumping the details of a mode, let's add the 3D formats the mode
supports.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:21 +01:00
Daniel Vetter
64cfe4eefe lib/drmtest: Improve printf-like igt_skip_on/require
Ben Widawsky suggested to use vasprintf, which perfectly fits the bill.

Also fix the logic conversion bug in tests/gem_storedw_batches_loop that
crept in again :(

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-19 19:56:03 +02:00
Daniel Vetter
e5cdd62624 lib/drmtest: igt_assert|require with format strings
v2: Add a comment about the pitfalls around va_list handling.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-19 19:40:32 +02:00
Daniel Vetter
d1b9bc0dc1 lib/drmtest: check that igt_exit is called for subtest tests
I get this wrong for almost every conversion to subtests ...

v2: Don't install the check when just listing subtest names.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-17 00:13:47 +02:00
Daniel Vetter
a031a1bf93 lib/drmtest: ducttape over fork race
Whatever the reason (and I've thought there isn't one) if we fork and
kill right away the child seems to not reliably die. We can work
around this little race by forcing the default SIGQUIT handler. This
should break anything since we reset our atexit handling anyway, so if
the helper needs any atexit handling the special signal helpers will
be reinstated.

Note that inserting sufficient amounts of printf between the fork and
kill makes this unnecessary.

While add it also add the retry loop for the waitpid call, in case
there's another guy constantly interrupting us.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-13 16:48:08 +02:00
Daniel Vetter
932716dd91 lib/drmtest: skip suspend tests in simulation
The simulator doesn't like this nor really support it :(

v2: We've tried to a more gentle resume testing using the pm_test
infrastructure, but that alos failed. So add a FIXME comment that we
need to improve things a bit here.

Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-13 11:19:10 +02:00
Daniel Vetter
506ef293ab lib/drmtest: drop unused oldsig variabel
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-12 12:57:26 +02:00
Daniel Vetter
212de08d0f lib/drmtest: Restore default sighandlers
Forked tests ended up restoring the sighandlers already inherited
from the parent, resulting in endless signal loops through our
atexit handler.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 15:46:43 +02:00
Daniel Vetter
661f252f7e lib/drmtest: don't frob signals in __igt_fork_helper
We shut up the exit handlers already by clearing the array.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 15:05:20 +02:00
Daniel Vetter
9fb316a6db lib/drmtest: clean up children in an exit handler
Also be a bit more careful with killing them in general.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 14:29:00 +02:00
Daniel Vetter
bbc820302b lib/drmtest: handle SIGBUS in the exit handlers
Our kernel likes to occasionally kill process with a SIGBUS when this
shouldn't ever happen. Hence also handle this signal in the exit
handler infrastructure.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 12:11:54 +02:00
Daniel Vetter
14dd7cb8aa lib/drmtest: Reject igt_fork from within igt_fork earlier
We reject it in igt_waitchildren already, but earlier is better.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 11:51:40 +02:00
Daniel Vetter
5f790db084 lib/drmtest: Fix igt_stop_signal_helper for subtest listing
We need to bail out early for otherwise we'll hit the
!signal_helper->running assert.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 11:09:08 +02:00
Daniel Vetter
b3a61c8028 lib/drmtest: skip when prefault control isn't available
Instead of crashing with an igt_assert. Fixes the only crashing test
when running igt on non-intel systems.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 10:47:07 +02:00
Daniel Vetter
2b218f69d7 lib/drmtest: Use ARRAY_SIZE
Less fragile ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-11 10:40:25 +02:00
Daniel Vetter
57e6746181 lib/drmtest: double-check that we clean up helper processes
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-10 18:22:17 +02:00
Daniel Vetter
e73c1a07f3 lib/drmtest: consolidate the helper process killing in one exit handler
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-10 18:22:17 +02:00
Daniel Vetter
edd723457c lib/drmtest: create helpers for forking helper threads
The upshot is that we can share the logic to make sure the helpers
are all properly stoved again in a 2nd step.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-10 17:40:06 +02:00
Daniel Vetter
2096649053 lib/drmtest: fixup for the prefault rework
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-08 14:03:20 +02:00
Daniel Vetter
fbd64de6be lib/drmtest: Avoid calling exit handlers multiple times
- reset the count when forking
- don't add the same handler multiple times
- don't restore the exit signal handlers in the forked helper
  process
- reset the exit handler count once called to make sure we don't call
  it multiple times when dying
- don't wait for the signal helper if it's gone already

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-08 14:03:03 +02:00
Daniel Vetter
f4b93781be lib/drmtest: use igt_require/assert in the prefault helpers 2013-09-03 15:19:30 +02:00
Daniel Vetter
9cc16e8afd lib/drmtest: extract gem_execbuf helper
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-03 10:37:14 +02:00
Daniel Vetter
6f118bf96a lib/drmtest: Improve output when igt_waitchildren fails
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-02 08:08:29 +02:00
Daniel Vetter
a0aa8f1a2c lib/drmtest: Print info when children died due to signals
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-29 21:44:48 +02:00
Daniel Vetter
cd1f220847 lib/drmtest: extract igt_fork from gem_concurrent_blt
Making sure that we correctly collect the exit codes from all children
is a bit a hassle. So add another magic igt codeblock for easy forking
and joining.

Note that children are (currently at least) not allowed to call igt_skip.
Add an assert to enforce this.

v2:
- Properly propagate the exit code.
- Fix the segfault.
- Add a child int and num_children paramter to the magic codeblock as
  suggested by Chris Wilson.
- Don't dump noise into stdout when a child thread fails, the parent
  will do that for us already.

v3: Now with some docs.

v4: Fixup igt_waitchildren to properly reset state so it can be used
again.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-29 18:18:33 +02:00
Chris Wilson
d0ed912107 kms_flip: Exercise flip-vs-render
For machine with split BCS/RCS rings, we also need to test whether we
correctly wait upon outstanding render work before flipping and changing
modes. This should also serve to exercise the ring selection code for
flips.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-29 16:19:41 +01:00
Daniel Vetter
02c0d20fa8 lib/drmtest: restore in_fixture assert
I didn't really want to revert those, too ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-26 21:16:37 +02:00
Daniel Vetter
ad0f081f2b Revert "tests/gem_concurrent_blit: Fix segmentation fault"
This reverts commit 912a7d855600aadb937517ec5bab26bfd9b8953d.

Now fixed for real!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-26 20:55:54 +02:00
Daniel Vetter
8869e1e628 lib/drmtest: don't complete fixtures with a longjmp
Longjmp creates havoc with stack variables of the current stackframe.
And since fixtures should be used to set up such variables creating
havoc isn't a great idea. With this I can revert a bunch of
bogus patches I've done to paper over this by moving stack variables
to be global.

The same issue is actually a feature for subtest blocks since subtests
should be independant anyway.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-26 20:55:54 +02:00
Imre Deak
86f60ee593 tests/kms_setmode: don't save/restore vt graphics for dry-run
Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-26 17:20:29 +03:00
Imre Deak
40cc4b8d10 lib/drmtest: fix handling of -h --help argument parsing
So far we handled -h or --help arguments properly only if the test
called igt_subtest_init_parse_opts(). Fix this for igt_subtest_init()
callers too. Make sure we still don't exit for any other
unknown options, which the caller may parse with a second getopt scan.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-26 17:18:38 +03:00
Daniel Vetter
e075e7b43c lib/drmtest: fix logic fumble in gem_context_create
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68363
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-21 10:23:08 +02:00
Chris Wilson
2a37b1d78e lib: Make igt_assert() abort under gdb
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-20 12:45:55 +01:00
Daniel Vetter
912a7d8556 tests/gem_concurrent_blit: Fix segmentation fault
Apparently the simple changes introduced in

commit 78865847f9fae7e590960f9836f2ec8b611a190e
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Mon Aug 19 07:23:49 2013 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Mon Aug 19 08:09:25 2013 +0200

    lib/drmtest: skip fixtures after an igt_skip

pushed the stack space requirement for run_modes over some magic limit
(I guess where the strack grow logic starts to fail, but I didn't
check). Fix this by moving the data into .bss.

Also add some asserts to check that fixtures aren't abused while at
it (i.e. the useful parts of my debug printf/assert craze).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68299
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-20 06:42:10 +02:00
Imre Deak
5cabaae4dd lib: add subtest extra command line option handling
At the moment any command line option handling done by tests will
interfere with the option handling of the subtest interface. To fix this
add a new version of the subtest_init function accepting optional short
and long command line options. Merge these together with the subtest
interface's own long options and handle both together in the same
getopt_long call.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:38:22 +03:00
Imre Deak
e55b89f1c3 lib: handle SIGSEGV similarly to other error signals
Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:38:21 +03:00