source: utils/developer/CheckAllPossibleEnables.sh@ 4464ef

Action_Thermostats Add_AtomRandomPerturbation Add_RotateAroundBondAction Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_ChronosMutex Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion GeometryObjects Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks RotateToPrincipalAxisSystem_UndoRedo StoppableMakroAction Subpackage_levmar Subpackage_vmg ThirdParty_MPQC_rebuilt_buildsystem TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps Ubuntu_1604_changes stable
Last change on this file since 4464ef was 97a858, checked in by Frederik Heber <heber@…>, 12 years ago

Added some developer scripts to check on commits and releases.

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#!/bin/bash -x
2#
3# here, we check a release for every possible enable/disable combination.
4
5# we enable or disable according to a bit combination of length #packets
6packets=("debug" "qtgui" "jobmarket" "vmg" "ecut") #"python"
7length=${#packets[*]}
8end=`units "2^$length" | awk -F": " {'print $2'}`
9
10function bitcheck {
11 # $1 is the bit array
12 # $2 is the length of the bit array
13 # $3 is the bit to check (starting at 0)
14 # we print 0 or 1 depending on the bit
15 let inverse=$2-$3-1
16 bits=$1
17 while [ $inverse -gt 0 ]; do
18 let bits=$bits/2
19 ((inverse-=1))
20 done
21 let bit=$bits%2
22 echo $bit
23}
24
25if [ -z $1 ]; then
26 echo "Usage: $0 <source repo> <path where to check> <commit> [configure flags]"
27 exit 1
28fi
29SOURCEDIR="$1"
30shift
31DIR="$1"
32shift
33commit="$1"
34shift
35
36# variables to define
37LOG="`pwd`/commitcheck-${commit}"
38checkdir="commitchecking"
39cores=12
40
41# check whether target is empty and create clone of git repo
42if [ -e $DIR ]; then
43 echo "Target directory $DIR must not be present!"
44 exit 255
45fi
46echo -e "#Begin of Logfile" >${LOG}.log
47git clone $SOURCEDIR $DIR | tee -a ${LOG}.log
48DIR=`realpath $DIR`
49if [ ! $? -eq 0 ]; then
50 echo "Please install realpath package!"
51 exit 128
52fi
53OLDDIR=`pwd`
54cd $DIR
55
56i=0
57while [ $i -lt $end ]; do
58
59# GENERATING configure line
60 configureline="--enable-python "
61 j=0
62 while [ $j -lt ${#packets[*]} ]; do
63 bit=`bitcheck $i $length $j`
64 if [ $bit -eq 0 ]; then
65 configureline=${configureline}" --disable-${packets[$j]}"
66 else
67 configureline=${configureline}" --enable-${packets[$j]}"
68 fi
69 ((j+=1))
70 done
71
72# PERFORMING CHECKS
73 git checkout -f ${commit}
74 # copy some overrides
75 for testfile in `find tests -name 'Makefile.am'`; do
76 sed -i -e "s#max_jobs = 4#max_jobs = $cores#" $testfile
77 done
78 ./bootstrap
79 rm -rf $checkdir
80 mkdir -p $checkdir
81 cd $checkdir
82 echo "Now testing version `git describe --dirty --always` with $configureline" &>${LOG}-${i}.log
83 ../configure --prefix=${DIR}/$checkdir ${configureline} "$@" &>>${LOG}-${i}.log
84 make -k -j${cores} check &>>${LOG}-${i}.log
85 resultcode=$?
86 # add failed testsuite.logs
87 echo "#################################################################################" >>${LOG}-${i}.log
88 for failedlog in `find tests/ -regex '.*/[0-9]*/.*' -name 'testsuite.log' -exec grep -l "FAILED" {} \;`; do
89 echo -e "\t$failedlog" >>${LOG}-${i}.log
90 echo "#################################################################################" >>${LOG}-${i}.log
91 cat <$failedlog >>${LOG}-${i}.log
92 echo "#################################################################################" >>${LOG}-${i}.log
93 done
94 if [ $resultcode -gt 0 ]; then
95 echo -e "${i}: `git describe --dirty --always`, ${configureline}: FAILED." >>${LOG}.log
96 else
97 echo -e "${i}: `git describe --dirty --always`, ${configureline}: ok." >>${LOG}.log
98 fi
99 cd ..
100
101 ((i+=1))
102done
103cd $OLDDIR
Note: See TracBrowser for help on using the repository browser.