This way the igt test will always be killed first (hopefully),
preventing mayhem when one of the memory thrashing tests treatens to
take down the entire system.
To avoid any burden on test writers we adjust the oom score on
drm_open, any of the fork helpers and subtest init. That should cover
everything.
v2: Fix it up.
Cc: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
As these files are compiled for every test, the warnings cluttered
the Android build completely.
v2: As suggested by Daniel Vetter, drop some of the fixes and fix
the compilation flags instead.
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This makes cairo dependencies easier to handle. Otherwise, we
would have to litter drmtest all over with "#ifndef ANDROID"
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
[danvet: Add missing _GNU_SOURCE to igt_kms.c and missing include to
intel_sprite_on.c]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This helps make sure that the GPU is really quiescent by getting
rid of any residual stuff.
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
All tests agree that this is a letal failure, so no point
to pass it back to callers.
Also add some igt_require calls for the drm_fd where I've
noticed that it's missing.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ooops. Reported by Paulo. Also add a new testcase for make check to
make sure this actually works.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
We really need this since otherwise the magic return value handling
for running testcases with piglit (or on QA's validation
infrastructure) doesn't work properly.
We need to be careful though to only install this check on success.
See also the previous commits to sprinkle igt_exit() calls over all
the tests that missed it.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
I was fedup with having to run my tests as root and not being able to
use my usual setup for tests that only exercise the GT part of the GPU.
Render nodes to the rescue!
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
When going through card%u devices, close the ones that we were able to
open but weren't intel devices.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>