mte/unikernel/duniverse/dune_/test/blackbox-tests/test-cases/watching/helpers.sh

41 lines
880 B
Bash
Raw Normal View History

2025-11-11 02:07:51 +01:00
DUNE_RUNNING=0
start_dune () {
((dune build "$@" --passive-watch-mode > .#dune-output 2>&1) || (echo exit $? >> .#dune-output)) &
DUNE_PID=$!;
DUNE_RUNNING=1;
}
timeout="$(command -v timeout || echo gtimeout)"
with_timeout () {
$timeout 2 "$@"
exit_code=$?
if [ "$exit_code" = 124 ]
then
echo Timed out
cat .#dune-output
else
return "$exit_code"
fi
}
stop_dune () {
with_timeout dune shutdown;
# On Linux, we may run into a bash pid aliasing bug that causes wait to
# reject the pid. Therefore we use tail to wait instead.
if [ "$(uname -s)" = "Linux" ]
then
# wait for all child processes
tail --pid=$DUNE_PID -f /dev/null;
else
# wait for dune to exit
wait $DUNE_PID;
fi
cat .#dune-output;
}
build () {
with_timeout dune rpc build --wait "$@"
}