1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/tools/perf/tests/shell/lib/waiting.sh
Athira Rajeev 1e094f925e perf tests lib waiting: Fix the shellcheck warnings about missing shebang
Running shellcheck in "lib/waiting.sh" generates below
warning:

   In ./tools/perf/tests/shell/lib/waiting.sh line 1:
   # SPDX-License-Identifier: GPL-2.0
   ^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.

Fix this by adding shebang in the beginning of the script.

Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lore.kernel.org/r/20230709182800.53002-20-atrajeev@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2023-08-03 17:01:26 -03:00

78 lines
2 KiB
Bash

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
tenths=date\ +%s%1N
# Wait for PID $1 to have $2 number of threads started
# Time out after $3 tenths of a second or 5 seconds if $3 is ""
wait_for_threads()
{
tm_out=$3 ; [ -n "${tm_out}" ] || tm_out=50
start_time=$($tenths)
while [ -e "/proc/$1/task" ] ; do
th_cnt=$(find "/proc/$1/task" -mindepth 1 -maxdepth 1 -printf x | wc -c)
if [ "${th_cnt}" -ge "$2" ] ; then
return 0
fi
# Wait at most tm_out tenths of a second
if [ $(($($tenths) - start_time)) -ge $tm_out ] ; then
echo "PID $1 does not have $2 threads"
return 1
fi
done
return 1
}
# Wait for perf record -vvv 2>$2 with PID $1 to start by looking at file $2
# It depends on capturing perf record debug message "perf record has started"
# Time out after $3 tenths of a second or 5 seconds if $3 is ""
wait_for_perf_to_start()
{
tm_out=$3 ; [ -n "${tm_out}" ] || tm_out=50
echo "Waiting for \"perf record has started\" message"
start_time=$($tenths)
while [ -e "/proc/$1" ] ; do
if grep -q "perf record has started" "$2" ; then
echo OK
break
fi
# Wait at most tm_out tenths of a second
if [ $(($($tenths) - start_time)) -ge $tm_out ] ; then
echo "perf recording did not start"
return 1
fi
done
return 0
}
# Wait for process PID %1 to exit
# Time out after $2 tenths of a second or 5 seconds if $2 is ""
wait_for_process_to_exit()
{
tm_out=$2 ; [ -n "${tm_out}" ] || tm_out=50
start_time=$($tenths)
while [ -e "/proc/$1" ] ; do
# Wait at most tm_out tenths of a second
if [ $(($($tenths) - start_time)) -ge $tm_out ] ; then
echo "PID $1 did not exit as expected"
return 1
fi
done
return 0
}
# Check if PID $1 is still running after $2 tenths of a second
# or 0.3 seconds if $2 is ""
is_running()
{
tm_out=$2 ; [ -n "${tm_out}" ] || tm_out=3
start_time=$($tenths)
while [ -e "/proc/$1" ] ; do
# Check for at least tm_out tenths of a second
if [ $(($($tenths) - start_time)) -gt $tm_out ] ; then
return 0
fi
done
echo "PID $1 exited prematurely"
return 1
}