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.
16 # Shell script to bench nitmd over different kind of document.
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 "run_bench: [options]* benchname"
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;;
58 cd benches
; make; cd ..
61 cd engines
; make; cd ..
65 if test -z
"$NOTSKIPED"; then
67 echo "List of available benches:"
68 echo "* all: run all the benches"
71 ## EFFECTIVE BENCHS ##
74 bncdir
="./benches/out"
79 function bench_nitmd
()
82 skip_test
"$name" && return
83 prepare_res
$outdir/nitmd.dat
"nitmd" "nitmd"
84 for file in $bncdir/*.md
; do
85 bench
=`basename $file .md`
86 bench_command
"$bench" "" "$engdir/nitmd/nitmd" "$file" "$s"
91 function bench_nitmd
-o
()
94 skip_test
"$name" && return
95 prepare_res
$outdir/nitmd
-o.dat
"nitmd-o" "nitmd-o"
96 for file in $bncdir/*.md
; do
97 bench
=`basename $file .md`
98 bench_command
"$bench" "" "$engdir/nitmd/nitmd-o" "$file" "$s"
103 function bench_txtmark
()
106 skip_test
"$name" && return
107 prepare_res
$outdir/txtmark.dat
"txtmark" "txtmark"
108 for file in $bncdir/*.md
; do
109 bench
=`basename $file .md`
110 bench_command
"$bench" "" "java" "-cp" "$engdir/txtmark/.:$engdir/txtmark/txtmark-0.11.jar" "Txtmark" "$file" "$s"
115 function bench_markdown4j
()
118 skip_test
"$name" && return
119 prepare_res
$outdir/markdown4j.dat
"markdown4j" "markdown4j"
120 for file in $bncdir/*.md
; do
121 name
=`basename $file .md`
122 bench_command
"$bench" "" "java" "-cp" "$engdir/markdown4j/.:$engdir/markdown4j/markdown4j-2.2.jar" "Markdown4j" "$file" "$s"
127 function bench_pandoc
()
130 skip_test
"$name" && return
131 prepare_res
$outdir/pandoc.dat
"pandoc" "pandoc"
132 for file in $bncdir/*.md
; do
133 name
=`basename $file .md`
134 bench_command
"$bench" "" "$engdir/pandoc/pandoc" "$file" "$s"
139 if test "$#" -gt
0; then
140 plot
$outdir/bench_markdown.gnu
143 if test -n
"$died"; then
144 echo "Some commands failed"