Age | Commit message (Collapse) | Author |
|
Run all tests from the current directory when the kmstest.py script it
executed directly, as opposed to being imported by individual tests.
This simplifies running all tests.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Only run a test automatically if the Python test script is executed
directly. This will allow importing tests as modules in a test runner.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
If CRC support isn't available (most likely caused by debugfs not being
mounted), the CRCReader constructor will throw an exception that the crc
test doesn't handle. Move construction of the CRCReader earlier and skip
the test if it fails.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
If an exception occurs in the CRCReader constructor, the self.dir,
self.ctrl and self.data members may not be set. This causes another
exception to be thrown by the destructor when it tries to access those
members. Fix it by initializing all the members first, and only closing
the dir and ctrl file descriptors if they have been successfully opened.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The CRC directory name string was converted to a Python formatted string
literal incorrectly, with the f prefix within the string instead of just
before it. Fix it.
Fixes: dcbc93a117b0 ("tests: Convert to formatted string literals")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The RuntimeError class has no message member. Use args[0] instead.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The test start log message incorrectly prints the same connector twice
instead of the source and destination connectors. Fix it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Match the name scheme of other tests by renaming
kms-test-planeposition.py to kms-test-plane-position.py.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Add a test that enables multiple planes with different zpos values.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Add an optional zpos argument to the atomic_plane_set() function to
allow controlling the zpos of a plane.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Add a test that enables multiple planes with different alpha values.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Add an optional alpha argument to the atomic_plane_set() function to
specify the alpha value for the plane.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
If the property is a string that ends with a '%' character, treat it as
a percentage of the range reported by the property and convert it to the
corresponding numerical value.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Centralize props value formatting in the AtomicRequest.add() function to
avoid having to call it manually through the code base.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Plane IDs are useful for debugging, log them.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Use formatted string literals to replace legacy printf-style string
formatting.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
The code base mixes single and double quotes. Standardize on single
quotes except for triple-quoted strings (to match the PEP8 coding style)
and where the string contains single quotes to avoid the need to escape
them.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
The discom-crc utility computes the CRC of a frame using the same
algorithm as the DISCOM hardware block. This is useful to precompute CRC
values and then compare them with the hardware-generated values.
The utility computes the CRC on data stored in a file passed as a
command line argument. It supports two optional arguments, --crop and
--size, to specify the crop rectangle and the image size. The size only
needs to be specified if a crop rectangle is set, it is deduced from the
file size otherwise.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Instead of only checking that the CRC value is constant, compute the
expected CRC value, and compare it to the hardware-generated CRC.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The Composer gathers the computation of planes position. It is currently
only used to configure the planes.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The CRTC should be disabled when the test completes, regardless of
whether it succeeds or fails.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Add Dist, Point and Size classes in addition to the Rect class.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Add a helper isEmpty() method to the Rect class, as well as a __repr__()
method to pretty-print the rectangle.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Commit 3cd7e6814cea ("kmstest.py: Fix CRTC disabling") modified the CRC
test to use the kmstest.AtomicRequest class, but failed to pass the
correct argument to the constructor. Fix it.
Fixes: 3cd7e6814cea ("kmstest.py: Fix CRTC disabling")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Add a test to enable an off-screen plane, in addition to the existing
tests that move enabled planes on screen. This new test crashes the DU
driver.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Improve the formats test by counting the number of formats that failed
and reporting failures appropriately.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Improve the formats test by adding progress reporting, as the test is
long.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Add SPDX tags to describe license and copyright information to all files
in the repository.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
Add a generator method to the KMSTest class to enumerate all
non-writeback connectors, and use it through tests.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
Add a test that moves an output connector between multiple CRTCs with a
single mode set operation at each step, without going through disable
and reenable cycles. This helps testing the routing configuration code
paths in the commit tail handler.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
The BRU/BRS allocation test only covers the H3 ES2.0 SoC as that was the
only hardware platform supported by the DU driver that offered the
required features at the time the test was written. Now that M3-N is
supported in the DU driver, support it in the test script.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
Add a new test script that tests all formats supported by planes.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
Perform mode sets through the legacy API to test the DRM core legacy
code paths, as well as the rcar-du code paths that could be exercised
differently by the atomic legacy mode set helpers.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
When stopping a test, kernel messages can be logged after the event loop
is stopped. Capture them before closing the log.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
The KMSTest.atomic_crtc_disable() method deactivates a CRTC but doesn't
fully disable it, which requires setting the MODE_ID to 0. Furthermore
it doesn't de-associate the CRTC from connectors and planes, which
causes atomic check failures as a fully disabled CRTC can't be
associated with connectors. It can also lead to the next test failing
due to resources still being allocated to the CRTC.
To fix this, introduce an AtomicRequest class that wraps around
pykms.AtomicReq, and stores a copy of all the properties. When the
request is committed the properties are added to a global state, which
is then used to locate and release connectors and planes associated with
the CRTC in KMSTest.atomic_crtc_disable().
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
The test exercises the CRC API by enabling CRC computation on the
pipeline output, capturing CRC values and verifying that they all match.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The CRCReader class uses the DRM/KMS debugfs-based CRC API to configure
CRC computation on a CRTC and read the computed CRC values.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The function can be used to disable planes selectively.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Commit 706a44abb3aa ("Update to latest pybind11") of kmsxx broke the
test suite by changing the signature of the AtomicRequest::commit
function. Update the test suite accordingly.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
|
|
Add a 3s delay after each off-screen position test, as we do for
partially off-screen tests, in order to allow time for visual
inspection.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The DU driver now accepts off-screen planes (but obviously don't display
them). Update the test accordingly.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The Makefile incorrectly refers to test scripts as *.sh while it should
use *.py. Fix it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|