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

📄 t.frame

📁 一个C语言写的快速贝叶斯垃圾邮件过滤工具
💻 FRAME
字号:
#!/bin/sh# testing framework for /bin/sh# if run from "make check", use pid and time to name TMPDIR, # which will automatically be deleted.# if run from command line, use testname and date for TMPDIR,# and suppress directory deletion.set -eexec </dev/null: ${srcdir=.}: ${relpath=..}: ${BF_TESTDIR=.}# suck in EXE_EXT and DB_TYPE, export the latter.. ./t.configexport DB_TYPEDB_EXT=${DB_EXT#.}export DB_EXTBOGOFILTER="$VAL ${relpath}/bogofilter$EXE_EXT"BOGOLEXER="$VAL ${relpath}/bogolexer$EXE_EXT"BOGOTUNE="$VAL ${relpath}/bogotune$EXE_EXT"BOGOUTIL="$VAL ${relpath}/bogoutil$EXE_EXT"export BOGOFILTERexport BOGOLEXERexport BOGOUTIL# Cater for GNU coreutils "compatibility"_POSIX2_VERSION=199209export _POSIX2_VERSION# Obtain data base file suffixDB_NAME=`$BOGOFILTER -C -V 2>&1 | sed -n '2p;'`case $DB_NAME in    *BerkeleyDB*|*"Berkeley DB"*)	case $DB_NAME in	    *" TRANSACTIONAL"*|*" AUTO-XA"*) DB_TXN=true ;;	    *)                               DB_TXN=false ;;	esac ;;    *QDBM*)	     DB_TXN=false ;;    *SQLite*)	     DB_TXN=true  ;;    *TrivialDB*)     DB_TXN=false ;;    *)		    echo >&2 "Unknown data base type in bogofilter -V: $DB_NAME"		    exit 1 ;;esacexport DB_EXT DB_TXNif [ "x$BF_TESTVERBOSE" != x ] ; then    echo "detected database type \"$DB_TYPE\", extension: \"$DB_EXT\", transactions: $DB_TXN"fi# Cater for Solaris "compatibility"case $PATH in*/usr/xpg4/bin:*) ;;*)    if test -d /usr/xpg4/bin ; then	PATH=/usr/xpg4/bin:$PATH	export PATH    fi    ;;esac# However, Solaris' /usr/xpg4/bin/grep doesn't support long lines, so we# need to use /usr/bin/grep insteadGREP=/bin/greptest -x $GREP || GREP=/usr/bin/greptest -x $GREP || { echo >&2 'Cannot find grep!' ; exit 1 ; }export GREP: ${AWK=awk}export AWKLANG=LC_COLLATE=LC_ALL=unset LANG || :unset LC_COLLATE || :unset LC_ALL || :i=0INSERT=.while [ $i -lt 3 ] ; do    PRINTCORE=${srcdir}/$INSERT/printcore    if [ -f $PRINTCORE ] ; then break ; fi    i=`expr $i + 1`    INSERT=$INSERT/..doneSYSTEST="${srcdir}"OUTPUTS=${SYSTEST}/outputsif [ -z "$RUN_FROM_MAKE" ] || [ "$SUPPRESS_DELETE" = YES ] ; then# standalone, from shell directly# THIS IS PRONE TO RACES   NAME=`basename $0 | sed -e 's/^t\.//'`   DATE=`date +"%Y%m%d"`   TMPDIR="${BF_TESTDIR}/$NAME.$DATE"   SUPPRESS_DELETE="NO"else# automated, from make    while : ; do	TMPDIR=${BF_TESTDIR}/checks.$$.`date +"%Y%m%dT%H%M%S"`	if test x$SUPPRESS_DELETE = xNO ; then TMPDIR=${BF_TESTDIR}/outputs.`date +"%m%d"` ; fi        mkdir $TMPDIR && break || :	sleep 1    donefirm -rf $TMPDIRmkdir $TMPDIRBOGOFILTER_DIR=$TMPDIRexport BOGOFILTER_DIRWORDLIST="${TMPDIR}/wordlist.${DB_EXT}"verbose=0if [ "$1" = "-v" ]; then    verbose=1    $BOGOFILTER -V 2> ${TMPDIR}/version.outfiif [ "$1" = "-vv" ]; then    v="-x l -vv -D"    verbose=2fiif test "x$BF_TESTVERBOSE" != "x" ; then    verbose=$BF_TESTVERBOSEfiif test "x$SUPPRESS_DELETE" = "x" ; then    trap '$SHELL $PRINTCORE ; rm -r -f core ${TMPDIR}' 0else    echo "Results are in ${TMPDIR}.  Remove it after testing."ficreate_empty_wordlist(){    rm -f $BOGOFILTER_DIR/*.${DB_EXT}    rm -f $BOGOFILTER_DIR/__db.* $BOGOFILTER_DIR/log.*    $BOGOUTIL -l $BOGOFILTER_DIR/wordlist.${DB_EXT} < /dev/null}if [ -z "$NODB" ]; then    create_empty_wordlistfi# check valgrind versioncase `(valgrind --version) 2>/dev/null` in    valgrind-2.[123].*) VALGRIND="valgrind --tool=memcheck" ;;    valgrind-*) VALGRIND="valgrind" ;;    *) VALGRIND= ;;esacif [ "x$VALGRIND" != x ] ; then    VALGRIND="$VALGRIND -q --num-callers=20"fiexport VALGRIND# parse BF_CHECKTOOLBF_CHECKTOOL=${BF_CHECKTOOL-glibc}case ${BF_CHECKTOOL} inglibc)    # make GNU libc nasty and abort on memory allocation issues:    MALLOC_CHECK_=2    export MALLOC_CHECK_    ;;boehm-gc)    # use the Boehm-Demers-Weiser Garbage Collector in find-leak mode,    # only supported on Linux:    for p in /usr/local/lib /usr/lib /lib ; do	if test -f $p/libgc.so ; then	    VAL="env LD_PRELOAD=$p/libgc.so GC_FIND_LEAK=1"	    export VAL	    break	fi    done    ;;valgrind)    # use valgrind    if test "x$VALGRIND" != x ; then	VAL="$VALGRIND --leak-check=yes"	export VAL    else	echo >&2 "WARNING: valgrind not found or unsupported version, ignored."    fi    ;;efence)    # use Electric Fence    VAL="env LD_PRELOAD=libefence.so.0.0"    EF_PROTECT_FREE=1    EF_FILL=85    EF_ALLOW_MALLOC_0=1    EF_PROTECT_BELOW=0    EF_ALIGNMENT=0    export LD_PRELOAD EF_PROTECT_FREE EF_FILL EF_ALLOW_MALLOC_0 EF_PROTECT_BELOW    export EF_ALIGNMENT VAL    ;;"")    ;;*)    echo >&2 "WARNING: unsupported BF_CHECKTOOL=\"${BF_CHECKTOOL}\" ignored."    echo >&2 "         supported BF_CHECKTOOL values: glibc, boehm-gc, valgrind, efence"    ;;esac# check diff optionscase `uname -s` in    Linux)  case $verbose in 	    1) DIFF_BRIEF="--brief -s" ;;	    2) DIFF_BRIEF="-u" ;;	esac	;;esac# ## HELPER FUNCTIONS ---------------------------------------------# split file on stdin into files 1, 2, 3, 4... at "From " lines.splitmbox() {      $AWK 'BEGIN { f=0; } /^From / { close(f); f++; } { print $0 > f }'}

⌨️ 快捷键说明

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