Message ID | ff71285715d47b8c9b6bedb3b50700a26bc81f41.1633520807.git.cdleonard@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | selftests: Improve nettest and net/fcnal-test.sh | expand |
On 10/6/21 5:47 AM, Leonard Crestez wrote: > Sleeping for one second after a kill is not necessary and adds up quite > quickly. Replace with a fast loop spinning until pidof returns nothing. > > Signed-off-by: Leonard Crestez <cdleonard@gmail.com> > --- > tools/testing/selftests/net/fcnal-test.sh | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/net/fcnal-test.sh b/tools/testing/selftests/net/fcnal-test.sh > index 0bd60cd3bc06..b7fda51deb3f 100755 > --- a/tools/testing/selftests/net/fcnal-test.sh > +++ b/tools/testing/selftests/net/fcnal-test.sh > @@ -176,12 +176,19 @@ show_hint() > fi > } > > kill_procs() > { > - killall nettest ping ping6 >/dev/null 2>&1 > - sleep 1 > + local pids > + while true; do > + pids=$(pidof nettest ping ping6) > + if [[ -z $pids ]]; then > + break > + fi > + kill $pids > + sleep 0.01 > + done > } > > do_run_cmd() > { > local cmd="$*" > ideally the script keeps track of processes it launches and only kills those. The original killall was just a stop gap until the process tracking was added.
On 06.10.2021 17:45, David Ahern wrote: > On 10/6/21 5:47 AM, Leonard Crestez wrote: >> Sleeping for one second after a kill is not necessary and adds up quite >> quickly. Replace with a fast loop spinning until pidof returns nothing. >> >> Signed-off-by: Leonard Crestez <cdleonard@gmail.com> >> --- >> tools/testing/selftests/net/fcnal-test.sh | 11 +++++++++-- >> 1 file changed, 9 insertions(+), 2 deletions(-) >> >> diff --git a/tools/testing/selftests/net/fcnal-test.sh b/tools/testing/selftests/net/fcnal-test.sh >> index 0bd60cd3bc06..b7fda51deb3f 100755 >> --- a/tools/testing/selftests/net/fcnal-test.sh >> +++ b/tools/testing/selftests/net/fcnal-test.sh >> @@ -176,12 +176,19 @@ show_hint() >> fi >> } >> >> kill_procs() >> { >> - killall nettest ping ping6 >/dev/null 2>&1 >> - sleep 1 >> + local pids >> + while true; do >> + pids=$(pidof nettest ping ping6) >> + if [[ -z $pids ]]; then >> + break >> + fi >> + kill $pids >> + sleep 0.01 >> + done >> } >> >> do_run_cmd() >> { >> local cmd="$*" >> > > ideally the script keeps track of processes it launches and only kills > those. The original killall was just a stop gap until the process > tracking was added. That's harder to do. This is much faster and not in any way worse than killall + sleep. Some sort of a wrapper would have to added for each process running the background, for each run_ping_bg. If nettest forks by itself then $! won't work, maybe some sort of --pid-file switch would be required? -- Regards, Leonard
diff --git a/tools/testing/selftests/net/fcnal-test.sh b/tools/testing/selftests/net/fcnal-test.sh index 0bd60cd3bc06..b7fda51deb3f 100755 --- a/tools/testing/selftests/net/fcnal-test.sh +++ b/tools/testing/selftests/net/fcnal-test.sh @@ -176,12 +176,19 @@ show_hint() fi } kill_procs() { - killall nettest ping ping6 >/dev/null 2>&1 - sleep 1 + local pids + while true; do + pids=$(pidof nettest ping ping6) + if [[ -z $pids ]]; then + break + fi + kill $pids + sleep 0.01 + done } do_run_cmd() { local cmd="$*"
Sleeping for one second after a kill is not necessary and adds up quite quickly. Replace with a fast loop spinning until pidof returns nothing. Signed-off-by: Leonard Crestez <cdleonard@gmail.com> --- tools/testing/selftests/net/fcnal-test.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)