summaryrefslogtreecommitdiff
path: root/tests/Makefile.sources
AgeCommit message (Collapse)Author
2018-07-17tests/sink_crc: Remove kms_sink_crc_basicDhinakaran Pandiyan
"drm/i915: Kill sink_crc for good" removes the kernel support for sink crc. References: https://patchwork.freedesktop.org/series/46039/ Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2018-07-17igt: Remove gvt_basicChris Wilson
This was always a placeholder for GVT stakeholders to provide some better tests. 2 years later and none have been put forward so stop wasting CI's time running a placeholder. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106989 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Zhi Wang <zhi.a.wang@intel.com> Acked-by: Martin Peres <martin.peres@linux.intel.com>
2018-07-13tests/psr: Rename kms_psr_sink_crc.c to kms_psr.cDhinakaran Pandiyan
We don't use sink CRC anymore in this test. Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2018-06-28tests: Drop drm_vma_limiter*Chris Wilson
These tests exercise an obscure piece of libdrm_intel API to keep the number of VMA opened in a process under a certain limit (only ever used by UXA as once upon a time we ran into the limit with many, many 1x1 pixmaps or something like that). The tests are not exercising kernel API (or ABI) and need to check their resource requirements first. However, since they are only testing libdrm_intel, remove them from igt as they would better belong in a libdrm_intel test suite. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106010 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Martin Peres <martin.peres@linux.intel.com> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-05-22tests/kms_available_modes_crc: Test all modes on all planesJuha-Pekka Heikkila
Ask from kernel about supported modes for each plane and try setting them on display and verify functionality with crc. DRM_FORMAT_ARGB8888 and DRM_FORMAT_ABGR8888 skip crc testing on primary and overlay planes because they produce incorrect crcs from hardware. DRM_FORMAT_ARGB8888 is tested on cursor plane. v3: address review comments from Mika Kahola. Stop crc at end of test before freeing it. Use libdrm instead of mixing ioctl and libdrm. v2: Address review comments from Mika Kahola. Keep crc running for all tests while on same pipe, set tile height to 16 and read only one crc per test. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-05-08tests: Remove kms_mmio_vs_cs_flipMaarten Lankhorst
CS flips no longer exist, so the test has become useless. Other tests like kms_busy already perform some testing that's gpu agnostic. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-03-22tests/kms_getfb: Add test for getfbDaniel Stone
Add a new test exercising the GetFB API, specifically including its behaviour of always returning new handles even if the client already has a handle to the GEM buffer. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-12tests: add i915 query testsLionel Landwerlin
Add some new tests to cover the i915 query uAPI. The first user of this API is the RCS topology but we expect more to follow. v2: Complete invalid cases (Chris) Some styling (to_user_pointer, etc...) (Chris) New error check, through item.length (Chris) v3: Update for new uAPI iteration (Lionel) v4: Return errno from a single point (Chris) Poising checks (Chris) v5: Add more debug traces (Lionel) Update uAPI (Joonas/Lionel) Make sure Haswell is tested (Lionel) v6: s/query_item/query_items/ (Tvrtko) test that flags fields != 0 fail (Tvrtko) Split kernel writes checks out (Tvrtko) Verify that when an EU is available, so is slice & subslice it belongs to (same with subslice). (Tvrtko) Verify kernel errors out with read only memory (Tvrtko) v7: Add a special Haswell test to verify correct values (Tvrtko) Simplify igt_require() in front of tests (Tvrtko) v8: Reuse the GT field from device info to verify slice/subslices numbers on wider number of platforms (Lionel) v9: Fix invalid number of subslices on GT4 (Lionel) Update comments style (Tvrtko) Test invalid query pointer (Tvrtko) Check topology item minimum length (Tvrtko) Test invalid item data pointers (Tvrtko) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-03-06igt: Remove gen7_forcewake_mtChris Wilson
Having demonstrated that FORCEWAKE_MT is suspect to the same old concurrent mmio access bug that stalks gen7, we have shown that it is not viable for userspace to poke around inside FORCEWAKE_MT directly. As it can not work correctly, remove the test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-02-22igt: Add VC4 purgeable BO testsBoris Brezillon
v3: Make sure we receive a SIGBUS signal when accessing memory of a purged BO Add <signal.h> include after rebase (by anholt) Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Anholt <eric@anholt.net>
2018-02-21igt/gem_ctx_isolation: Check isolation of registers between contextsChris Wilson
A new context assumes that all of its registers are in the default state when it is created. What may happen is that a register written by one context may leak into the second, causing mass confusion. v2: Extend back to Sandybridge (etc) v3: Check context preserves registers across suspend/hibernate and resets. v4: Complete the remapping onto the new class:instance v5: Not like that, like this, try again to use class:instance v6: Prepare for retrospective gen4 contexts! v7: Repaint register set name to nonpriv, as this is what bspec calls the registers that are writable by userspace. v8: Fix a typo for LRM on gen8 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2018-02-01tests: Remove kms_renderMaarten Lankhorst
This was a test that required manual verification to see whether FBC, was handled correctly. But the automated testing has been added with kms_frontbuffer_tracking, so this test no longer serves a purpose. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Imre Deak <imre.deak@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Imre Deak <imre.deak@intel.com>
2017-12-05tests/gem_seqno_wrap: Drop gem_seqno_wrap.cAbdiel Janulgue
gem_seqno_wrap is defunct as the debug API withered away. The handling of wraparound under many different workloads is tested by gem_exec_whisper (Chris). Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-05tests/gem_pin: Drop gem_pin.cAbdiel Janulgue
gem_pin ABI is going away (Chris). Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-05tests/gem_hangcheck_forcewake: Drop gem_hangcheck_forcewake.cAbdiel Janulgue
gem_hangcheck_forcewake has been superseded by drv_hangman, and a lot of other very extensive hangchecking that is not run by CI (Chris). Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-11-28igt: Remove gem_ctx_basicChris Wilson
This is just a very plain stress test that doesn't do any verification, and is entirely duplicated by the other context tests. The test currently leaks objects from every thread on every pass (which is triggering an oom on smaller machines), while fixing it would be trivial, it also is pointless as the test is of little merit. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-11-22tests/perf_pmu: Tests for i915 PMU APITvrtko Ursulin
A bunch of tests for the new i915 PMU feature. Parts of the code were initialy sketched by Dmitry Rogozhkin. v2: (Most suggestions by Chris Wilson) * Add new class/instance based engine list. * Add gem_has_engine/gem_require_engine to work with class/instance. * Use the above two throughout the test. * Shorten tests to 100ms busy batches, seems enough. * Add queued counter sanity checks. * Use igt_nsec_elapsed. * Skip on perf -ENODEV in some tests instead of embedding knowledge locally. * Fix multi ordering for busy accounting. * Use new guranteed_usleep when sleep time is asserted on. * Check for no queued when idle/busy. * Add queued counter init test. * Add queued tests. * Consolidate and increase multiple busy engines tests to most-busy and all-busy tests. * Guarantte interrupts by using fences. * Test RC6 via forcewake. v3: * Tweak assert in interrupts subtest. * Sprinkle of comments. * Fix multi-client test which got broken in v2. v4: * Measured instead of guaranteed sleep. * Missing sync in no_sema. * Log busyness before asserts for debug. * access(2) instead of open(2) to determine if cpu0 is hotpluggable. * Test frequency reporting via min/max setting instead assuming. ^^ All above suggested by Chris Wilson. ^^ * Drop queued subtests to match i915. * Use long batches with fences to ensure interrupts. * Test render node as well. v5: * Add to meson build. (Petri Latvala) * Use 1eN constants. (Chris Wilson) * Add tests for semaphore and event waiting. v6: * Fix interrupts subtest by polling the fence from the "outside". (Chris Wilson) v7: * Assert number of initialized engines matches the expectation. (Chris Wilson) * Warn instead of skipping if we couldn't restore the initial frequency. (Chris Wilson) * Move all asserts to after the test cleanup (just a tidy). * More 1eN notation for timeouts. * Bump the tolerance to 5% since I saw a few noisy runs with sampling counters. * Always start the PMU before submitting batches to lower reliance on i915 doing the delayed engine busy stats disable. v8: * Update for upstream engine class enum. v9: * Add meson build support. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-11-21igt/vc4-label: Test setting labels of BOs.Eric Anholt
So far this test is basically making sure that we throw appropriate errors, and don't oops the kernel with silly inputs. v2: Add to meson build. Signed-off-by: Eric Anholt <eric@anholt.net> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-11-21igt/vc4_tiling: Test vc4's new set/get_tiling ioctls.Eric Anholt
This just checks that the appropriate errors get thrown, and that the modifier can be set/get successfully, and that the modifier doesn't leak to other BO allocations. Testing of scanout will be done with the writeback support that Boris is building. The modifier has no effect on V3D rendering, so no need to test that. v2: Add to the meson build. Signed-off-by: Eric Anholt <eric@anholt.net>
2017-10-18tests: remove kms_fbc_crcDaniel Vetter
This was the predecessor test to kms_frontbuffer_tracking, which not just tests fbc, and also in a much more through-out fashion. Both tests authored by Paulo, but looking at git history there's a clear switch with the introduction of kms_frontbuffer_tracking. After that only maintenance commits to kms_fbc_crc. Not point having redundant tests, so lets remove the old one. This will cut a bit more than 3 minutes of test-time from kbl-shard. Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Acked-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2017-10-12tests: Drop gem_bad_length as redundantDaniele Ceraolo Spurio
Most of the gem_bad_length code is compiled out because creating a zero-length object is not allowed anymore by i915 and thus it is not possible to execute it. The remaining part checks that creation of a zero-length object does indeed fail, which is also checked by gem_create/create-invalid-size. The only difference between the 2 tests is that gem_bad_length checks specifically for EINVAL while create-invalid-size only looks for failure, so after adding the EINVAL check to create-invalid-size it is safe to drop gem_bad_length. v2 (Joonas): - Clarify header line, split the patch, fix Meson build and add Cc: Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-10-10tests/syncobj: Add some wait and reset tests (v7)Jason Ekstrand
This adds both trivial error-checking tests as well as more complex tests which actually test whether or not waits do what they're supposed to do. They only currently work on i915 but it should be simple to hook them up for other drivers by simply implementing the little function pointer hook provided at the top for triggering a syncobj. v2: - Actually add the reset tests. v3: - Only do one execbuf for trigger - Use do_ioctl and do_ioctl_err - Better check for syncobj support - Add local_/LOCAL_ defines of things - Use a timer instead of a pthread v4: - Use ioctl wrappers - Use VGEM instead of i915 - Combine a bunch of the simple tests into one function v5: - Combinatorially generate basic tests - Use sw_sync instead of using vgem directly - Add even more tests v6: - Rebase on the new SYNCOBJ_RESET API - Add tests for SYNCOBJ_SIGNAL v7: - Improve the signal and reset bad pad tests Reviewed-by: Dave Airlie <airlied@redhat.com> [airlied: fix build] Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2017-10-02tests: Rename kms_pipe_color to kms_colorMaarten Lankhorst
Rename kms_pipe_color to kms_color, and rename the invalid tests to pipe-invalid. To prepare for adding support for plane color management. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-09-20meson: align test-list.txt generation with automakeDaniel Vetter
- I forgot the chamelium tests - Order tests the same way in both build systems. Since testdisplay is special, it's easier to put that at the end in meson, so adjusted automake to suit. With this you can diff the 2 test lists and end up with 0 differences, which will be useful to CI meson vs. automake. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2017-09-12tests: Add kms_atomic_interruptible test, v4.Maarten Lankhorst
This tests the various parts of atomic that I want to make interruptible. Running with --debug shows the stats from __igt_sigiter_continue, which can be used to make sure that we don't fall over. The default igt kms helpers use drmIoctl, which is not intercepted by igt_while_interruptible. Only igt_ioctl is. This means we have to call the ioctls manually here. Changes since v1: - Implement interruptible DPMS checking too. - Use igt_ioctl + igt_while_interruptible, instead of the signal helper shotgun. Changes since v2: - Bump whitespace to get rid of the weird double } at same indent. - Use more newlines in the call to the atomic ioctl. Changes since v3: - Fix copyright on year. (Adrinael) - Use do_ioctl instead of do_or_die(igt_ioctl) (ickle). - Add test description. (Adrinael) Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Daniel Stone <daniels@collabora.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> #v1 Reviewed-by: Petri Latvala <petri.latvala@intel.com> [mlankhorst: Document sleep values (Adrinael)]
2017-08-29igt: Add gem_closeChris Wilson
What transpired recently was that we allow a single process to create multiple handles to the same VMA (which I broke). Make sure we test! References: https://bugs.freedesktop.org/show_bug.cgi?id=102355 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-08-09igt: add syncobj_basic.Dave Airlie
Some basic sync object interface tests Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
2017-06-19tests: Cleanup after .sh -> .c conversionArkadiusz Hiler
.sh files with option parsing and other helpers are gone, as nothing were using them. Extended test list updates: * changed the already converted * maintained alphabetical ordering * igt@test_rte_check was removed from the list as it tested the sh library which is now gone Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-06-16Convert tools shell tests to C versionAbdiel Janulgue
v4: Go thru /dev/kmsg instead of dmesg | grep .... (Arek). Split conversion to couple of patches. Converted: - sysfs_l3_parity - test_rte_check (same as check_drm_clients) - tools_test - ZZ_check_dmesg Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-16Convert debugfs shell tests to C versionAbdiel Janulgue
v4: Rename get_sysfs_entry -> read_and_discard_sysfs_entry, assert on null igt_sysfs_get() (Arek). v3: Drop redundant test covered by drv_hangman/basic. Descend thru debugfs path when reading sysfs entries (Chris). v2: Use internal igt_debugfs functions instead of cat and document debugfs tests. Convert sysfs_l3_parity properly. Rename redundant names in tests. Converted: - debugfs_emon_crash - debugfs_wedged - drv_debugfs_reader Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-09tests: Merge single_kernel_tests and multi_kernel_tests in the build systemPetri Latvala
The separation of testcases with and without subtests in the build system was used in the past, but now both are handled the same way. Merge them together and finally forget about the difference between TESTS_progs and TESTS_progs_M. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-09tests/Makefile.sources: Remove unused XFAIL_TESTSPetri Latvala
The tests listed in XFAIL_TESTS have moved to lib/tests quite a while ago. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-07igt/vc4_dmabuf_poll: Add a test for polling to wait for dmabuf fences.Eric Anholt
This successfully catches vc4's lack of dmabuf fencing. Signed-off-by: Eric Anholt <eric@anholt.net>
2017-06-07chamelium: Fix build issues on AndroidArkadiusz Hiler
Makefile.sources are included 1:1 in Android.mk files, and are not parsed by automake. And yet those had some automake conditional logic. Moving it to .am file is enough for now. Also igt_chamelium.h included config.h without proper "HAVE_CONFIG_H" guard, and the file itself was included unconditionally. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
2017-05-03tests/kms_concurrent: Concurrent and interruptible subtests for atomicMika Kahola
This test case introduces concurrently running test cases for atomic modesetting. The first test or thread draws blue backround with black holes on it. These holes are covered by rectangular, blue planes that are placed randomly like in test case 'kms_plane_multiple'. The second thread changes resolution from higher to lower one and back. For: VIZ-7022 v2: use igt_fork instead of pthreads to create concurrent test runs (Maarten) v3: use igt_display calls instead of raw drm calls for display updates (Maarten) Various cleanups on accessing drm connector (Maarten) Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-04-27Add gem_exec_awaitChris Wilson
The sole purpose of this test is try and exercise i915_gem_request_await_object() and descendants. In particular, asking whether it is worth adding magic there. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-04-22igt: Add amd_prime for checking prime integrationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-04-22igt: Add basic amd_cs_nopChris Wilson
A bare bones test to execute nothing; a starting point to learn the interface and to reveal the first limitations of amdgpu. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-04-22igt: Import basic amdgpu tests from libdrmChris Wilson
Simple copy and replace of the CUnit tests inside libdrm to form a basis for further prime integration testing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-04-20tests/kms_hdmi_inject: Add test for HDMI injection capabilities.Abdiel Janulgue
Original author: Marius Vlad. Includes fixes below. v5: Convert unit tests to lib selftest. v4: Add a unit test to make sure synthetic EDID blocks generated by IGT is valid (suggested by Petri). v3: Make audio injection work. Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
2017-04-19tests/meta_test: Add a meta test for sanity checks of CI systemsMarta Löfstedt
The intention of this test is use it to test that the CI system that runs IGT is collecting the results correctly. For: VIZ-10281 v2: minor edits Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-03-25igt: Add gem_exec_capture to exercise capturing user requested buffers on hangChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-03-08tests: Add gem_spin_batchMika Kuoppala
Add gem_spin_batch to test that the dummyload infra is working properly. Can be also act as tool to force a single engine to be busy for controlled period of time. v2: plenty of igt-fu improvements (Chris) v3: nesting batches for more utilization, epsilon fun (Chris) v4: clear interrupts on start (Chris) Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-27Only build chamelium if its dependencies are metChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-26Add support for hotplug testing with the ChameliumLyude
For the purpose of testing things such as hotplugging and bad monitors, the ChromeOS team ended up designing a neat little device known as the Chamelium. More information on this can be found here: https://www.chromium.org/chromium-os/testing/chamelium This adds support for a couple of things to intel-gpu-tools: - igt library functions for connecting to udev and monitoring it for hotplug events, loosely based off of the unfinished hotplugging implementation in testdisplay - Library functions for controlling the chamelium in tests using xmlrpc. A couple of RPC calls were ommitted here, mainly because they didn't seem very useful for our needs (yet) - A set of functions for doing CRC checks and frame comparisons in tests - A set of basic tests using the Chamelium library. Cc: Tomeu Vizoso <tomeu@tomeuvizoso.net> Signed-off-by: Lyude <lyude@redhat.com> Changes since v1: - Don't try to guess connector mappings, have the user specify them manually using a configuration file - Open DRM fd using DRIVER_ANY, not DRIVER_INTEL - Lower the hotplug timeout a little bit, since 30 seconds was leftover from debugging these tests anyway - Don't try to keep track of the original state of the chamelium ports, and just leave them plugged in after each run. This makes more sense to me, since I'd imagine in automated testing setups using chameliums that all of the extra monitors will probably be provided by the Chamelium to begin with, so keeping them plugged in would make sure tests running afterwards that require >1 monitor don't get skipped. - Add wait_for_connector() to the chamelium tests. After some more testing, I found that depending on the system some tests would throw false negatives due to us not waiting long enough for the system to detect that we connected something to it. This mainly happened with VGA connectors, since their lack of HPD makes them take significantly longer for the hardware to notice. wait_for_connector() fixes this by continually reprobing the status of the desired connector (without relying on a hpd event happening, since that might never come) until we get what we want, or we time out and fail. - Use kmstest_get_property() for retrieving EDIDs instead of doing it by hand - Don't hardcode PIPE_A for bringing up the display, use kmstest to find an appropriate CRTC to use. Changes since v2: - Fix incorrect usage of the list helpers when recording new EDIDs - Add missing documentation - Make sure documentation actually appears - Since we finally got video capture working, add CRC functions and fix the ones we couldn't actually test before - In the exit handler, reset the xmlrpc env so we can properly reset the Chamelium even after an RPC error - Make sure compiling without Chamelium support still works Changes since v3: - Change the config file name from .igt_chamelium_rc to .igtrc - Remove chamelium global context - Get rid of define_common_connector_tests() - Get rid of connector list, expose connectors as opaque objects and provide helpers for accessing their attributes - Get rid of configure.ac option for Chamelium - Add tests for CRC functions - Add frame dumping functions + tests - Add FSM handling to chamelium_rpc() - Use LIBUDEV_LIBS in automake, not UDEV_LIBS - Documentation fixes - Improve debugging output some more - Remove skip_without_suspend_support, we no longer need to check for suspend support before calling things - Remove unnessecary malloc() checks with igt_assert() - Don't use igt_require in chamelium_init, leave it up to the caller whether or not to abort when failing to initialize the chamelium - Use igt_assert_eq for making assertions about connector's statuses - Define suspend/resume delay for tests as constant
2017-01-13tests/kms_plane_lowres: Plane visibility after atomic modesetsMika Kahola
Testcase for plane visibility after atomic modesets. The idea of the test is the following: - draw a blue screen with high resolution - enable a yellow plane, visible, in lower-left corner - set a new lower resolution mode (1024x768) that makes plane invisible - check from debugfs 'i915_display_info' that the plane is invisible - switch back to higher resolution mode - check from debugfs 'i915_display_info' that the plane is visible again - repeat number of iterations, default 64 v2: allow test to be run on non-Intel drivers (Daniel) moved test for plane visibility to as helper function (Daniel) moved get_vblank() function to be part of helper functions (Daniel) rename 'tiling' parameter as 'modifier' (Daniel) select a mode from a list so that the plane should be invisible. use default 1024x768 mode only as a fallback if decent mode has not been found (Daniel) add tiling MODE_NONE (Daniel) v3: draw as many overlay planes as the platform supports + cursor plane on top of each other on lower-left corner skip the test if i915_display_info file is not available test plane visibility with igt_assert_plane_visibility() function drop option for multiple test iterations (Daniel Vetter) v4: switch 'for_each_connected_output()' to 'for_each_valid_output_on_pipe()' skip Y and Yf tiling for generations older than 9 (Maarten) Cc: Daniel Stone <daniel@fooishbar.org> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-12tests: Add test for tv load detectionMaarten Lankhorst
The test is that kernel load detection works as intended, and doesn't cause any vblank spam. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Tested-by: Lyude <cpaul@redhat.com>
2017-01-05tests: Add gem_exec_reuseChris Wilson
Exploratory test into behaviour when reusing bo between batches. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-04tests/kms_ccs: Add test for render compressionTomeu Vizoso
Add a few subtests that check that lossless compressed render targets are properly displayed. Also test a few error conditions. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Ben Widawsky <ben@bwidawsk.net>
2016-12-16igt/perf: add i915 perf stream tests for HaswellRobert Bragg
This bumps the libdrm_intel version required to 2.4.74 for the drm_intel_context_get_id api used in these tests. Signed-off-by: Robert Bragg <robert@sixbynine.org> Reviewed-by: Matthew Auld <matthew.auld@intel.com>