tests: Provide {un,}bind testing master
authorKieran Bingham <kieran.bingham@ideasonboard.com>
Mon, 25 May 2020 13:13:23 +0000 (14:13 +0100)
committerKieran Bingham <kieran.bingham@ideasonboard.com>
Wed, 16 Sep 2020 14:16:19 +0000 (15:16 +0100)
Perform unbind-bind testing of the VSP devices to validate
successful removal of the drivers.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
tests/vsp-unit-test-0026.sh [new file with mode: 0755]

diff --git a/tests/vsp-unit-test-0026.sh b/tests/vsp-unit-test-0026.sh
new file mode 100755 (executable)
index 0000000..0e013ce
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+#
+# Test unbinding and binding all VSP1 devices, performing a simple
+# copy test to validate the hardware afterwards.
+#
+
+. ./vsp-lib.sh
+
+features="rpf.0 wpf.0"
+
+vsp1_driver=/sys/bus/platform/drivers/vsp1
+vsps=$(cd /sys/bus/platform/devices/; ls | grep vsp)
+
+unbind_vsp() {
+       echo $1 > $vsp1_driver/unbind
+}
+
+bind_vsp() {
+       echo $1 > $vsp1_driver/bind
+}
+
+# Input is directly copied to the output. No change in format or size.
+test_copy() {
+       local format=$1
+       local insize=$2
+
+       test_start "simple hardware validation after unbind/bind cycles"
+
+       pipe_configure rpf-wpf 0 0
+       format_configure rpf-wpf 0 0 $format $insize $format
+
+       vsp_runner rpf.0 &
+       vsp_runner wpf.0
+
+       local result=$(compare_frames)
+
+       test_complete $result
+}
+
+test_main() {
+       local format
+
+       # Unbind and rebind VSPs individually
+       for v in $vsps; do
+               unbind_vsp $v
+               bind_vsp $v
+       done
+
+       # Perform a simple copy test to validate HW is alive
+       test_copy RGB24 128x128
+}
+
+test_init $0 "$features"
+test_run