tests: Add SPDX headers to vsp-unit-test-0026.sh
[renesas/vsp-tests.git] / tests / vsp-unit-test-0022.sh
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0-or-later
3 # SPDX-FileCopyrightText: 2017 Renesas Electronics Corporation
4
5 #
6 # Test active pipeline, with high load on CPU/Memory/IO using 'stress'
7 #
8 # Utilise the same test as for suspend resume testing, to verify a longer
9 # duration pipeline lifetime while we stress the system.
10 #
11
12 . ./vsp-lib.sh
13
14 features="rpf.0 wpf.0"
15
16 # This extended function performs the same
17 # as it's non-extended name-sake - but runs the pipeline
18 # for 300 frames.
19
20 test_extended_wpf_packing() {
21         pipe_configure rpf-wpf 0 0
22         format_configure rpf-wpf 0 0 ARGB32 1024x768 RGB24
23
24         vsp_runner rpf.0 --count=300 &
25         vsp_runner wpf.0 --count=300 --skip=297
26
27         local result=$(compare_frames)
28
29         if [ x$result == x"pass" ] ; then
30                 return 0;
31         else
32                 return 1;
33         fi
34 }
35
36 exists() {
37         type -t "$1" > /dev/null 2>&1;
38 }
39
40 test_main() {
41         test_start "long duration pipelines under stress"
42
43         exists stress || {
44                 echo "$0: Stress test requires utility 'stress'"
45                 test_complete skip
46                 return
47         }
48
49         # Start stressing the system, as a background task
50         stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M &
51
52         if test_extended_wpf_packing ; then
53                 test_complete pass
54         else
55                 test_complete fail
56         fi
57
58         # Recover the system. Stress launches multiple PIDs, so it's best to:
59         killall -9 stress
60 }
61
62 test_init $0 "$features"
63 test_run