summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2017-07-06Make igtrc configuration common, with configurable suspend/resume delayPaul Kocialkowski
This adds support for configurable suspend/resume delay and takes the occasion to move igtrc configuation from igt_chamelium to igt_core. This way, suspend/resume delay configuration can be used for all tests. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-07-06chamelium: Remove init reset duplicate in favor of per-test resetPaul Kocialkowski
Since most tests are already doing a reset, there is no need to duplicate it at init time. This removes that duplicate reset and adds a call to reset_state where in-test resets where not done previously. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-07-06Revert "igt: Remove default from the engine list"Chris Wilson
This reverts commit d7a0b61450797a3d6644c65aebf75c2a90da1a15.
2017-07-06Revert "gem_exec_basic: Exercise the default engine selection"Chris Wilson
This reverts commit f807953c4e90870df940ecb0e4b5c51caa50167e.
2017-07-06Revert "extended.testlist: Remove some test-subtest combinations"Chris Wilson
This reverts commit 537c4849d476661409425b0e2a5ad8bce4c561eb.
2017-07-06extended.testlist: Remove some test-subtest combinationsTvrtko Ursulin
For tests with attempt to hit races and such by running for relatively long time, it seems that it might be possible to get by only testing some subtest-engine combinations as long as in total we still exercise all engines per test. More precisely, I think that if we view our engines as fast (!rcs) and a little less fast (others), we group the race hitting tests in those two camps, we keep the same coverage by running each subtest against each engine group. v2: Replace individual engine gem_sync subtests with all variants. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Daniel Vetter <daniel.vetter@intel.com>
2017-07-06gem_sync: Add all and store_all subtestsTvrtko Ursulin
Extended versions of the already existing short tests. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Daniel Vetter <daniel.vetter@intel.com>
2017-07-06gem_exec_basic: Exercise the default engine selectionTvrtko Ursulin
Exercise the ABI with a basic test now that we have removed the defaul engine alias from the engine list. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Daniel Vetter <daniel.vetter@intel.com>
2017-07-06igt: Remove default from the engine listTvrtko Ursulin
Default is not an engine but an ABI alias for RCS. Remove it from the engine list to eliminate redundant subtests and test passes. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Daniel Vetter <daniel.vetter@intel.com>
2017-07-06tests/gem_mocs_settings: Fix LNCFCMOCS testing and extract the subtestsMichał Winiarski
Testing LNCFCMOCS values on non-render engines is tricky. The values in those registers are lost on RC6, which means that if users of non-render engines want to see the proper values, they need to obtain a forcewake and execute something on render (relying on it to restore the values) before using non-render engine. Previous version of the test did exactly that - we were relying on the fact that we're taking forcewake (hidden by intel_register_access_init, even though the test is not doing any mmio accesses) before iterating through engines (and render is before other engines, so job done). I really hope that this is not an ABI and those registers are not used on non-render in any way. Let's limit testing LNCFCMOCS to render engine only. The other non-render issue is that when we're using I915_EXEC_BSD, we can't be sure which BSD ring we'll end up executing on. Let's explicitly select BSD1 and BSD2 in our tests. While we're here, let's also remove the duplicated code and add some structure by extracting moving more content into subtests. We're only doing tests that involve "dirtying" the registers for the render engine - since it's the only one that has those registers in its context. v2: Do not skip all BSD engines, test non-default contexts on render only, change names in CI extended.testlist Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: David Weinehall <david.weinehall@linux.intel.com> Cc: Łukasz Kałamarz <lukasz.kalamarz@intel.com> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Łukasz Kałamarz <lukasz.kalamarz@intel.com>
2017-07-06igt/core_auth: Print out the number of magics retrievedChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-07-06Revert "igt/debugfs_test: Skip dummy reads for crtc-n/crc/data"Abdiel Janulgue
This reverts commit 9a6ed6c6398c2218d65392593fa43852810515cc. Test actually exposes a bug in the kernel where opening the crtc-data file takes a long time. Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-07-04igt/debugfs_test: Skip dummy reads for crtc-n/crc/dataAbdiel Janulgue
When descending thru debugfs directory. Doing this tends to takes forever. CRC pipe read tests for this are already covered under kms_pipe_crc_basic. v2: Be more verbose that the check is meant for the crtc control data Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Cc: arkadiusz.hiler@intel.com Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-07-04tests/debugfs_test: Allow opening CRC to fail with -EIO.Maarten Lankhorst
This currently only happens when the power well is not enabled, but in theory should happen every time the file is opened when the CRTC is not enabled. This fixes debugfs_test@read_all_entries failing on f2-bxt-j3405. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-07-04tests/kms_atomic_transitions: Use igt_display_require_output().Maarten Lankhorst
Use the convenience function instead of handrolling it. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-07-03tests/kms_cursor_crc: Fix the cursor tests to work on CHVMaarten Lankhorst
On CHV pipe C when the cursor is visible with a negative X coordinate a FIFO Underrun will occur. The kernel worked around this by disallowing cursor updates on pipe C at negative X coordinates when the cursor is visible. This was done in the following kernel commit: commit ef8dd37af85a8f37ca3a29074647511e52c56181 Author: Ville Syrjälä <ville.syrjala@linux.intel.com> Date: Fri Dec 18 19:24:39 2015 +0200 drm/i915: Workaround CHV pipe C cursor fail kms_chv_cursor_fail was created to test this issue, but it also happens in kms_cursor_crc, so workaround it there too. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97960
2017-06-30igt/gem_exec_fence: Test EXEC_FENCE_SUBMITChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-29igt/gem_ctx_switch: Actually force the context-switchChris Wilson
The intent is that during interruptible runs we always force a relocation between batch. This requires us to set an invalid presumed_offset. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-29igt/gem_cpu_reloc: Fix presumed_offsetChris Wilson
The content of the batch may no longer match the offset/presumed_offset pair, so force the relocation by setting reloc.presumed_offset=-1 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-29igt/gem_reloc_overflow: Pass the right invalid presumed_offsetChris Wilson
Several tests were passing a presumed_offset that matches the actual offset of the object and so were very suprised when the kernel promptly skipped performing the relocation (as expected). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-28tests/kms_busy: Remove gem_bo_busy checksMaarten Lankhorst
They're not useful since GPU reset may kill off our spin batch. This used to be the case but wasn't in the kernel when I wrote this test. But the following commit reintroduced this behavior: commit 36703e79a982c8ce5a8e43833291f2719e92d0d1 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Thu Jun 22 11:56:25 2017 +0100 drm/i915: Break modeset deadlocks on reset Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-06-28tests/kms_atomic: Add test for new DRM_MODE_PAGE_FLIP_EVENT behavior.Maarten Lankhorst
DRM_MODE_PAGE_FLIP_EVENT is now rejected if no CRTC is affected by the changes. Make sure the TEST_ONLY test keeps working, and test with DRM_MODE_PAGE_FLIP_EVENT. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-06-27tests/chamelium: Reduce the simple hotplug test toggle count for VGAPaul Kocialkowki
Since VGA hpd detection is done through RGB lines load detection and nowadays often goes through a bridge to some digital interface, HPD detection usually takes a while (up to a couple seconds). Thus, it is not as relevant to stress it as many as 15 times. This brings the toggle count down to 5 times, which makes the test run a lot faster without really changing the outcome much. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-27tests/chamelium: Add VGA HPD toggle tests after suspend and hibernatePaul Kocialkowki
This adds HPD toggle after suspend and hibernate testing for VGA, in the same fashion as currently done for DP and HDMI and includes VGA in the common suspend and hibernate test. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-27chamelium: Add support for HPD toggle scheduling instead of async pulsesPaul Kocialkowki
This adds support for the newly-introduced ScheduleHpdToggle XMLRPC method of the Chamelium's interface and makes use of it instead of starting pulses with an asynchronous call, suspending and dealing with the result at resume. The XMLRPC library does not guarantee that the call will be made before caring for its outcome and this is in fact what was happening: the call was being delayed until resume time, as can be seen from the Chamelium's logs. The quite generous timeout for HPD event detection would then catch the toggle, that was sent after resume. This is especially useful for testing HPD during suspend/resume. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-26tests/chamelium: Use 50 ms delay to wait for connector changePaul Kocialkowki
Using a 1 s delay seems too large for detecting a connector change, that may happen faster than this. Since the constraints on execution time are high, it is preferable to use a much smaller sleep time. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-26tests/chamelium: Check all connectors state for basic hotplugPaul Kocialkowki
Without doing a full reprobe, hpd toggles are sent without much delay between them. With a VGA connector attached, the reset occurring before the test will toggle its state, with a delay (inherent to hpd detection on VGA). It often occurs that this VGA state toggle is detected in the middle of the current connector test, triggering a hotplug event unrelated to the current connector and thus causing the test to fail. Thus, the state of all connectors is checked (and waited for) before running the basic hotplug test. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-22igt/vgem_basic: Test DRM_IOCTL_SETVERSIONChris Wilson
vgem is a nasty test case for various parts of the core as it is a virtual device with drm_device.dev == NULL; this includes drm_setversion for example. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-22igt/gem_reloc_overflow: Fix limits for buffercount overflowChris Wilson
It's hard to overflow a 64-bit value from a 32-bit uabi... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-21Revert "igt/pm_rps: Remove remaining assert on CUR <= MAX"Arkadiusz Hiler
This reverts commit ae8d240b4d742a51f99e7fbe428392041aec160b. This constrain still should be in effect, as noted by Michal Winiarski. There's no client boost in the scenario when the check happens, so CUR freq should never exceed the MAX. Cc: Jeff Mcgee <jeff.mcgee@intel.com> Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> Cc: Michal Winiarski <michal.winiarski@intel.com>
2017-06-20tests/chamelium: Add common suspend and hibernate tests for DP and HDMIPaul Kocialkowki
This adds two new tests: common-hpd-after-suspend and common-hpd-after-hibernate that are aimed at testing HPD change during suspend/hibernate for both DP and HDMI, at the same time. The interest in bringing this test up is to reduce the time spent in testing, with the downside of less precision regarding the test's outcome. The per-connector tests are still available to get a more precise idea of which connector causes a failure, when that happens. VGA is explicitly excluded from this test as there is currently no way of doing delayed hpd pulses for it. The generic hpd suspend/resume test code is split in a dedicated function, that allow testing one or all possible ports. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-20igt/gem_reset_stats: Fix pending batches status expectationAntonio Argenziano
Test expects pending batches to be discarded after a reset. After commit 821ed7df6e2a ("drm/i915: Update reset path to fix incomplete requests"), That is no longer the case. Fixed to expect a normal execution. V2: Updated commit message (Michel Thierry) Cc: Michel Thierry <michel.thierry@intel.com> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Michel Thierry <michel.thierry@intel.com>
2017-06-20igt/pm_rps: Remove remaining assert on CUR <= MAXJeff McGee
This completes the change started by: commit 39cccab83b7c515a2b57abe679a8cb304c8933ef Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri May 19 09:41:40 2017 +0100 igt/pm_rps: Allow CUR to be greater than MAX (overclocking) Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Jeff McGee <jeff.mcgee@intel.com> Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
2017-06-20igt/kms_pipe_crc_basic: Skip test before system suspendGabriel Krisman Bertazi
Do a dummy crc read such that if there are no valid outputs for the pipe, it skip the test before doing a system suspend. Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-06-20igt/kms_pipe_crc_basic: Print pipe name when skippingGabriel Krisman Bertazi
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-06-20igt/meta_test: Add a warn subtest to make sure warnings are caught as expected.Maarten Lankhorst
Cc: Marta Löfstedt <marta.lofstedt@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2017-06-20tests/kms_busy: Add test to reproduce the CI kms_flip killerMaarten Lankhorst
When aborting kms_flip.render-flip-vs-modeset in CI the test hangs on RMFB. Make a test that simulates nonblocking stuck pageflip vs blocking modeset. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-06-20tests/kms_flip: degrade warn to debugMaarten Lankhorst
This is explicitly tested in kms_setmode.basic Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-06-19tests/kms_rmfb: Fix cursor fb sizeVille Syrjälä
Don't use the display mode size to determine the cursor fb size. That will lead to a framebuffer with a stride that the cursor plane won't support. Just use the max cursor size as the fb size instead. This started to trip up after i915 started to actually use the cursor fb stride in commit 1e1bb8710e60 ("drm/i915: Use fb->pitches[0] in cursor code") Cc: Marta Löfstedt <marta.lofstedt@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97975 Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.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-16tests: Rename I915_MAX_PIPES to IGT_MAX_PIPESLeo (Sunpeng) Li
Name should not be driver-specific. Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-16tests: Increase value of I915_MAX_PIPES to 6Leo (Sunpeng) Li
Increasing max pipe count to 6 to support AMD GPU's. Since some tests' behavior depends on this value, small changes are made to remove this dependency: * kms_ccs: Early abort if wanted_pipe is out-of-bounds. * kms_concurrent: Check if pipe is within bounds first. * kms_pipe_color: Prevent skipping of subsequent tests by placing generated tests in a 'igt_subtest_group'. * kms_plane: Move pipe and plane index checking to subtest group level. v2: Change invalid pipe check on kmstest_pipe_name() to use I915_MAX_PIPE v3: Change tabs to spaces in 'enum pipe' Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Tested-by: Tomi Sarvela <tomi.p.sarvela@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-14tests/chamelium: Set output pipe after mode change to refresh outputPaul Kocialkowski
This adds a call to igt_output_set_pipe in orde to refresh output via igt_output_refresh and ensure that mode override can take effect. Without this change, using a lower resolution during frame dumps series with mode changes (e.g. test_display_frame_dump) would not commit the mode change to the output and leave it with a framebuffer too small for the previously-commited resolution. This would cause the test to fail. This allows it to pass. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-13tests/chamelium: Close DRM file descriptor after testsPaul Kocialkowski
This adds a call to close the DRM file descriptor. It is reauired as IGT will attempt to become DRM master after running the test, resulting in a failure. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-12kms_rotation_crc: Fix rotation tests on older platforms again.Maarten Lankhorst
I've erroneously assumed the rotation tests only work on gen9+, and didn't test what would happen on older platforms. Add an extra testcase that tries to fill the whole screen, and only run that test on gen8 and lower for the primary plane. This fixes the testcases failing since the following commit: commit a7fe05b0a784a7a7c58d36842426579a6e00f5a0 Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Date: Tue Jun 6 16:41:12 2017 +0200 tests/kms_rotation_crc: Implement stricter rotation tests Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-06-09igt/gem_exec_await: Reduce ring-size estimate for shared ringbuffer submissionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-09igt/gem_exec_fence: Limit history size for !execlistsChris Wilson
Only with execlists, is each context using a separate ring buffer and we can accumulate as many fences as contexts we can allocate. On the hand, systems with just a single ring buffer for all contexts, we can only allocate enough contexts/fences as to fill the ring. If we try to add to many we end up stuck waiting for space. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-06-09intel-ci: Document the public CI results web pagePetri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>