diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2017-02-11 14:43:06 +0000 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2017-02-13 20:43:48 +0200 |
commit | e35dcc094fd67cdbe27bc66a76cce66958770ea6 (patch) | |
tree | 8ad053513df95a438f27589e1745adcccfd24e1e | |
parent | a6b14873f9d09474305bfe16027fcc8b66966541 (diff) |
tests: Add extended stress testing
Duplicate the functionality of vsp-unit-test-0020, to provide a longer
duration task for the hardware to run, whilst we load the system using the
'stress' utility.
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rwxr-xr-x | tests/vsp-unit-test-0022.sh | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/vsp-unit-test-0022.sh b/tests/vsp-unit-test-0022.sh new file mode 100755 index 0000000..d161c13 --- /dev/null +++ b/tests/vsp-unit-test-0022.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +# +# Test active pipeline, with high load on CPU/Memory/IO using 'stress' +# +# Utilise the same test as for suspend resume testing, to verify a longer +# duration pipeline lifetime while we stress the system. +# + +source vsp-lib.sh + +features="rpf.0 wpf.0" + +# This extended function performs the same +# as it's non-extended name-sake - but runs the pipeline +# for 300 frames. + +test_extended_wpf_packing() { + pipe_configure rpf-wpf 0 0 + format_configure rpf-wpf 0 0 ARGB32 1024x768 RGB24 + + vsp_runner rpf.0 --count=300 & + vsp_runner wpf.0 --count=300 --skip=297 + + local result=$(compare_frames) + + if [ x$result == x"pass" ] ; then + return 0; + else + return 1; + fi +} + +exists() { + type -t "$1" > /dev/null 2>&1; +} + +test_main() { + test_start "long duration pipelines under stress" + + exists stress || { + echo "$0: Stress test requires utility 'stress'" + test_complete skip + return + } + + # Start stressing the system, as a background task + stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M & + + if test_extended_wpf_packing ; then + test_complete pass + else + test_complete fail + fi + + # Recover the system. Stress launches multiple PIDs, so it's best to: + killall -9 stress +} + +test_init $0 "$features" +test_run |