18c2ecf20Sopenharmony_ci#!/bin/bash 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 38c2ecf20Sopenharmony_ci# Copyright (C) 2015-2019 ARM Limited. 48c2ecf20Sopenharmony_ci# Original author: Dave Martin <Dave.Martin@arm.com> 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciset -ue 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciNR_CPUS=`nproc` 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cipids= 118c2ecf20Sopenharmony_cilogs= 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cicleanup () { 148c2ecf20Sopenharmony_ci trap - INT TERM CHLD 158c2ecf20Sopenharmony_ci set +e 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci if [ -n "$pids" ]; then 188c2ecf20Sopenharmony_ci kill $pids 198c2ecf20Sopenharmony_ci wait $pids 208c2ecf20Sopenharmony_ci pids= 218c2ecf20Sopenharmony_ci fi 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci if [ -n "$logs" ]; then 248c2ecf20Sopenharmony_ci cat $logs 258c2ecf20Sopenharmony_ci rm $logs 268c2ecf20Sopenharmony_ci logs= 278c2ecf20Sopenharmony_ci fi 288c2ecf20Sopenharmony_ci} 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciinterrupt () { 318c2ecf20Sopenharmony_ci cleanup 328c2ecf20Sopenharmony_ci exit 0 338c2ecf20Sopenharmony_ci} 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cichild_died () { 368c2ecf20Sopenharmony_ci cleanup 378c2ecf20Sopenharmony_ci exit 1 388c2ecf20Sopenharmony_ci} 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_citrap interrupt INT TERM EXIT 418c2ecf20Sopenharmony_citrap child_died CHLD 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_cifor x in `seq 0 $((NR_CPUS * 4))`; do 448c2ecf20Sopenharmony_ci log=`mktemp` 458c2ecf20Sopenharmony_ci logs=$logs\ $log 468c2ecf20Sopenharmony_ci ./fpsimd-test >$log & 478c2ecf20Sopenharmony_ci pids=$pids\ $! 488c2ecf20Sopenharmony_cidone 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci# Wait for all child processes to be created: 518c2ecf20Sopenharmony_cisleep 10 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciwhile :; do 548c2ecf20Sopenharmony_ci kill -USR1 $pids 558c2ecf20Sopenharmony_cidone & 568c2ecf20Sopenharmony_cipids=$pids\ $! 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciwait 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ciexit 1 61