scripts/server-services/repocheck/commit-checker
author kpeter
Mon, 18 Feb 2008 03:32:06 +0000
changeset 2575 e866e288cba6
parent 2327 596e48d6e77b
permissions -rwxr-xr-x
Major improvements in NetworkSimplex.

Main changes:
- Use -potenital[] instead of potential[] to conform to the usual
terminology.
- Use function parameter instead of #define commands to select pivot rule.
- Use much faster implementation for the candidate list pivot rule.
It is about 5-20 times faster now.
- Add a new pivot rule called "Limited Search" that is a modified
version of "Block Search". It is about 25 percent faster on rather
sparse graphs.
- By default "Limited Search" is used for sparse graphs and
"Block Search" is used otherwise. This combined method is the most
efficient on every input class.
- Change the name of private members to start with "_".
- Change the name of function parameters not to start with "_".
- Remove unnecessary documentation for private members.
- Many doc improvements.
     1 #!/bin/bash
     2 
     3 ROOT=$PWD
     4 REV=$1
     5 LOGFILE=${ROOT}/logs/${REV}.log
     6 
     7 function im-not-the-next() {
     8     for i in `ls queue`
     9     do
    10 	if [ $i -lt $REV ]; then
    11 	    true
    12 	    return
    13 	fi
    14     done
    15     false
    16 }
    17 
    18 function make-dir () {
    19     if [ ! -d $1 ]; then
    20 	mkdir $1
    21     fi
    22 }
    23 
    24 function makecheck () {
    25     if [ `which $(echo $CXX|cut -f1 -d' ' )` ]; then
    26 	make-dir $ODIR &&
    27 	cd $ODIR &&
    28 	time ../trunk/configure $* &&
    29 	time make check &&
    30 	cd .. 
    31     else
    32 	echo
    33 	echo '***************************************************************'
    34 	echo "  COMPILER $CXX CANNOT BE FOUND"
    35 	echo '***************************************************************'
    36 	echo
    37     fi
    38 }
    39 
    40 function check-compilers() {
    41 cd trunk &&
    42 autoreconf -vi &&
    43 cd .. &&
    44 ODIR=gcc-3.3 CXX=g++-3.3 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex &&
    45 ODIR=gcc-3.4 CXX=g++-3.4 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex &&
    46 ODIR=gcc-4.0 CXX=g++-4.0 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex &&
    47 ODIR=gcc-4.1 CXX=g++-4.1 CXXFLAGS='-W -Wall -Werror' makecheck --enable-demo --enable-benchmark --with-soplex=/usr/local/soplex &&
    48 # # ODIR=icc-8.0 CXX=icpc-8.0 CXXFLAGS='-Werror' makecheck --enable-demo --enable-benchmark &&
    49 # ODIR=icc-9.0 CXX='icpc-9.0' CXXFLAGS='-Werror' makecheck --enable-demo --enable-benchmark &&
    50 # ODIR=mingw CXX='g++' makecheck --with-msw --target=i586-mingw32msvc --host=i586-mingw32msvc --build=i386-linux --without-glpk &&
    51 echo &&
    52 echo '**********************************************************************' &&
    53 echo '   REPOSITORY SEEMS OK' &&
    54 echo '**********************************************************************' &&
    55 echo
    56 }
    57 
    58 if [ $# -eq 0 ]; then
    59     echo 'Usage:'
    60     echo '   commit-checker --init'
    61     echo '   commit-checker revision'
    62     exit 1
    63 elif [ $1 = '--init' ]; then
    64     rm -rf queue
    65     mkdir queue
    66     make-dir logs
    67     rm -rf trunk
    68     svn co https://lemon.cs.elte.hu/svn/hugo/trunk
    69     exit 0
    70 fi
    71 
    72 touch ${ROOT}/queue/$REV
    73 
    74 while im-not-the-next; do
    75     sleep 10
    76 done
    77 
    78 # echo RUN $REV
    79 
    80 svn up -r$REV trunk >${LOGFILE} 2>&1
    81 
    82 AUTHOR=`svn info trunk|grep 'Last Changed Author:'|cut -d ' ' -f 4`
    83 EMAIL=`awk '$1=="'${AUTHOR}'" {print $2}' <${ROOT}/e-mails`
    84 
    85 echo '
    86 
    87 *************************************************************
    88 Check revision '${REV}' of '${AUTHOR}' ('${EMAIL}')
    89 *************************************************************
    90 
    91 '>>${LOGFILE} 2>&1
    92 
    93 if check-compilers >>${LOGFILE} 2>&1
    94 then
    95     echo -n
    96 else
    97     echo 'Dear '${AUTHOR}',
    98 Your svn commit -r'${REV}' made the repository broken, or at least
    99 the compiler emits warnings during the build process.
   100 The compilation log is attached.
   101 Please fix the problem as soon as possible.
   102 
   103 Best regards,
   104 LEMON Commit Checking Service
   105 '|
   106     mail -a ${LOGFILE} -s '[LEMON-SVN] WARNING: Revision '${REV}' is broken' \
   107 	${EMAIL} alpar@cs.elte.hu
   108 
   109     echo 'Commit -r'${REV}' made the repository broken, or at least
   110 the compiler emits warnings during the build process.
   111 Do not update until this bug is fixed, unless you really need it.
   112 
   113 Best regards,
   114 LEMON Commit Checking Service
   115 '|
   116     mail -s 'WARNING: Revision '${REV}' is broken' \
   117 	${EMAIL} lemon-commits@lemon.cs.elte.hu
   118 fi
   119     
   120 #    rm ${LOGFILE}
   121 rm ${ROOT}/queue/$REV
   122