WIP FPC-III support
[linux/fpc-iii.git] / tools / testing / selftests / arm64 / fp / fpsimd-stress
blob781b5b022eafa3f7ae89489eac2c74956aadd282
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2015-2019 ARM Limited.
4 # Original author: Dave Martin <Dave.Martin@arm.com>
6 set -ue
8 NR_CPUS=`nproc`
10 pids=
11 logs=
13 cleanup () {
14 trap - INT TERM CHLD
15 set +e
17 if [ -n "$pids" ]; then
18 kill $pids
19 wait $pids
20 pids=
23 if [ -n "$logs" ]; then
24 cat $logs
25 rm $logs
26 logs=
30 interrupt () {
31 cleanup
32 exit 0
35 child_died () {
36 cleanup
37 exit 1
40 trap interrupt INT TERM EXIT
41 trap child_died CHLD
43 for x in `seq 0 $((NR_CPUS * 4))`; do
44 log=`mktemp`
45 logs=$logs\ $log
46 ./fpsimd-test >$log &
47 pids=$pids\ $!
48 done
50 # Wait for all child processes to be created:
51 sleep 10
53 while :; do
54 kill -USR1 $pids
55 done &
56 pids=$pids\ $!
58 wait
60 exit 1