diff options
Diffstat (limited to 'tests/include.rc')
| -rw-r--r-- | tests/include.rc | 89 |
1 files changed, 58 insertions, 31 deletions
diff --git a/tests/include.rc b/tests/include.rc index 5692754563a..0dc7d830449 100644 --- a/tests/include.rc +++ b/tests/include.rc @@ -1,3 +1,6 @@ + +checkpoint_time="$(date +%s%N)" + M0=${M0:=/mnt/glusterfs/0}; # 0th mount point for FUSE M1=${M1:=/mnt/glusterfs/1}; # 1st mount point for FUSE M2=${M2:=/mnt/glusterfs/2}; # 2nd mount point for FUSE @@ -8,6 +11,7 @@ V0=${V0:=patchy}; # volume name to use in tests V1=${V1:=patchy1}; # volume name to use in tests GMV0=${GMV0:=master}; # master volume name to use in geo-rep tests GSV0=${GSV0:=slave}; # slave volume name to use in geo-rep tests +GSV1=${GSV1:=slave1}; # slave volume name to use in geo-rep tests B0=${B0:=/d/backends}; # top level of brick directories WORKDIRS="$B0 $M0 $M1 $M2 $M3 $N0 $N1" @@ -76,7 +80,7 @@ NFS_EXPORT_TIMEOUT=20 CHILD_UP_TIMEOUT=20 PROBE_TIMEOUT=60 PEER_SYNC_TIMEOUT=20 -REBALANCE_TIMEOUT=360 +REBALANCE_TIMEOUT=600 REOPEN_TIMEOUT=20 HEAL_TIMEOUT=80 IO_HEAL_TIMEOUT=120 @@ -89,6 +93,7 @@ GRAPH_SWITCH_TIMEOUT=10 UNLINK_TIMEOUT=5 MDC_TIMEOUT=5 IO_WAIT_TIMEOUT=5 +DISK_FAIL_TIMEOUT=80 LOGDIR=$(gluster --print-logdir) @@ -130,8 +135,8 @@ _GFS () { while true; do touch $mount_point/xy_zzy 2> /dev/null && break i=$((i+1)) - [ $i -lt 10 ] || break - sleep 1 + [ $i -lt 100 ] || break + sleep 0.1 done rm -f $mount_point/xy_zzy return $mount_ret @@ -207,6 +212,7 @@ function test_header() dbg "========================="; dbg "TEST $t (line $TESTLINE): $*"; saved_cmd="$*" + start_time="$(date +%s%N)" } @@ -215,15 +221,18 @@ function test_footer() RET=$? local lineno=$1 local err=$2 - + local end_time + local elapsed1 + local elapsed2 + + end_time="$(date +%s%N)" + elapsed1="$(((start_time - checkpoint_time) / 1000000))" + elapsed2="$(((end_time - start_time) / 1000000))" + checkpoint_time="$end_time" if [ $RET -eq 0 ]; then - echo "ok $t, LINENUM:$lineno"; + printf "ok %3d [%7d/%7d] <%4d> '%s'\n" "$t" "$elapsed1" "$elapsed2" "$lineno" "$saved_cmd"; else - echo "not ok $t $err, LINENUM:$lineno"; - # With DEBUG, this was already printed out, so skip it. - if [ x"$DEBUG" = x"0" ]; then - echo "FAILED COMMAND: $saved_cmd" - fi + printf "not ok %3d [%7d/%7d] <%4d> '%s' -> '%s'\n" "$t" "$elapsed1" "$elapsed2" "$lineno" "$saved_cmd" "$err" if [ "$EXIT_EARLY" = "1" ]; then cleanup exit $RET @@ -356,12 +365,12 @@ function _EXPECT_WITHIN() a=""; shift; - local endtime=$(( ${timeout}+`date +%s` )) + local endtime="$(( ${timeout}000000000 + $(date +%s%N) ))" # We *want* this to be globally visible. EW_RETRIES=0 - while [ `date +%s` -lt $endtime ]; do + while [[ "$(date +%s%N)" < "$endtime" ]]; do a=$("$@" | tail -1 ; exit ${PIPESTATUS[0]}) ## Check command success if [ $? -ne 0 ]; then @@ -371,7 +380,7 @@ function _EXPECT_WITHIN() if [[ "$a" =~ $e ]]; then break; fi - sleep 1; + sleep 0.25; EW_RETRIES=$((EW_RETRIES+1)) done @@ -544,8 +553,41 @@ function process_pids() { echo "${pids[@]}" } +## Lock files should get automatically removed once "usradd" or "groupadd" +## command finishes. But sometimes we encounter situations (bugs) where +## some of these files may not get properly unlocked after the execution of +## the command. In that case, when we execute useradd next time, it may show +## the error “cannot lock /etc/password” or “unable to lock group file”. +## So, to avoid any such errors, check for any lock files under /etc. +## and remove those. + +function remove_lock_files() +{ + if [ ! -f /etc/passwd.lock ]; + then + rm -rf /etc/passwd.lock; + fi + + if [ ! -f /etc/group.lock ]; + then + rm -rf /etc/group.lock; + fi + + if [ ! -f /etc/shadow.lock ]; + then + rm -rf /etc/shadow.lock; + fi + + if [ ! -f /etc/gshadow.lock ]; + then + rm -rf /etc/gshadow.lock; + fi +} + + function cleanup() { + local end_time # Prepare flags for umount case `uname -s` in @@ -563,6 +605,9 @@ function cleanup() ;; esac + # Clean up lock files. + remove_lock_files + # Clean up all client mounts for m in `mount | grep fuse.glusterfs | awk '{print $3}'`; do umount $flag $m @@ -680,24 +725,6 @@ function cleanup() return 1; fi >&2 - # tar logs at the start and end of every test - if [ -n "$LOGDIR" -a -z "$STOP_WASTING_SPACE" ] - then - tarname=$(basename $0 .t) - # Can't use --exclude here because NetBSD doesn't have it. - # However, both it and Linux have -X to take patterns from - # a file, so use that. - (echo '*.tar'; echo .notar) > ${LOGDIR}/.notar \ - && \ - tar -cf ${LOGDIR}/${tarname}.tar -X ${LOGDIR}/.notar \ - ${LOGDIR}/* 2> /dev/null \ - && \ - find $LOGDIR/* -maxdepth 0 -name '*.tar' -prune \ - -o -exec rm -rf '{}' ';' - else - echo "LOGDIR is not set" - fi - mkdir -p $WORKDIRS # This is usually the last thing a test script calls, so our return # value becomes their exit value. While it's not great for the mkdir |
