scripts/xfstests.zsh

78 lines
1.7 KiB
Bash
Executable File

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