197 Commits

Author SHA1 Message Date
Tvrtko Ursulin
b92b397d5e build: Make sure asserts are enabled for tests
Tests depend on assertions being enabled since they can, and do,
contain actual test steps. They are also mandatory for ensuring
sane test case behaviour.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-03 17:08:03 +01:00
Oscar Mateo
4c7d5a52a7 build: Move logic to tests/Makefile.am and away from Makefile.sources
Makefile.sources is just a listing with all the sources, and the logic
to use these sources goes into either Makefile.am (automake) or
Android.mk (make).

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-12 12:01:09 +01:00
Oscar Mateo
ea11d103e0 build: list all test/tool/lib source files in their own Makefile.sources
In this way, all source files are listed in Makefile.sources and included
from Makefile.am, thus enabling the reuse from Android makefiles.

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-12 12:00:36 +01:00
Rodrigo Vivi
ad648d9deb tests: pm_psr
Check on debugfs if PSR is supported by panel and matching all conditions in
hardware. In this case PSR must be enabled and performance counting increasing

v2: check if performance counter is really increasing.
v3: respect new naming convention

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2013-11-06 12:58:21 -02:00
Daniel Vetter
682b674a67 tests: establish core_ prefix
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-04 19:49:10 +01:00
Daniel Vetter
51dc087864 tests: Use kms_ prefix a bit more
I was a bit on the fence about the basic pipe CRC test since that
doesn't really test kms, but debug infrastructure in debugfs.

Otoh running this one for a full kms testrun is always good, to make
sure that all the other (real) CRC based tests work sanely.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-04 19:49:10 +01:00
Daniel Vetter
5738f1952d tests: establish pm_ prefix
Imo power management, power consumption and performance are tightly
enough coupled that we can throw them all into one bin.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-04 19:49:10 +01:00
Daniel Vetter
c32032111a tests: estbalish drv_ prefix
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-04 19:49:10 +01:00
Daniel Vetter
163d85d5f0 tests: igt_no_subtest
Yet another check for the library.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-01 22:18:20 +01:00
Daniel Vetter
6d73fdbfd2 tests: Add a Makefile comment about the expected failures in igt_ tests
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-01 22:16:24 +01:00
Daniel Vetter
8f718b1cd8 tests: Add a test template
Requested by Paulo.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-01 21:10:59 +01:00
Daniel Vetter
0b51de8dd0 lib: add more self-tests around the igt_exit checks.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-01 18:30:22 +01:00
Daniel Vetter
e14596a6d0 lib: fix igt_exit assert when only listing subtests.
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>
2013-11-01 18:30:22 +01:00
Ben Widawsky
5382aca1af gem_close_race: Fix linker flags
Seems the -lpthread was missed in
commit 8f771f3facae133bb72216fa05c74bc817920b6d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 29 14:21:29 2013 +0000

    gem_close_race: Also test random closing of active fd

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-10-29 20:01:36 -07:00
Chris Wilson
90ecf062d1 tests: Add gem_close_race
The intention is to exercise #70784. Yet the first challenge is make the
test suite happy.
2013-10-28 09:13:09 +00:00
Damien Lespiau
9cd092fac1 tests/gem_render_copy: Add a simple render copy test
The goal is here to both: demonstrate a simple usage of render copy with
the possibility to write pngs to visualize what it's doing and to
provide a test bed to port the render copy function to new
architectures.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-10-24 13:44:32 +01:00
Rodrigo Vivi
50c2653381 build: Fix small typo that was breaking make distcheck
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2013-10-22 11:28:56 -02:00
Ville Syrjälä
08c27e3e38 kms_cursor_crc: Add a cursor test using CRCs
Use the display CRC support to validate cursor plane functionality.
The test will position the cursor plane either fully onscreen,
partially onscreen, or fully offscreen, using either a fully opaque
or fully transparent surface. In each case it then reads the PF CRC
and compares it with the CRC value obtained when the cursor plane
was disabled.

