675 Commits

Author SHA1 Message Date
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
cf93ba45b0 tests/gem_mmap_gtt: Add testcase for the vma access manager
Currently fails since the patches aren't merged yet.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-26 19:44:31 +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
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
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
Daniel Vetter
fd88db77cc tests/sysfs_rps: Fix igt_require conversion
Another fumble caught by QA.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68461
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-23 09:30:47 +02:00
Paulo Zanoni
c62cf67a6f tests/pc8: don't work around the eDP I2C bug
On the current Kernels, i2c operations on disabled eDP panels don't
work because we don't enable the panel before doing the i2c
transactions. Whenever we try these transactions we print an error
message on dmesg and fail. The current test suite was trying to work
around this problem: we count how many eDP outputs we have and add
them to the final result.

Daniel asked me to not work around the bug, so now the i2c test will
fail until we actually fix the Kernel bug (or stop using eDP panels).

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-08-22 13:19:18 -03:00
Paulo Zanoni
9d29670dee tests/pc8: fix function return value
Looks like I forgot to push this chunk... The test was passing in
cases where you only have eDP monitors due to the fact that we
consider i2c won't work on eDP monitors.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-08-22 13:19:14 -03: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
Daniel Vetter
57e573ecc1 tests/pc8: Update to latest igt infrastructure
- Use igt_require for magic SKIP results while still printing results
  for all subtests.

- Wrap setup/teardown code outside of subtests with igt_fixture. This
  will ensure that the so wrapped code isn't run when an
  igt_require/igt_assert failed (and we're essentially just printing
  the SKIP/FAIL result for all subtests) or when just enumerating
  subtests.

- Use igt_exit. Otherwise SKIP/FAIL results of subtests won't be propagated
  correctly.

- igt_subtest checks should be run unconditionally to make sure we
  always enumerate the same set of subtests. A bit on the line here
  since this is a subtest hidden behind a runtime flag.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-20 22:26:32 +02: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
Damien Lespiau
a7aaf85ac0 gitignore: Add a couple of recent binaries to .gitignore files
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-08-20 18:56:54 +01:00
Chris Wilson
398be7d573 gem_evict_everything: Fix the error code checking after drmIoctl
drmIoctl doesn't return the errno, so look it up after an error.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-20 12:40:56 +01: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
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
Chris Wilson
55b8c33ca5 overlay: Auatomatically mount debugfs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-19 18:16:11 +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
8dbd1fb9d4 lib/drmtest: igt_skip when drm_get_card fails
Also add printf support to igt_skip to make sure there's always a
reason why we fail a testcase.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 11:09:25 +02:00
Daniel Vetter
9ad062d0b3 lib/drmtest: extract gem_create_context
libdrm requirements are now up to it.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 10:55:28 +02:00
Daniel Vetter
23eee39489 tests: roll out igt_require some more
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 10:47:53 +02:00
Daniel Vetter
5951ffb6a0 lib/drmtest: rip out drm_open_any_master
It's unused. Also most of our tests failed to ask for the right type
of drm fd anyway. So it's imo better to just let them fall over when
they don't get master but want it, like they already do today.

This also allows us to garbage-collect the master parameter to
drm_get_card and associated code.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 10:34:34 +02:00
Daniel Vetter
90ef68859c test/gem_dummy_reloc_loop: fix igt_require conversion
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68170
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-18 19:58:28 +02:00
Chris Wilson
0d320fdced gem_concurrent_blit: Purge the child bufmgr's cache
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
2013-08-16 12:23:17 +01:00
Chris Wilson
1b17cb9d04 gem_concurrent_blit: Fix the leak from the children.
As the children use the parent's fd, the kernel only has a single filp
for everyone. Therefore we cannot rely on the process termination
reaping the buffers we allocate for the children.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
2013-08-16 11:26:00 +01:00
Chris Wilson
1ca607b458 gem_concurrent_blit: Share total num_buffers between all children
Apparently not all machines have more than 4GiB of RAM available.
Spoilsports.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
2013-08-16 09:52:43 +01:00
Damien Lespiau
9d5e4fac20 gem_ctx_basic: Fix misc warnings
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-08-15 16:46:58 +01:00
Daniel Vetter
e58891d0ae tests/prime: test dma-buf llseek support
This exercises a proposed patch from Christopher James Halse Rogers.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-15 14:01:10 +02:00
Daniel Vetter
610630622b tests/gem_ctx_basic: Use igt_require
... instead of threading the 77 return value through threads. Even
better would be to check for requirements in the single-threaded setup
part of the test, since now it's done by multiple threads in parallel
and will result in interleaved and multiplied output on stdout.
Whatever.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-15 13:47:15 +02:00
Daniel Vetter
ec834c995f tests/prime_nv_api: fixup conversion goof-up
Oops.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 22:24:43 +02:00
Daniel Vetter
eab7a322ed tests/primve_nv_test: use igt_assert for checking
... and drop the int return argument of the tests.

Also:
- make nv_write_i915_cpu_mmap_read functional again by dropping the
  goto.
