#!/bin/sh # # Blackbox test for net conf/registry roundtrips. # # Copyright (C) 2010 Gregor Beck # Copyright (C) 2011 Michael Adam if [ $# -lt 3 ]; then cat <>$LOG "$@" 2>>$LOG RC=$? echo "RC: $RC" >>$LOG test "x$RC" = "x0" || { echo "ERROR: $* failed (RC=$RC)" | tee -a $LOG } return $RC # echo -n . } LOGDIR_PREFIX="conf_roundtrip" conf_roundtrip() ( DIR=$(mktemp -d ${PREFIX}/${LOGDIR_PREFIX}_XXXXXX) LOG=$DIR/log echo conf_roundtrip $1 >$LOG sed -e "$SED_INVALID_PARAMS" $1 >$DIR/conf_in conf_roundtrip_step $NETCMD conf drop test "x$?" = "x0" || { return 1 } test -z "$($NETCMD conf list)" 2>>$LOG if [ "$?" = "1" ]; then echo "ERROR: conf drop failed" | tee -a $LOG return 1 fi conf_roundtrip_step $NETCMD conf import $DIR/conf_in test "x$?" = "x0" || { return 1 } conf_roundtrip_step $NETCMD conf list >$DIR/conf_exp test "x$?" = "x0" || { return 1 } grep "\[global\]" $DIR/conf_exp >/dev/null 2>>$LOG if [ "$?" = "1" ]; then echo "ERROR: conf import => conf export failed" | tee -a $LOG return 1 fi conf_roundtrip_step $NETCMD -d10 registry export $REGPATH $DIR/conf_exp.reg test "x$?" = "x0" || { return 1 } conf_roundtrip_step $NETCMD conf drop test "x$?" = "x0" || { return 1 } test -z "$($NETCMD conf list)" 2>>$LOG if [ "$?" = "1" ]; then echo "ERROR: conf drop failed" | tee -a $LOG return 1 fi conf_roundtrip_step $NETCMD registry import $DIR/conf_exp.reg test "x$?" = "x0" || { return 1 } conf_roundtrip_step $NETCMD conf list >$DIR/conf_out test "x$?" = "x0" || { return 1 } diff -q $DIR/conf_out $DIR/conf_exp >>$LOG if [ "$?" = "1" ]; then echo "ERROR: registry import => conf export failed" | tee -a $LOG return 1 fi conf_roundtrip_step $NETCMD registry export $REGPATH $DIR/conf_out.reg test "x$?" = "x0" || { return 1 } diff -q $DIR/conf_out.reg $DIR/conf_exp.reg >>$LOG if [ "$?" = "1" ]; then echo "Error: registry import => registry export failed" | tee -a $LOG return 1 fi rm -r $DIR ) CONF_FILES=$SERVERCONFFILE # remove old logs: for OLDDIR in $(find ${PREFIX} -type d -name "${LOGDIR_PREFIX}_*"); do echo "removing old directory ${OLDDIR}" rm -rf ${OLDDIR} done for conf_file in $CONF_FILES; do testit "conf_roundtrip $conf_file" \ conf_roundtrip $conf_file || failed=$(expr $failed + 1) done testok $0 $failed