# This file is part of GNU pies testsuite. -*- Autotest -*- # Copyright (C) 2019 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU pies is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU pies. If not, see . AT_SETUP([Startup components]) AT_CHECK([ PIES_XFAIL_CHECK PIES_CONTROL_INIT comp_pid_file=$PWD/comp.pid cat > pies.conf <<_EOT component b1 { mode startup; command "$auxdir/touchfile $PWD 1 b1"; } component b2 { mode startup; command "$auxdir/touchfile $PWD 2 b2"; } component test { mode respawn; command "$auxdir/respawn -append -pid $comp_pid_file"; } _EOT pies --config-file control.conf --config-file pies.conf n=0 res= b1= b2= while : do echo "n=$n" >> tracefile if test -z "$b1" && test -f b1; then res="${res}b1" b1=1 echo "got b1" >> tracefile fi if test -z "$b2" && test -f b2; then res="${res}b2" b2=1 echo "got b2" >> tracefile fi if test -f $comp_pid_file; then echo "got pidfile" >> tracefile res="${res}pid" break fi sleep 1 n=$(($n + 1)) if test $n -gt 10; then echo >&2 "timed out" break fi done PIES_STOP case $res in b1b2pid|b2b1pid) echo b1b2pid;; *) echo $res esac ], [0], [b1b2pid ]) AT_CLEANUP