📄 svntest-run.sh
字号:
#!/bin/shEXEC_PATH="`dirname $0`"BUILD_TYPE="$1"RA_TYPE="$2"FS_TYPE="$3"# Source the configuration file.. "$EXEC_PATH/svntest-config.sh"# Compute local varsLOG_FILE="$LOG_FILE_PREFIX.$BUILD_TYPE.$RA_TYPE.$FS_TYPE"TEST="`$GUESS` $BUILD_TYPE $RA_TYPE $FS_TYPE"REV="`$SVN st -v $SVN_SOURCE/README | $CUT -c 12-17 | $SED -e 's/^ *//'`"# Prime and initialize the log file$CP_F "$LOG_FILE_PREFIX.$BUILD_TYPE" $LOG_FILEecho >> $LOG_FILEecho "TEST: $REVPREFIX$REV on $TEST" >> $LOG_FILEecho "TIME: $($DATE '+%Y-%m-%d %H:%M:%S %z')" >> $LOG_FILEecho >> $LOG_FILE# Check the build typeSTART "check build type" "Checking build type..."case $BUILD_TYPE in shared) OBJ="$OBJ_SHARED" ;; static) OBJ="$OBJ_STATIC" ;; *) echo "$BUILD_TYPE: unknown build type" echo "$BUILD_TYPE: unknown build type" >> $LOG_FILE FAIL ;;esacPASS# Check the test typeSTART "check RA type" "Checking RA methd..."case $RA_TYPE in ra_local) CHECK_TARGET="check" ;; ra_svn) CHECK_TARGET="svncheck" ;; ra_dav) CHECK_TARGET="davcheck" ;; *) echo "$RA_TYPE: unknown RA type" echo "$RA_TYPE: unknown RA type" >> $LOG_FILE FAIL ;;esacPASS# Check the FS typeSTART "check FS type" "Checking FS type..."case $FS_TYPE in bdb) CHECK_ARGS="FS_TYPE=bdb" ;; fsfs) CHECK_ARGS="FS_TYPE=fsfs" ;; *) echo "$FS_TYPE: unknown FS type" echo "$FS_TYPE: unknown FS type" >> $LOG_FILE FAIL ;;esacPASS# Check that the object directory exists, and that it contains the# necessary executable filesSTART "check object directory" "Checking object directory..."test -d $TEST_ROOT/$OBJ || FAIL; PASSSTART "check svn executable" "Checking svn executable..."test -x $INST_DIR/$SVN_NAME/bin/svn || FAIL; PASSSTART "check svnadmin executable" "Checking svnadmin executable..."test -x $INST_DIR/$SVN_NAME/bin/svnadmin || FAIL; PASSSTART "check svnlook executable" "Checking svnlook executable..."test -x $INST_DIR/$SVN_NAME/bin/svnlook || FAIL; PASSSTART "check svnserve executable" "Checking svnserve executable..."test -x $INST_DIR/$SVN_NAME/bin/svnserve || FAIL; PASSSTART "check svnversion executable" "Checking svnversion executable..."test -x $INST_DIR/$SVN_NAME/bin/svnversion || FAIL; PASS# Build has initially mounted ramdisk for us, but this# script will at the end to do unmount, so check if it is mounted or not# and if it is not, do initial fire up for itif test "xyes" = "x$RAMDISK";then reinitialize_ramdiskfiif test "xyes" = "x$INTERMEDIATE_CLEANUP";then # Flag the tests to cleanup after themselves to avoid requiring # hundreds of MBs of storage at once for test data. CHECK_ARGS="$CHECK_ARGS CLEANUP=1"fi# Prepare the servercase $CHECK_TARGET in check) # Nothing to do here ;; svncheck) START "run svnserve" "Running svnserve..." $TEST_ROOT/$OBJ/subversion/svnserve/svnserve -d \ --listen-port $SVNSERVE_PORT \ -r $TEST_ROOT/$OBJ/$RA_SVN_REPO_ROOT \ >> $LOG_FILE 2>&1 test $? = 0 || FAIL PASS START "get svnserve pid" "Getting svnserve process ID..." USER_NAME="`$ID_UN`" SVNSERVE_PID="`$PS_U $USER_NAME | $GREP '[s]vnserve' \ | $SED -e 's/^ *//' | $CUT -f 1 -d ' ' -s`" test -n "$SVNSERVE_PID" || FAIL PASS CHECK_ARGS="$CHECK_ARGS $RA_SVN_CHECK_ARGS" ;; davcheck) START "run $HTTPD_NAME" "Running $HTTPD_NAME..." $CP_F "$TEST_ROOT/$HTTPD_NAME.conf" \ "$INST_DIR/$HTTPD_NAME/conf/httpd.conf" || FAIL $CP_F "$TEST_ROOT/mod_dav_${SVN_NAME}.conf" \ "$INST_DIR/$HTTPD_NAME/conf/mod_dav_svn.conf" || FAIL "$INST_DIR/$HTTPD_NAME/bin/apachectl" start \ >> $LOG_FILE 2>&1 test $? = 0 || FAIL PASS CHECK_ARGS="$CHECK_ARGS $RA_DAV_CHECK_ARGS" ;;esac# Kill the serverkill_svnserve() { case $CHECK_TARGET in check) # Nothing to do here ;; svncheck) START "kill svnserve" "Stopping svnserve..." $KILL $SVNSERVE_PID || FAIL PASS ;; davcheck) START "kill $HTTPD_NAME" "Stopping $HTTPD_NAME..." "$INST_DIR/$HTTPD_NAME/bin/apachectl" stop || \ FAIL PASS ;; esac umount_ramdisk "$TEST_ROOT/$OBJ/subversion/tests"}# Testts_start=`$DATE +"%s"`START "make $CHECK_TARGET" "Testing $RA_TYPE on $FS_TYPE..."CHECK_LOG_FILE="$LOG_FILE_DIR/LOG_svn_check_${BUILD_TYPE}_${RA_TYPE}_${FS_TYPE}"cd $TEST_ROOT/$OBJif test "$CHECK_TARGET" = "davcheck";then # At the moment we can't give repository url with # make davcheck, so use check & BASE_URL here for the present $MAKE check $CHECK_ARGS > $CHECK_LOG_FILE 2>&1elif test "$CHECK_TARGET" = "svncheck";then $MAKE check $CHECK_ARGS > $CHECK_LOG_FILE 2>&1else $MAKE $CHECK_TARGET $CHECK_ARGS > $CHECK_LOG_FILE 2>&1fitest $? = 0 || { FAIL_LOG $CHECK_LOG_FILE $CP "tests.log" \ "$LOG_FILE_PREFIX.log.$BUILD_TYPE.$RA_TYPE.$FS_TYPE.$REV.failed" \ >> $LOG_FILE 2>&1 # Prepare the log file for the mailer $GZIP_C < "tests.log" \ > "$LOG_FILE_DIR/tests.$BUILD_TYPE.$RA_TYPE.$FS_TYPE.log.gz" FAIL kill_svnserve}PASSts_stop=`$DATE +"%s"`START "Timer: make $CHECK_TARGET $(($ts_stop - $ts_start)) sec" \ "Timer: make $CHECK_TARGET $(($ts_stop - $ts_start)) sec"PASSkill_svnserveecho "TIME: $($DATE '+%Y-%m-%d %H:%M:%S %z')" >> $LOG_FILE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -