diff --git a/common.zsh b/common.zsh index 85d2cac..2f1be36 100644 --- a/common.zsh +++ b/common.zsh @@ -25,6 +25,50 @@ SCRATCH=(/srv/xfs/scratch) # # ########################### BIN=$HOME/bin +DMESG=() +PROTO=(tcp) +SRVDMESG=() USER=$(whoami) VERSION=(3 4.0 4.1 4.2) -PROTO=(tcp) + + +###################### +# # +# Shared functions # +# # +###################### +function setup_client_func() +{ + ssh ${CLIENT[-1]} "sudo setup-testdirs.zsh ${SERVER[-1]} \ + ${EXPORT[-1]} \ + ${MOUNTPOINT[-1]} \ + $USER" +} + +function prepare_to_test() +{ + $BIN/vm.zsh boot ${CLIENT[-1]} ${SERVER[-1]} + $BIN/install-scripts.zsh ${CLIENT[-1]} + if [ ${#DMESG} -gt 0 ]; then + ssh ${CLIENT[-1]} "sudo dmesg --clear" + fi + if [ ${#SRVDMESG} -gt 0 ]; then + ssh ${SERVER[-1]} "sudo dmesg --clear" + fi + if [ ${#RDMA} -gt 0 ]; then + PROTO+=(rdma) + $BIN/rping.zsh ${RDMA[-1]} ${CLIENT[-1]} ${SERVER[-1]} + fi + setup_client_func + echo +} + +TRAPEXIT() +{ + if [ ${#DMESG} -gt 0 ]; then + ssh ${CLIENT[-1]} "sudo dmesg --color=always" + fi + if [ ${#SRVDMESG} -gt 0 ]; then + ssh ${SERVER[-1]} "sudo dmesg --color=always" + fi +} diff --git a/cthon.zsh b/cthon.zsh index fbb5bc4..ac3b0b2 100755 --- a/cthon.zsh +++ b/cthon.zsh @@ -14,14 +14,9 @@ zparseopts -F -K \ COLOR=$BIN/colors/cthon.py RUN_CTHON="cd cthon04 && sudo ./runcthon" -# -# Prepare to test -# -$BIN/vm.zsh boot ${CLIENT[-1]} ${SERVER[-1]} -$BIN/install-scripts.zsh ${CLIENT[-1]} +prepare_to_test if [ ${#RDMA} -gt 0 ]; then RUN_CTHON="$RUN_CTHON --rdma" - $BIN/rping.zsh ${RDMA[-1]} ${CLIENT[-1]} ${SERVER[-1]} fi if [ ${#NCONNECT} -gt 0 ]; then RUN_CTHON="$RUN_CTHON --nconnect ${NCONNECT[-1]}" @@ -29,28 +24,6 @@ fi if [ ${#KRB5} -gt 0 ]; then RUN_CTHON="$RUN_CTHON --dokrb5" fi -if [ ${#DMESG} -gt 0 ]; then - ssh ${CLIENT[-1]} "sudo dmesg --clear" -fi -if [ ${#SRVDMESG} -gt 0 ]; then - ssh ${SERVER[-1]} "sudo dmesg --clear" -fi -ssh ${CLIENT[-1]} "sudo setup-testdirs.zsh ${SERVER[-1]} ${EXPORT[-1]} ${MOUNTPOINT[-1]} $USER" | python $COLOR -echo -# -# Run tests -# -set +e ssh ${CLIENT[-1]} "$RUN_CTHON --server ${SERVER[-1]} --serverdir ${EXPORT[-1]}/$USER 2>&1" | python -u $COLOR -ret=$? - -if [ ${#DMESG} -gt 0 ]; then - ssh ${CLIENT[-1]} "sudo dmesg --color=always" -fi -if [ ${#SRVDMESG} -gt 0 ]; then - ssh ${SERVER[-1]} "sudo dmesg --color=always" -fi - -exit $ret diff --git a/nfstest_rplus.zsh b/nfstest_rplus.zsh index 1dd797b..5ef0941 100755 --- a/nfstest_rplus.zsh +++ b/nfstest_rplus.zsh @@ -10,37 +10,8 @@ zparseopts -F -K \ RUN_NFSTEST="run-nfstest-rplus.zsh" -if [ ${#DMESG} -gt 0 ]; then - ssh ${CLIENT[-1]} "sudo dmesg --clear" -fi -if [ ${#SRVDMESG} -gt 0 ]; then - ssh ${SERVER[-1]} "sudo dmesg --clear" -fi - -# -# Prepare to test -# -$BIN/vm.zsh boot ${CLIENT[-1]} ${SERVER[-1]} -$BIN/install-scripts.zsh ${CLIENT[-1]} - -ssh ${CLIENT[-1]} "sudo setup-testdirs.zsh ${SERVER[-1]} ${EXPORT[-1]} ${MOUNTPOINT[-1]} $USER" -echo - -# -# Run tests -# -set +e +prepare_to_test ssh -t ${CLIENT[-1]} "$RUN_NFSTEST --server ${SERVER[-1]} \ - --export ${EXPORT[-1]} \ - --mountpoint ${MOUNTPOINT[-1]} \ - --user $USER" -ret=$? - -if [ ${#DMESG} -gt 0 ]; then - ssh ${CLIENT[-1]} "sudo dmesg --color=always" -fi -if [ ${#SRVDMESG} -gt 0 ]; then - ssh ${SERVER[-1]} "sudo dmesg --color=always" -fi - -exit $ret + --export ${EXPORT[-1]} \ + --mountpoint ${MOUNTPOINT[-1]} \ + --user $USER" diff --git a/read_plus.zsh b/read_plus.zsh index 4ffd7aa..f43c2e9 100755 --- a/read_plus.zsh +++ b/read_plus.zsh @@ -25,8 +25,13 @@ TIME_CMD="sudo /usr/bin/time -f \"%Ss kern, %P cpu\"" # # Prepare to test # -$BIN/vm.zsh boot ${CLIENT[-1]} ${SERVER[-1]} -$BIN/install-scripts.zsh ${CLIENT[-1]} +function setup_client_func() +{ + ssh ${CLIENT[-1]} "sudo setup-read_plus.zsh ${SERVER[-1]} ${EXPORT[-1]} \ + ${MOUNTPOINT[-1]} $USER ${SIZE[-1]} 1,2,4,8,16" | eval ${COLOR} +} + +prepare_to_test if [ ${#FILE} -gt 1 ]; then mkdir -p $(dirname ${FILE[-1]}) [[ -f ${FILE[-1]} ]] && rm -fv ${FILE[-1]} @@ -36,8 +41,6 @@ if [ ${#DIRECT} -gt 0 ]; then IFLAG="iflag=direct" fi -ssh ${CLIENT[-1]} "sudo setup-read_plus.zsh ${SERVER[-1]} ${EXPORT[-1]} \ - ${MOUNTPOINT[-1]} $USER ${SIZE[-1]} 1,2,4,8,16" | eval ${COLOR} function dd_file() { echo "Reading: $1 ($2 on ${SERVER[-1]})" diff --git a/xfstests.zsh b/xfstests.zsh index 93067f0..418764d 100755 --- a/xfstests.zsh +++ b/xfstests.zsh @@ -32,20 +32,17 @@ fi # # Prepare to test # -$BIN/vm.zsh boot ${CLIENT[-1]} ${SERVER[-1]} -$BIN/install-scripts.zsh ${CLIENT[-1]} -if [ ${#RDMA} -gt 0 ]; then - PROTO+=(rdma) - $BIN/rping.zsh ${RDMA[-1]} ${CLIENT[-1]} ${SERVER[-1]} -fi +function setup_client_func() +{ + ssh ${CLIENT[-1]} "sudo setup-xfstests.zsh ${SERVER[-1]} \ + ${EXPORT[-1]} ${MOUNTPOINT[-1]} \ + ${SCRATCH[-1]} ${SCRATCHMNT[-1]} $USER" +} +prepare_to_test if [ ${#NCONNECT} -gt 0 ]; then OPTIONS="$OPTIONS,nconnect=${NCONNECT[-1]}" fi -ssh ${CLIENT[-1]} "sudo setup-xfstests.zsh ${SERVER[-1]} ${EXPORT[-1]} ${MOUNTPOINT[-1]} \ - ${SCRATCH[-1]} ${SCRATCHMNT[-1]} $USER" -echo - testargs=() for arg in $*; do testargs+=($(printf '%q' "$arg"))