Util-Linux package development
 help / color / mirror / Atom feed
* [PATCH] tests: wait for flock background process
@ 2016-11-02 14:31 Ruediger Meier
  2016-11-02 15:51 ` Karel Zak
  0 siblings, 1 reply; 6+ messages in thread
From: Ruediger Meier @ 2016-11-02 14:31 UTC (permalink / raw)
  To: util-linux

From: Ruediger Meier <ruediger.meier@ga-group.nl>

Maybe we should add a --daemonize option to flock to cover
this use case.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
---
 tests/ts/misc/flock | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tests/ts/misc/flock b/tests/ts/misc/flock
index b2fc772..39e88de 100755
--- a/tests/ts/misc/flock
+++ b/tests/ts/misc/flock
@@ -19,6 +19,7 @@ TS_DESC="flock"
 ts_init "$*"
 
 ts_check_test_command "$TS_CMD_FLOCK"
+ts_check_prog "ps"
 
 
 function do_lock {
@@ -42,10 +43,19 @@ function do_lock {
 # general lock
 GEN_OUTPUT="$TS_OUTPUT"
 START=$(date '+%s')
+# running flock in background is not the best usage example
 $TS_CMD_FLOCK --shared $TS_OUTDIR/lockfile \
 	bash -c 'echo "Locking"; sleep 3; echo "Unlocking"' \
 	> $GEN_OUTPUT 2>&1 &
+pid=$!
 
+# check for running background process
+if [ "$pid" -le "0" ] || ! kill -s 0 "$pid" &>/dev/null; then
+	ts_die "unable to run flock"
+fi
+# the lock should be established when flock has a child
+timeout 1s bash -c "while [ \$(ps --ppid $pid |wc -l) -lt 2 ]; do sleep 0.1 ;done" \
+	|| ts_die "timeout waiting for flock child"
 
 ts_init_subtest "non-block"
 do_lock "--nonblock --conflict-exit-code 123" 123 "You will never see this!"
-- 
1.8.5.6


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-11-03 12:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-02 14:31 [PATCH] tests: wait for flock background process Ruediger Meier
2016-11-02 15:51 ` Karel Zak
2016-11-02 22:11   ` Bernhard Voelker
2016-11-02 23:08     ` Karel Zak
2016-11-03  6:57       ` Ruediger Meier
2016-11-03 12:09         ` Pádraig Brady

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox