summaryrefslogtreecommitdiff
path: root/tests/kms-test-planeposition.py
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-06-10 02:34:00 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-06-29 21:16:23 +0300
commit70afa1a51f4ffc4db404514af0b2990b23d56fee (patch)
treed8bb60e804294eb361cd229ac5a65fe7c6138982 /tests/kms-test-planeposition.py
parent85507dc377186cfef0f27c99f67434dd3efae9e6 (diff)
tests: Rename kms-test-planeposition.py to kms-test-plane-position.py
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>
Diffstat (limited to 'tests/kms-test-planeposition.py')
-rwxr-xr-xtests/kms-test-planeposition.py126
1 files changed, 0 insertions, 126 deletions
diff --git a/tests/kms-test-planeposition.py b/tests/kms-test-planeposition.py
deleted file mode 100755
index aceb849..0000000
--- a/tests/kms-test-planeposition.py
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/python3
-# SPDX-License-Identifier: GPL-2.0-or-later
-# SPDX-FileCopyrightText: 2017-2019 Renesas Electronics Corporation
-
-import kmstest
-import pykms
-import time
-
-class PlanePositionTest(kmstest.KMSTest):
- """Test boundaries of plane positioning."""
-
- def main(self):
- self.start('plane positioning boundaries')
-
- # Find a CRTC with a connected connector and at least two planes
- for connector in self.output_connectors():
- if not connector.connected():
- self.skip('unconnected connector')
- continue
-
- try:
- mode = connector.get_default_mode()
- except ValueError:
- continue
-
- crtcs = connector.get_possible_crtcs()
- for crtc in crtcs:
- planes = []
- for plane in self.card.planes:
- if plane.supports_crtc(crtc):
- planes.append(plane)
-
- if len(planes) > 1:
- break
- else:
- crtc = None
-
- if crtc:
- break
-
- else:
- self.skip('no CRTC available with connector and at least two planes')
- return
-
- self.logger.log(f'Testing connector {connector.fullname}, CRTC {crtc.id}, '
- f'mode {mode.name} with {len(planes)} planes')
-
- # Create a frame buffer
- fb = pykms.DumbFramebuffer(self.card, mode.hdisplay, mode.vdisplay, 'XR24')
- pykms.draw_test_pattern(fb)
-
- # Set the mode with no plane, wait 5s for the monitor to wake up
- ret = self.atomic_crtc_mode_set(crtc, connector, mode, sync=True)
- if ret < 0:
- self.fail(f'atomic mode set failed with {ret}')
- return
-
- self.logger.log('Initial atomic mode set completed')
- time.sleep(5)
-
- # Add the first plane to cover half of the CRTC
- source = kmstest.Rect(0, 0, fb.width // 2, fb.height)
- destination = kmstest.Rect(0, 0, fb.width // 2, fb.height)
- ret = self.atomic_plane_set(planes[0], crtc, source, destination, fb, sync=True)
- if ret < 0:
- self.fail(f'atomic plane set for first plane failed with {ret}')
- return
-
- self.logger.log('Root plane enabled')
- time.sleep(3)
-
- # Add the second plane and move it around to cross all CRTC boundaries
- offsets = ((50, 50), (150, 50), (50, 150), (-50, 50), (50, -50))
- for offset in offsets:
- width = fb.width - 100
- height = fb.height - 100
- source = kmstest.Rect(0, 0, width, height)
- destination = kmstest.Rect(offset[0], offset[1], width, height)
-
- ret = self.atomic_plane_set(planes[1], crtc, source, destination, fb, sync=True)
- if ret < 0:
- self.fail(f'atomic plane set with offset {offset}')
- return
-
- self.logger.log(f'Moved overlay plane to {offset}')
- time.sleep(3)
-
- # Try to move the plane completely off-screen. The device is expected
- # to accept this and not to show the plane on the screen.
- offsets = ((mode.hdisplay, 50), (50, mode.vdisplay),
- (-mode.hdisplay, 50), (50, -mode.vdisplay))
- for offset in offsets:
- width = fb.width - 100
- height = fb.height - 100
- source = kmstest.Rect(0, 0, width, height)
- destination = kmstest.Rect(offset[0], offset[1], width, height)
-
- ret = self.atomic_plane_set(planes[1], crtc, source, destination, fb, sync=True)
- if ret < 0:
- self.fail(f'atomic plane set with offset {offset}')
- return
-
- self.logger.log(f'Moved overlay plane to {offset}')
- time.sleep(3)
-
- # Disable and re-enable the plane when it is off-screen. The device is
- # still expected to handle this gracefully.
- ret = self.atomic_plane_disable(planes[1])
- if ret < 0:
- self.fail('off-screen atomic plane disable failed')
- return
-
- width = fb.width - 100
- height = fb.height - 100
- source = kmstest.Rect(0, 0, width, height)
- destination = kmstest.Rect(mode.hdisplay, 50, width, height)
-
- ret = self.atomic_plane_set(planes[1], crtc, source, destination, fb, sync=True)
- if ret < 0:
- self.fail('off-scrren atomic plane enable failed')
- return
-
- self.atomic_crtc_disable(crtc)
- self.success()
-
-PlanePositionTest().execute()