162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 362306a36Sopenharmony_ci# Copyright (C) 2015-2019 ARM Limited. 462306a36Sopenharmony_ci# Original author: Dave Martin <Dave.Martin@arm.com> 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciset -ue 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciNR_CPUS=`nproc` 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cipids= 1162306a36Sopenharmony_cilogs= 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cicleanup () { 1462306a36Sopenharmony_ci trap - INT TERM CHLD 1562306a36Sopenharmony_ci set +e 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci if [ -n "$pids" ]; then 1862306a36Sopenharmony_ci kill $pids 1962306a36Sopenharmony_ci wait $pids 2062306a36Sopenharmony_ci pids= 2162306a36Sopenharmony_ci fi 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci if [ -n "$logs" ]; then 2462306a36Sopenharmony_ci cat $logs 2562306a36Sopenharmony_ci rm $logs 2662306a36Sopenharmony_ci logs= 2762306a36Sopenharmony_ci fi 2862306a36Sopenharmony_ci} 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciinterrupt () { 3162306a36Sopenharmony_ci cleanup 3262306a36Sopenharmony_ci exit 0 3362306a36Sopenharmony_ci} 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cichild_died () { 3662306a36Sopenharmony_ci cleanup 3762306a36Sopenharmony_ci exit 1 3862306a36Sopenharmony_ci} 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_citrap interrupt INT TERM EXIT 4162306a36Sopenharmony_citrap child_died CHLD 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cifor x in `seq 0 $((NR_CPUS * 4))`; do 4462306a36Sopenharmony_ci log=`mktemp` 4562306a36Sopenharmony_ci logs=$logs\ $log 4662306a36Sopenharmony_ci ./fpsimd-test >$log & 4762306a36Sopenharmony_ci pids=$pids\ $! 4862306a36Sopenharmony_cidone 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci# Wait for all child processes to be created: 5162306a36Sopenharmony_cisleep 10 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciwhile :; do 5462306a36Sopenharmony_ci kill -USR1 $pids 5562306a36Sopenharmony_cidone & 5662306a36Sopenharmony_cipids=$pids\ $! 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciwait 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciexit 1 61