#!/bin/zsh -e CLIENT=(client) SERVER=(server) EXPORT=(/srv/test) SCRATCH=(/srv/scratch) MOUNTPOINT=(/mnt/test) SCRATCHMNT=(/mnt/scratch) VERSION=(3 4.0 4.1 4.2) PROTO=(tcp) zparseopts -D -K \ c:=CLIENT -client:=CLIENT \ k:=SCRATCH -scratch:=SCRATCH \ p:=MOUNTPOINT -mountpoint:=MOUNTPOINT \ q:=SCRATCHMNT -scratchmnt:=SCRATCHMNT \ r:=RDMA -rdma:=RDMA \ s:=SERVER -server:=SERVER \ x:=EXPORT -export:=EXPORT \ v+:=VERSION -version+:=VERSION BIN=$HOME/bin COLOR=$BIN/colors/xfstests.py RUN_XFSTESTS="sudo run-xfstests.zsh" OPTIONS="sec=sys" USER=$(whoami) TODAY=$(date +%Y/%m/%d) NOW=$(date +%H:%M:%S) REMOTE_RESULTS=xfstests-dev/results/ RESULTS=$HOME/.local/share/xfstests/${SERVER[-1]}/$TODAY # # 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 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")) done run_xfs_tests() { ssh ${CLIENT[-1]} "$RUN_XFSTESTS --server ${SERVER[-1]} \ --export ${EXPORT[-1]} \ --mountpoint ${MOUNTPOINT[-1]} \ --scratch ${SCRATCH[-1]} \ --scratchmnt ${SCRATCHMNT[-1]} \ --proto $1 \ --version $2 \ --opts $OPTIONS \ --user $USER $testargs" | python $COLOR $1 $2 scp -q ${CLIENT[-1]}:$REMOTE_RESULTS/$1/$2/result.xml $RESULTS/$NOW-$1-$2.xml } # # Run tests # mkdir -p $RESULTS for proto in $PROTO; do for vers in $VERSION; do case $vers in "-v" | "--version") continue ;; esac run_xfs_tests $proto $vers & done done wait