| #!/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 |