scripts/cthon.zsh

50 lines
1.3 KiB
Bash
Executable File

#!/bin/zsh -e
CLIENT=(client)
SERVER=(server)
EXPORT=(/srv/test)
MOUNTPOINT=(/mnt/test)
zparseopts -F -K \
c:=CLIENT -client:=CLIENT \
p:=MOUNTPOINT -mountpoint:=MOUNTPOINT \
-nconnect:=NCONNECT \
-krb5=KRB5 \
r:=RDMA -rdma:=RDMA \
s:=SERVER -server:=SERVER \
x:=EXPORT -export:=EXPORT
BIN=$HOME/bin
COLOR=$BIN/colors/cthon.py
RUN_CTHON="cd cthon04 && sudo ./runcthon"
USER=$(whoami)
#
# Prepare to test
#
$BIN/vm.zsh boot ${CLIENT[-1]} ${SERVER[-1]}
if [ ${#RDMA} -gt 0 ]; then
RUN_CTHON="$RUN_CTHON --rdma"
$BIN/rdma.zsh ${RDMA[-1]} ${CLIENT[-1]} ${SERVER[-1]}
fi
if [ ${#NCONNECT} -gt 0 ]; then
RUN_CTHON="$RUN_CTHON --nconnect ${NCONNECT[-1]}"
fi
if [ ${#KRB5} -gt 0 ]; then
RUN_CTHON="$RUN_CTHON --dokrb5"
fi
echo
ssh ${CLIENT[-1]} "sudo mkdir -p ${MOUNTPOINT[-1]}"
ssh ${CLIENT[-1]} "sudo mount -o sec=sys ${SERVER[-1]}:${EXPORT[-1]} ${MOUNTPOINT[-1]}"
TRAPEXIT() { ssh ${CLIENT[-1]} "sudo umount ${MOUNTPOINT[-1]}" }
ssh ${CLIENT[-1]} "$RUN_CTHON --mkdirs ${MOUNTPOINT[-1]}/$USER/ 2>&1" | python -u $COLOR
ssh ${CLIENT[-1]} "sudo chmod -R 777 ${MOUNTPOINT[-1]}/$USER/"
TRAPEXIT() { ; }
ssh ${CLIENT[-1]} "sudo umount ${MOUNTPOINT[-1]}"
echo
#
# Run tests
#
ssh client "$RUN_CTHON --server ${SERVER[-1]} --serverdir ${EXPORT[-1]}/$USER 2>&1" | python -u $COLOR