If the test enviroment isn't properly set up we should fail the
testcase, since otherwise there's no way to make sure a feature
actually works.
To cut down on bug triaging time extract the basic test (which was
previously used to skip all subtests) into a "basic" subtest.
Also fail the test hard if the msr interface isn't available. And
switch all other check in setup_enviroment to igt_require.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69838
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Some kernels inadvertedly forwarded dpms changes to crtcs connected to
shared encoders even though that specific output wasn't enabled.
Hilarity ensued.
Note that we only have shared encoders on hsw (DP+HDMI) and with sdvo
cards (multi-function encoders).
v2: Do a full OFF->ON->OFF transition to make sure something actually
happens.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
On machines with many outputs and many crtcs it takes too long.
So scale the runtime by the number of output combinations we're trying
to light up.
Compensate the test runtime a bit by doubling most subtests' duration.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
At least for pipe A/B we should always fail the test if we can't light
up the preferred mode - the kernel should filter out impossible modes
and for our hw pipe A/B are the least constrained.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Now that modes have flags to describe which 3d formats the sink
supports, it's time to test them.
The new test cycles through the supported 3D formats and paint 3D
stereoscopic images taken from publicly available samples:
http://www.quantumdata.com/apps/3D/sample_BMP.asp
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
That's an array we allocated earlier in this function. Let's be symetric
and free it once done.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
-i is just supposed to show some information about the DRM resources.
Right now it works in a quite convoluted way. Untangle this to call
dump_info() when -i is given, exit the program and be done with it.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
When cycling through the modes, let's make sure to free the previous
framebuffers. This is the perfect occasion to use kmstest_remove_fb().
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
So the code for this is self-contained. This goes along the way of
reducing the number of global variables in testdisplay.
Take the opportunity to unmap the fb after use as well.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
On new machines with gobloads of memory and cpu cores, but slow swap
on spinning rust we need to limit the runtime a bit for sanity.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
With the new _f variants we can replace almost all of them.
Also remove a ton of checks for argc != 1, they're a bit useless ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Haswell added the ability to inject errors which is extremely useful for
testing. Add two arguments to the tool to inject, and uninject.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Add new command line arguments in addition to supporting the old
features. This patch only introduces one feature, the -e argument to
enable a specific row/bank/subbank. Previously you could only enable
all. Otherwise, it has what you expect (we prefer -r -b -s for
specifying the row/bank/subbank).
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
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>
igt runs under the assumption that nothing else (besides maybe fbcon)
is using the gpu. So we should be able to use all fences.
Keep the conservative testcase around though in case someone has a
broken setup.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
If we're really fast we've trying to stop the signal helper again
we somehow race somewhere and it'll never happen. So add a testcase for
this. Since I expect more to come for testsuite tests add a separate
make target for them. Run tests with
$ make check
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>