41 lines
965 B
Bash
Executable file
41 lines
965 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# Copyright (C) 2010 Karel Zak <kzak@redhat.com>
|
|
|
|
TS_TOPDIR="${0%/*}/../.."
|
|
TS_DESC="lock"
|
|
|
|
TS_OPTIONAL="yes"
|
|
|
|
. "$TS_TOPDIR"/functions.sh
|
|
ts_init "$*"
|
|
|
|
TESTPROG="$TS_HELPER_LIBMOUNT_LOCK"
|
|
|
|
[ -x $TESTPROG ] || ts_skip "test not compiled"
|
|
|
|
#
|
|
# Be careful with number of processes. Don't forget that there is time limit
|
|
# when the mount waits on the mtab lock. If you define too much processes some
|
|
# of them will fail with timeout.
|
|
#
|
|
# Note: the original version (< 2.13) of util-linux is completely useless for
|
|
# this test (maximum for this old version is NLOOPS=10 and NPROCESSES=5 (2-way
|
|
# 2GHz machine)). It has terrible performance due a bad timeouts implementation
|
|
# in lock_mtab().
|
|
#
|
|
NLOOPS=1000
|
|
NPROCESSES=50
|
|
|
|
|
|
> $TS_OUTPUT.debug
|
|
echo 0 > $TS_OUTPUT
|
|
SYNCTIME=$(( $(date +%s) + 5 ))
|
|
|
|
for id in $(seq 0 $(( $NPROCESSES - 1 ))); do
|
|
ts_run $TESTPROG --lock --synctime $SYNCTIME $TS_OUTPUT $NLOOPS >> $TS_OUTPUT.debug 2>&1 &
|
|
done
|
|
|
|
wait
|
|
|
|
ts_finalize
|