- add checks to i915_import_pread_pwrite

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 22:19:43 +02:00
Daniel Vetter
15c19229f4 lib/drmtest: add igt_subtest_name and use it in kms_flip
Useful when the testname is constructed with igt_subtest_f.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 18:03:09 +02:00
Daniel Vetter
b3880d3a96 tests: roll out igt_fixture
Also sprinkle igt_assert and igt_require over the setup code to clean
up code while at it. To avoid gcc getting upset about unitialized
variables just move them out of main as global data (where they always
get initialized to 0) - gcc can't see through our igt_fixture and
igt_subtest maze properly.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 18:02:46 +02:00
Daniel Vetter
c3dd8a8c85 tests/gem_ctx_bad_exec: add subtest for vebox
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 17:11:49 +02:00
Daniel Vetter
2dbd998429 tests: Introduce igt_fixture
Just a tiny wrapper to protect global test setup/teardown code when
just listing subtests. Rolling this out over all tests with subtests
should allow us to generate the testlist with piglit as an
unpriviledged user on a non-intel system.

The aim here is to make our QA team happy who currently suffers from
this. Even more so for the prime tests since you need a system with
intel _and_ nouveau gpus to just be able to list tests.

Exemplary conversion with gem_concurrent_blt.c

Fixture is the same name other test suites like googletest use for
setup/teardown code used by multiple tests.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 17:04:56 +02:00
Daniel Vetter
a1ca8ef5b1 tests: use igt_exit() consistently with subtests
This is mostly important to get the SKIP reporting right, but I've
found a few stragglers that wanted to get converted over to the igt
result reporting completely.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 16:08:00 +02:00
Daniel Vetter
ec283d6a52 tests/gem_concurrent_blt: extract run wrappers
Functional programming ftw!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 15:18:37 +02:00
Daniel Vetter
9a4957a1b3 tests/gem_concurrent_blt: use the test helpers in the forked tests
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 15:10:52 +02:00
Daniel Vetter
5a598c9b2e tests/gem_concurrent_blt: refactor basic run modes a bit
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 15:08:05 +02: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
6234658063 tests: add igt_subtest_f for snprintf'ing testnames
Useful when stitching together combinatorial testnames.

v2:
- ## rules are just fun. We need 2 indirections to actually get
  __LINE__ to properly expand.
- Kill stray ; which botched the logic.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 13:47:47 +02:00
Daniel Vetter
1532af19d9 tests/gem_dummy_reloc_loop: use igt_skip
For tests with subtest we should use igt_skip to ensure that subtests
are always properly enumerated.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 12:17:51 +02:00
Daniel Vetter
c2d6773b25 tests/gem_write_read_ring_switch: use igt_exit and friends
And consolidate the gem_require_ring check a bit.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-14 12:17:51 +02:00
Chris Wilson
99431a4f06 gem_(cpu|prw)_concurrent_blit: Add contending processes
Blindly fixed conflicts:
	tests/gem_cpu_concurrent_blit.c
	tests/gem_prw_concurrent_blit.c
2013-08-14 11:08:27 +01:00
Chris Wilson
4f8c9a2c38 gem_write_read_ring_switch: Copy the missing igt_require
An oversight in the mass conversion to the new framework as the test was
called from two locations.

Ideally, the checks could be moved back to the caller and the framework
still work. This is just the patch of least resistence.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68091
2013-08-14 08:17:22 +01:00
Chris Wilson
6a746c82ab gem_exec_lut_handle: Use linear regression analysis
Simultaneously make the results more robust and compact by performing a
linear regression to compute the amount of time required to perform the
exec array walk and the relocations.
2013-08-14 00:03:35 +01:00
Daniel Vetter
8f5387eb99 tests: introduce igt_require
Since igt_skip has funny control flow we can abuse it and make it work
like a special kind of assert which automatically skips tests if a
requirement fails.

Note that in places where we have a less strict test which should
always succeed (e.g. ioctl works or isn't available) the igt_assert
should be place before the igt_require with the more strict
requirements. Otherwise we'll skip a test instead of properly failing
it.

Convert a few users of igt_skip over to igt_require to showcase its
use.

v2: s/gem_check_/gem_require_/ so that we consistently use "require"
to indicate magic check that can call igt_skip. Imo hiding the
igt_require for feature checks is ok, but for more traditional assert
like use cases an explicit igt_require might be better.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-13 15:15:18 +02:00
Daniel Vetter
5e25fcc285 tests: use igt_fail instead of exit(param != 0)
Mostly a sed job with too manual fixups:
- one case of using _exit instead of exit
- and one case which under some conditions use 77, so convert that
  check to an igt_skip.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-13 15:15:17 +02:00
Daniel Vetter
b30d95f33c tests: s/exit(77)/igt_skip()/
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-13 15:07:44 +02:00
Daniel Vetter
c9d0378281 tests: s/exit(EXIT_SUCCESS)/igt_success()/
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-13 15:07:44 +02:00