v2: Loop over all connectors and crtcs
    Use igt_wait_for_vblank
    Test more corner cases
    Add some progress indication ala. kms_flip
    Make it work for pf and pipe sources

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2013-10-21 20:00:32 +03:00
Damien Lespiau
4ba97ddf96 debugfs_pipe_crc: Let's check CRCs!
Let's add a new test that sets a mode, wait for a few vblanks (3) and
then make sure we read 3 identical CRCs.

Some subtests check for various parsing errors.

In the process, improve the debugfs helpers to deal with CRCs.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-10-15 19:40:07 +01:00
Daniel Vetter
6f8c30d8ed tests: add kms_addfb
Just a bunch of testcase to check that all the addfb sanity checks
work as they should.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-09 21:20:40 +02:00
Chris Wilson
b53f22cee7 tests: Simulate missed breadcrumb irqs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04 09:54:21 +01:00
Damien Lespiau
951b37e2d0 testdisplay: Provide a full path when opening pngs
This way one doesn't have to be in tests/ for testsdisplay to be able to
open pass.png.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:22 +01:00
Damien Lespiau
9edaf7fa73 testdisplay: Add left/right images of a lovely scene
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-09-30 18:04:21 +01:00
Damien Lespiau
05493f736d testdisplay: Distribute pass.png 2013-09-30 18:04:20 +01:00
Daniel Vetter
0a587e24b7 tests/gem_storedw_batches_loop: Add testcase to check secure dispatch
v2: Use the mrb_exec function since otherwise we can't pass flags.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-18 18:37:10 +02:00
Daniel Vetter
7b3634364a tests/gem_fenced_exec_thrash: New subtests that uses all fences
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>
2013-09-17 00:13:47 +02:00
Daniel Vetter
9298dfabd9 lib: add test for igt_fork_signal_helper
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>
2013-09-13 16:48:08 +02:00
Daniel Vetter
44d4a3defb tests/gem_reloc_overflow: convert to subtests
More will come!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-04 15:27:14 +02:00
Daniel Vetter
87c690f9e2 tests: add gem_persisten_relocs
This reproduces the 3.7 relocation regression ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-04 10:30:21 +02:00
Daniel Vetter
bd59d60275 tests/gem_reloc_vs_gpu: add interruptible version
Exercise a bug where we've failed to propagate the error code
correctly.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-03 08:58:20 +02:00
Daniel Vetter
c2c0efc21a tests/gem_mmap: Convert to subtests
I wanted to write a testcase for gtt mmap access restriction checking
and only noticed after conversion to subtests that this here is for
cpu mmaps ;-)

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-26 19:44:31 +02:00
Daniel Vetter
09d9089ead tests/gem_evict_*: Add interruptible modes
Also I've stumbled over igt_fixture again. Somehow gcc loves to wreak
havoc with stack variables set up in igt_fixtures ... Duct-tape in the
form of moving fd out to global scope applied.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-23 22:32:29 +02:00
Rodrigo Vivi
4572067c88 tests: ddx_intel_after_fbdev loads intel ddx after fbdev was loaded.
v2: Don't add to kernel tests.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-21 23:18:00 +02:00
Chris Wilson
e104037fff tests: Add gem_evict_alignment
Clone gem_evict_everything and use it to exercise the misalignment
paths.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-21 10:26:59 +01:00
Paulo Zanoni
c158128de5 tests: add pc8
This test chekcs our code that enables Package C8+. The environment
requirements for this test are quite complicated:
  - The machine needs to be properly configured to reach PC8+ when
    possible, which means all the power management policies and device
    drivers must be properly configured.
  - You need at least one output connected.
  - You need the /dev/cpu/0/msr file available.
  - You need the /dev/i2c-* files available.

v2: - Many many changes due to the latest review comments and rebase.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-20 22:26:32 +02:00
Chris Wilson
c615b58289 tests: Add gem_evict_everything
Exercise the eviction logic. This is just a naive test to ensure that we
can evict old buffers to accommodate new batches, and in the process
trigger the evict everything logic.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-20 11:53:44 +01:00
Imre Deak
b70d4c9e68 tests: add kms_setmode
Iterate through all valid/invalid crtc/connector combinations. At the
moment only clone configurations are tested as the single output cases
are tested already by testdisplay. Also from combinations where all
connectors are on the same crtc (clone-single-crtc) only those are
tested that are invalid, as I haven't found any machine that supports
these (have to be GT2 with dvo and vga output).

