Use a failure status code for timeout to avoid confusion between tests
that take too long to execute versus a failure due to an operation
taking longer than expected.
v2: Add a "timed out" message before exiting. (Daniel Vetter)
Fix the timeout library check by disabling hard errors in xfail
tests, since these share the same exit status as test failure.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
When synchronising to rendering, we only want to wait for it to complete
and avoid the cache-domain side-effects of SET_DOMAIN if possible. This
has the advantage of speeding up a few tests (and thereby making the
actual test more explicit in terms of kernel operations). Of course some
tests may be reliant on the side-effects...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Similar to gem_flink_race, we need to make sure that when we count
objects, the driver is in an identical state. We do this by flushing all
work before counting.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90003
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
By explicitly quiescing the GPU we force it to a known and ideally
identical state when counting objects. In particular, this should make
the batch-pool status the same and not cause us to detect a negative
leak.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We already rely on the mmap(object) surviving close(), but make the test
explicit and early.
Secondly, we don't technically need to call set_domain after writing
through the CPU then reading through WC, since the CPU cache is
consistent for those two paths. Test it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Debugfs i915_fbc_status shows "FBC unsupported on this chipset"
not "unsupported by this chipset" if the platform doesn't support
FBC feature. That typo will cause case fail on some platforms such
as byt, bsw.
Signed-off-by: Lei Liu <lei.a.liu@intel.com>
Or, it will cause piglit failure to run I-G-T test case
Signed-off-by: Shuang He <shuang.he@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
In order to force relocations, we have to remember to clear the presumed
offsets that get filled in by each pass.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Move all the execbuffer construction upfront and do it once per round,
rather than per relocation pass. It helps reduce runtime, but more
importantly it removes the test overhead from out of the kernel
measurement.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Use the pkglibexec and pkgdata prefixes rather than setting bindir and
datadir. This also removes the extra 'tests' directory from within the
package libexec and data directories.
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Prefix the test scripts and data variables with dist_ to ensure they are
included in the distribution.
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Use 1 as the element size to check the number of bytes returned is
greater than 0, rather than checking the number of elements returned.
This fixes a regression from commit 47f6b13 (igt.cocci: check the
return values of various functions).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89833
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
- decode the register for BXT too
- decode interlace on VLV/CHV too
- don't decode rotation and bpc on platforms where these fields are not defined
Signed-off-by: Imre Deak <imre.deak@intel.com>
v2: Rebase on top of the SKL upstreaming
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
In the next patch we'll add support for BXT which is GEN9, but doesn't
have PCH, so fix the macro accordingly.
No functional change.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Pre-Gen8 devices should be skipped early instead of failing
when test resources are not found.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89822
Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
Queue 60 event to arrive at the same vblank from different points in
time and make sure it just works.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
gem_exec_blt is used by other scripts to provide a background load, for
example by drv_missed_irq. This mode doesn't act like a normal test and
igt complains bitterly about it.
Let's just ignore igt here.
References: https://bugs.freedesktop.org/show_bug.cgi?id=88041
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
test kms_pipe_b_c_ivb depends on cairo, so add it to
the list of test not to build unless "ANDROID_HAS_CAIRO"
is set.
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Recent patch #7763349a9a87.. renamed gem_concurrent_blit.c
to gem_concurrent.c and then added entries to Makefile.am
to make two identical executeables (but with different
names) from this source file. This executeable changes its
behaviour based on argv[0]. But, this has broken the
Android build, which does not use autotools.
This patch instead renames the source file to match
the name of one executable (gem_concurrent_all.c) and
creates a second source file which simply #includes the
first. The Makefile.am entries are also removed.
This restores the simple test.c -> test executeable
relationship seen in the rest of IGT and allows the
Android build system to work without parsing Makfile.am
or having to incorporate a special workaround for this
test.
Signed-off-by: Tim Gore <tim.gore@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Install the test programs by default so that they can be packaged.
Tested with the testdisplay test so that it still runs after the
modifications as it depends on a data file to be present. Need to
pass -r option to enable QR code display on success (PNG data file).
Packaging is useful when building a complete software stack for a
DUT from scratch. This should bring us closer to achieving a
built-from-scratch testing workflow.
Package maintainers can always decide to ignore the installed files.
v2:
- Install more tests including scripts and their data
v3:
- Add clarification to commit message about why we do this.
(Chris Wilson & Thomas Wood)
- Change libexec into pkglibexec to comply to standard
(Thomas Wood)
- Do not install $(common_files). (Thomas Wood)
- Make it really obvious the installed files are tests by using
tests directory name to avoid any confusion with packagers.
v4:
- Fixed commit message.
v5:
- Add file locator helper to retain backwards compatibility.
(Thomas Wood)
- Test with testdisplay -r option that draws the .png file.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
The other aspect of the spinlock/interrupt on-off overhead is that when
we wait for vblank it immediately turns off, and then we immediately turn
it back on for the next wait.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The tests exercise different combinations of enabling pipe B with modes
that require more than 2 lanes and then enabling pipe C.
v2: Added a couple more tests for different pipe transitions. (Ander)
Use custom modes to make the test reliable. (Daniel)
v3: Add IGT_TEST_DESCRIPTION. (Thomas)
Rename test to kms_pipe_b_c_ivb. (Ander)
v4: Fix subtest enumeration. (Thomas)
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
So that it is possible to use a custom mode with the simplified mode set API.
v2: Add documentation for igt_output_override_mode(). (Thomas)
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Wrap the sysfs_read and sysfs_write calls in an igt_fixture block so
they are not executed during subtest enumeration.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
igt_fork/igt_waitchildren already perform the magic required to raise
errors based on the exit error code of the child, so take advantage of
that and kill the overlycomplicated message passing!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This reverts commit a5934091b84e3f8804fb3fed35374c5a976dd07e.
Unnerf igt/gem_exec_lut_handle. Sadly completely breaking the
measurement is not a good excuse to hide regressions.
The idea here is to check what happens when a large process requests
memory from us - we create and utilize a bunch of surfaces then have to
relinquish some but continue using the whole working set (so as to force
reloads).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
By moving the assert up a level, we get an much improved assertion
failure message (e.g. it includes the batch string that fails).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Add rules to fix unused-result warnings when compiling with
_FORTIFY_SOURCE defined and apply them to the library and tests.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Avoid producing long lists of subtests in the documentation and instead
provide instructions on how to obtain the full list.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Include debugging symbols in tests by default to improve stack traces
and also set the compiler optimisation level to improve the debugging
experience.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Add an optional dependency on libunwind to print stack traces when a
test assertion fails.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Apparently nobody else likes testing and debugging GEM coherency issues.
However, this also means that QA is skipping these vital tests. Split
out a set of canaries into igt/gem_concurrent_blit and keep the rest in
igt/gem_concurrent_all.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89497
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>