⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functions.sh

📁 FREESWAN VPN源代码包
💻 SH
字号:
#!/bin/shconsolediff() {    cleanups="cat OUTPUT/console.txt "    for fixup in `echo $REF_CONSOLE_FIXUPS`    do	if [ -f $FIXUPDIR/$fixup ]	then	    case $fixup in		*.sed) cleanups="$cleanups | sed -f $FIXUPDIR/$fixup";;		*.pl)  cleanups="$cleanups | perl $FIXUPDIR/$fixup";;		*.awk) cleanups="$cleanups | awk -f $FIXUPDIR/$fixup";;		    *) echo Unknown fixup type: $fixup;;            esac        fi    done    rm -f OUTPUT/console-fixed.txt OUTPUT/console.diff    $CONSOLEDIFFDEBUG && echo Cleanups is $cleanups    eval $cleanups >OUTPUT/console-fixed.txt    if diff -u -w -b -B $REF_CONSOLE_OUTPUT OUTPUT/console-fixed.txt >OUTPUT/console.diff    then	echo "Console output matched"    else	echo "Console output differed"	success=false    fi}compat_variables() {    if [ -z "$REF_CONSOLE_OUTPUT" ] && [ -n "$REFCONSOLEOUTPUT" ]    then	REF_CONSOLE_OUTPUT=$REFCONSOLEOUTPUT    fi    if [ -z "$REF_CONSOLE_FIXUPS" ] && [ -n "$REFCONSOLEFIXUPS" ]    then	REF_CONSOLE_FIXUPS=$REFCONSOLEFIXUPS    fi    if [ -z "$REF_PUB_OUTPUT" ] && [ -n "$REFPUBOUTPUT" ]    then	REF_PUB_OUTPUT=$REFPUBOUTPUT    fi    if [ -z "$REF_PRIV_OUTPUT" ] && [ -n "$REFPRIVOUTPUT" ]    then	REF_PRIV_OUTPUT=$REFPRIVOUTPUT    fi}# this is called to set additional variables that depend upon testparams.shprerunsetup() {    HOSTSTART=$POOLSPACE/$TESTHOST/start.sh    compat_variables;}## record results records the status of each test in #   $REGRESSRESULTS/$testname/status## If the status is negative, then the "OUTPUT" directory of the test is# copied to $REGRESSRESULTS/$testname/OUTPUT as well.## The file $testname/description.txt if it exists is copied as well.## If $REGRESSRESULTS is not set, then nothing is done.# # See testing/utils/regress-summarizeresults.pl for a tool to build a nice# report from these files. ## See testing/utils/regress-nightly.sh and regress-stage2.sh for code# that sets up $REGRESSRESULTS.# # usage: recordresults testname testtype status#recordresults() {    testname=$1    testtype=$2    success=$3    if [ -n "$REGRESSRESULTS" ]    then	mkdir -p $REGRESSRESULTS/$testname		# note that 0/1 is shell sense.	case $success in	    0) success=true;;	    1) success=false;;	    true)  success=true;;	    false) sucesss=false;;	    succeed) success=true;;	    fail)  success=false;;	    yes)   success=true;;	    no)    success=false;;	    *) echo 'functions.sh:recordresults()' Bad value for success: $success >&2;		exit 2;         esac	 echo $success >$REGRESSRESULTS/$testname/status	 if [ -f $testname/description.txt ]	 then	    cp $testname/description.txt $REGRESSRESULTS/$testname	 fi	 if [ -n "$TEST_PURPOSE" ]	 then	    case $TEST_PURPOSE in	    regress) echo ${TEST_PROB_REPORT} >$REGRESSRESULTS/$testname/regress.txt;;	       goal) echo ${TEST_GOAL_ITEM}   >$REGRESSRESULTS/$testname/goal.txt;;	    exploit) echo ${TEST_EXPLOIT_URL} >$REGRESSRESULTS/$testname/exploit.txt;;	    esac         fi	 if $success	 then	    :	 else	    mkdir -p $REGRESSRESULTS/$testname/OUTPUT	    tar cf - $testname/OUTPUT | (cd $REGRESSRESULTS && tar xf - )	 fi    fi}# The following variables need to be set before calling the tests# #    TESTNAME          - the name of the test#    SCRIPT            - a script to load on the console#    PRIVINPUT         - a pcap file to feed on private side#    PUBINPUT          - a pcap file to feed on the public side##  If set, then the public and private packet output will be captured,#  turned into ASCII with tcpdump, and diff'ed against these files.#    REF_PRIVO_UTPUT   - for private side#    REF_PUB_OUTPUT    - for public side#    TCPDUMPARGS     - extra args for TCPDUMP.##  If set, then the console output will be diff'ed against this file:#    REF_CONSOLE_OUTPUT          #  #  The console output may need to be sanitized. The list of fixups from# REF_CONSOLE_FIXUPS will be appled from "fixups". The extension is used to# determine what program to use.##  Some additional options to control the network emulator#    EXITONEMPTY=--exitonempty   - if pcap file end should signal end of test#    ARPREPLY=--arpreply         - if ARPs should be answered    netjigtest() {    prerunsetup    success=true    PRIVOUTPUT=''    PUBOUTPUT=''        mkdir -p OUTPUT    NJARGS=''    if [ -n "$PRIVINPUT" ]    then	NJARGS="$NJARGS --playprivate $PRIVINPUT"    fi    if [ -n "$PUBINPUT" ]    then	NJARGS="$NJARGS --playpublic $PUBINPUT"    fi    if [ -n "$REF_PRIV_OUTPUT" ]    then	PRIVOUTPUT=`basename $REF_PRIV_OUTPUT .txt `	NJARGS="$NJARGS --recordprivate OUTPUT/$PRIVOUTPUT.pcap"    fi    if [ -n "$REF_PUB_OUTPUT" ]    then	PUBOUTPUT=`basename $REF_PUB_OUTPUT .txt`	NJARGS="$NJARGS --recordpublic OUTPUT/$PUBOUTPUT.pcap"    fi    if [ -n "$NETJIGARGS" ]    then	NJARGS="$NJARGS $NETJIGARGS"    fi    rm -f OUTPUT/console.txt    $NETJIGDEBUG && echo $NJ --tcpdump $ARPREPLY $EXITONEMPTY $NJARGS --startup "expect -f $UTILS/host-test.tcl $HOSTSTART ${SCRIPT} "     $NJ --tcpdump $ARPREPLY $EXITONEMPTY `eval echo $NJARGS` --startup "expect -f $UTILS/host-test.tcl $HOSTSTART ${SCRIPT} >OUTPUT/console.txt"     uml_mconsole $TESTHOST halt    if [ -z "$REF_PRIV_FILTER" ]    then	REF_PRIV_FILTER=cat    fi    if [ -n "$PRIVOUTPUT" ]    then	rm -f OUTPUT/$PRIVOUTPUT.txt	echo $TCPDUMP -t $TCPDUMPFLAGS -r OUTPUT/$PRIVOUTPUT.pcap '>'OUTPUT/$PRIVOUTPUT.txt	eval $TCPDUMP -t $TCPDUMPFLAGS -r OUTPUT/$PRIVOUTPUT.pcap | $REF_PRIV_FILTER >OUTPUT/$PRIVOUTPUT.txt	rm -f OUTPUT/$PRIVOUTPUT.diff	if diff -u -w -b -B $REF_PRIV_OUTPUT OUTPUT/$PRIVOUTPUT.txt >OUTPUT/$PRIVOUTPUT.diff	then	    echo "Private side output matched"	else	    echo "Private side output failed"	    success=false	fi    fi    if [ -z "$REF_PUB_FILTER" ]    then	REF_PUB_FILTER=cat    fi    if [ -n "$PUBOUTPUT" ]    then	rm -f OUTPUT/$PUBOUTPUT.txt	echo $TCPDUMP -t $TCPDUMPFLAGS -r OUTPUT/$PUBOUTPUT.pcap '>'OUTPUT/$PUBOUTPUT.txt	eval $TCPDUMP -t $TCPDUMPFLAGS -r OUTPUT/$PUBOUTPUT.pcap | $REF_PUB_FILTER >|OUTPUT/$PUBOUTPUT.txt	rm -f OUTPUT/$PUBOUTPUT.diff	if diff -u -w -b -B $REF_PUB_OUTPUT OUTPUT/$PUBOUTPUT.txt >OUTPUT/$PUBOUTPUT.diff	then	    echo "Public  side output matched"	else	    echo "Public  side output failed"	    success=false	fi    fi    if [ -n "$REF_CONSOLE_OUTPUT" ]    then        consolediff    fi    if $success    then	exit 0    else	exit 1    fi}    umltest() {    mkdir -p OUTPUT    success=true    prerunsetup    rm -f OUTPUT/console.txt    expect -f $UTILS/host-test.tcl $HOSTSTART ${SCRIPT} >OUTPUT/console.txt    if [ -n "$REFCONSOLEOUTPUT" ]    then	consolediff    fi    if $success    then	exit 0    else	exit 1    fi}klipstest() {    testdir=$1    testtype=$2    echo '*******  KLIPS RUNNING' $testdir '*******'     if [ ! -r $testdir/testparams.sh ]    then	echo '      ' No configuration	return    fi    ( cd $testdir && . ./testparams.sh && netjigtest )    stat=$?    recordresults $testdir $testtype $stat    if [ $stat = 0 ]    then	echo '*******  PASSED '$testdir' ********'    else	echo '*******  FAILED '$testdir' ********'    fi}ctltest() {    testdir=$1    testtype=$2    echo '*******  KERN  RUNNING' $testdir '*******'     if [ ! -r $testdir/testparams.sh ]    then	echo '      ' No configuration	return    fi    ( cd $testdir && . ./testparams.sh && umltest )    stat=$?    recordresults $testdir $testtype $stat    if [ $stat = 0 ]    then	echo '*******  PASSED '$testdir' ********'    else	echo '*******  FAILED '$testdir' ********'    fi}skiptest() {    testdir=$1    testtype=$2    echo '*******  NOT   RUNNING' $testdir '*******' }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -