13
13
# implied. See the License for the specific language governing permissions and
14
14
# limitations under the License.
15
15
16
- opt=" $1 "
16
+ opt=" $1 " ; shift
17
17
result=" results.txt"
18
18
19
- # Start CBMC Batch Jobs
20
- if [ " $opt " = " --start" ]; then
19
+ COMMANDS_IN_PATH=true
20
+ for i in cbmc-batch cbmc-status aws cbmc-kill cbmc; do
21
+ command -v " $i " > /dev/null 2>&1 || {
22
+ echo >&2 " Command $i required in \$ PATH" ;
23
+ COMMANDS_IN_PATH=false;
24
+ }
25
+ done
26
+ if [ " $COMMANDS_IN_PATH " = false ]; then
27
+ echo >&2 " Aborting."
28
+ exit 1;
29
+ fi
30
+
31
+ script_dir=$( CDPATH= cd -- " $( dirname -- " $0 " ) " && pwd)
32
+ cd " $script_dir " || { echo " Cannot change directory to $script_dir " ; exit 1; }
33
+
34
+ if [ " $# " = " 0" ]; then
35
+ all_jobs=" "
21
36
for job in jobs/* /; do
22
37
job=${job%/ } # remove trailing slash
23
38
job=${job#*/ } # job name
39
+ all_jobs=" $all_jobs $job "
40
+ done
41
+ else
42
+ all_jobs=" $@ "
43
+ fi
44
+
45
+ # Start CBMC Batch Jobs
46
+ if [ " $opt " = " --start" ]; then
47
+ for job in $all_jobs ; do
24
48
echo " Starting job $job "
25
49
cbmc-batch \
26
50
--no-report \
27
51
--no-coverage \
28
- --wsdir jobs/$job \
52
+ --wsdir jobs/" $job " \
29
53
--srcdir ../ \
30
54
--jobprefix $job -local \
31
55
--yaml jobs/$job /cbmc-batch.yaml
@@ -36,18 +60,21 @@ elif [ "$opt" = "--end" ]; then
36
60
rm $result
37
61
fi
38
62
for Makefile in Makefile-* -local-* ; do
39
- make -f $Makefile monitor
40
- make -f $Makefile copy
63
+ make -f " $Makefile " monitor
64
+ make -f " $Makefile " copy
41
65
dir=${Makefile#* -} # directory name from copy
42
66
job=${dir% -local-* -* } # original job name
43
- check=" $( python check_result.py $dir jobs/$job /cbmc-batch.yaml ) "
67
+ check=" $( python3 check_result.py " $dir " jobs/" $job " /cbmc-batch.yaml ) "
44
68
echo " $job : $check " >> $result
45
69
done
46
70
# Cleanup
47
71
elif [ " $opt " = " --cleanup" ]; then
48
72
for Makefile in Makefile-* -local-* ; do
49
- make -f $Makefile cleanup
73
+ make -f " $Makefile " cleanup
50
74
done
75
+ elif [ " $opt " = " --lsjobs" ]; then
76
+ echo $all_jobs | tr ' [[:space:]]' ' \n'
51
77
else
52
- echo " Specify option --start to start jobs, --end to check results, and --cleanup to cleanup bookkeeping"
78
+ echo " Specify option --start to start jobs, --end to check results," \
79
+ " --cleanup to cleanup bookkeeping and --lsjobs to list jobs"
53
80
fi
0 commit comments