For configurations with one crtc per connector the FBs are per-crtc atm.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:56:14 +03:00
Daniel Vetter
43779e37b5 tests: merge gem_*_concurrent_blt together
Too much copy&pasting isn't good.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 14:50:50 +02:00
Daniel Vetter
907377da0e tests/gem_readwrite: convert to subtests
A bit lazy since the read/write tests are all smashed together. But
since we have really evil partial write/read tests for coherency
checking that doesn't matter that much really.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-13 15:07:44 +02:00
Daniel Vetter
ef9e64577d tests/gem_ctx_bad_exec: convert to subtests
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-13 15:07:44 +02:00
Daniel Vetter
bd161f8c04 tests: add drm_get_client_auth
To check we don't break the magic authentication check libva does.

Ugh.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 19:51:40 +02:00
Daniel Vetter
a7433ec9ee tests: scrap old automake based kernel test runner
Upstream broke our dynamic creation of the testlist, and I think
adding stupid .tests suffixes everywhere just to appease upstream
autohell tools isn't that great. So scrap it, we can use piglit
instead.

References: https://lists.gnu.org/archive/html/help-debbugs/2013-06/msg00000.html
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 14:09:55 +02:00
Daniel Vetter
7553ad6e10 tests: use drmtest_skip() in caching ioctl helpers
This way we can rip out all the skip handling from the test control flow,
and additionally (by using drmtest_retval()) even get correct exit codes.

The only tricky part is that when we only want ot skip parts of a test
(like for gem_pread and gem_pwrite) we need to split out those parts as
subtests. But no addition of control-flow is required, the set/longjmp
magic in the helpers all makes it happen.

Also we make extensive use of the behaviour of drmtest_skip to skip
all subsequent subtests if it is called outside of a subtest. This allows
us to re-flatten the control flow a lot.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 11:17:58 +02:00
Daniel Vetter
40ea6f4ea8 tests: s/cacheing/caching
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 11:10:26 +02:00
Daniel Vetter
57622965e5 tests/gem_pwrite_pread: subtest annotation
This testcase mixes correctnes tests with performance tests, so it's
good to track the different correctness test separate for QA.

Together with pread_after_blt the pwrite->blt tests here exercise the
full cache coherency lifecycle of both snooped and uncached objects.

/me is happy

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-07 11:59:05 +02:00
Daniel Vetter
3dba47e896 tests: add gem_prw_concurrent_blt
New testcase to check that pwrite/pread correctly synchronize with
oustanding rendering. Just to catch regressions when we change
something.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-06 22:28:41 +02:00
Daniel Vetter
4901b5ff0e tests/prime_self_import: Add racing handle2fd testcase
Similar to how we test flink races. Note that on unfixed kernels this
oopses, and with my current set of patches it still leaks like mad.

v2: Only close the prime fd if we've successfully created it.

v3: Add a reimport test to check whether we don't race when reaping
the obj->dma_buf link.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-06 21:59:55 +02:00
Chris Wilson
e4a7c2fe6d gem_pwrite_pread: Measure how long it takes to upload/copy/download
Further trying to determine the effects of setting snooping.
2013-08-06 16:58:59 +01:00
Chris Wilson
5d635f95f2 gem_pread: Symmetric measurement to gem_pwrite 2013-08-06 16:58:59 +01:00
Daniel Vetter
24bbca9237 tests/gem_flink_race: actually make it somewhat useful
- Enable subtest support.

- Add a check for the same flink name in the racing threads, which is
  an issue one of my recent patches actually fixes.

- Add the test I've actually wanted to write which races an flink
  against gem close (with no open in between). That one does indeed
  leak.

- Readd the leak check, but note that this needs a fixed kernel.
  Otherwise the leak counter will be utter garbage.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 12:52:01 +02:00