2 # This file is part of NIT ( http://www.nitlanguage.org ).
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
18 source .
/bench_common.sh
19 source .
/bench_plot.sh
21 ## CONFIGURATION OPTIONS ##
23 # Default number of times a command must be run with bench_command
24 # Can be overrided with 'the option -n'
27 ### HELPER FUNCTIONS ##
39 echo "bench_nitdoc [options]* git-ref"
40 echo " -v: verbose mode"
41 echo " -n count: number of execution for each bar (default: $count)"
42 echo " --dry: Do not run the commands, just reuse the data and generate the graph"
47 while [ "$stop" = false
]; do
49 -v
) verbose
=true
; shift;;
51 -n
) count
="$2"; shift; shift;;
52 --dry
) dry_run
=true
; shift;;
59 if test -z
"$REF"; then
64 current_branch
=`git rev-parse --abbrev-ref HEAD`
65 git checkout origin
/master
&& ..
/bin
/nitc ..
/src
/nitdoc.nit
-o .
/nitdoc.orig
66 git checkout
$current_branch && ..
/bin
/nitc ..
/src
/nitdoc.nit
-o .
/nitdoc.new
68 ## EFFECTIVE BENCHS ##
70 function bench_nitdoc
()
72 basedir
="./bench_nitdoc.out/${name}.out"
73 tests
=(..
/tests
/test_prog ..
/lib
/standard
/kernel.nit ..
/lib
/standard
)
76 prepare_res
$basedir/orig.dat
$REF "nitdoc.orig"
77 for path
in ${tests[@]}; do
78 run_gen
$basedir .
/nitdoc.orig
$path
81 prepare_res
$basedir/new.dat
"HEAD" "nitdoc.new"
82 for path
in ${tests[@]}; do
83 run_gen
$basedir .
/nitdoc.new
$path
86 plot
$basedir/bench_nitdoc.gnu
94 name
=`basename $path .nit`
95 bench_command
$name $path $bin $path -d
$basedir/$bin.out
100 if test -n
"$died"; then
101 echo "Some commands failed"