-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate_baseline.sh
executable file
·50 lines (42 loc) · 1.24 KB
/
generate_baseline.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
COMMAND="stack"
OPTIONS=" exec GrinHC -- "
LEX_COMMAND="--lex "
PARSE_COMMAND="--parse "
STEP_COMMAND="--step "
TEST_SUFFIX="/*.in"
EVAL_SUFFIX=".out"
LEX_SUFFIX=".out.lex"
PARSE_SUFFIX=".out.parse"
STEP_SUFFIX=".out.step"
#EVALFILES=$TEST_DIR$EVAL_SUFFIX
#LEXFILES=$TEST_DIR$LEX_SUFFIX
#PARSEFILES=$TEST_DIR$PARSE_SUFFIX
if [ -z "$1" ]
then
echo "Usage: generate_baseline.sh <test|testdir>"
exit 1
fi
TEST_DIR="$(realpath $1)"
if [ -d $TEST_DIR ] && [ "$(basename $TEST_DIR)" == "baselines" ]
then
INFILES=$TEST_DIR$TEST_SUFFIX
for file in $INFILES; do
echo -n "Generating baseline for $file"
# Construct names for outfiles
eval_outfile="${file%.*}"$EVAL_SUFFIX
lex_outfile="${file%.*}"$LEX_SUFFIX
parse_outfile="${file%.*}"$PARSE_SUFFIX
step_outfile="${file%.*}"$STEP_SUFFIX
# Generate outfiles
echo -n "."
eval $COMMAND$OPTIONS$file > $eval_outfile 2>&1
echo -n "."
eval $COMMAND$OPTIONS$LEX_COMMAND$file > $lex_outfile 2>&1
echo -n "."
eval $COMMAND$OPTIONS$PARSE_COMMAND$file > $parse_outfile 2>&1
echo -n "."
eval $COMMAND$OPTIONS$STEP_COMMAND$file > $step_outfile 2>&1
echo "Done"
done
fi