File tree Expand file tree Collapse file tree 5 files changed +24
-18
lines changed Expand file tree Collapse file tree 5 files changed +24
-18
lines changed Original file line number Diff line number Diff line change @@ -7,17 +7,19 @@ TOOL_NAME=2LS
7
7
8
8
run ()
9
9
{
10
+ . /goto -cc -m $BIT_WIDTH --function $ENTRY $BM -o $LOG . bin
11
+
10
12
# add property-specific options
11
13
if [[ "$PROP" == "termination" ]]; then
12
14
PROPERTY1 = "$PROPERTY --termination --competition-mode"
13
15
PROPERTY2 = "$PROPERTY --nontermination --competition-mode"
14
16
15
17
# run the termination and nontermination analysis in parallel
16
- $TOOL_BINARY --graphml -witness $LOG . witness $ BIT_WIDTH --object -bits $OBJ_BITS $PROPERTY1 \
17
- -- function $ ENTRY $ BM >> $LOG . ok1 2 >&1 &
18
+ $TOOL_BINARY --graphml -witness $LOG . witness --object -bits $OBJ_BITS $PROPERTY1 \
19
+ $ LOG . bin >> $LOG . ok1 2 >&1 &
18
20
PID1 = "$!"
19
- $TOOL_BINARY --graphml -witness $LOG . witness $ BIT_WIDTH --object -bits $OBJ_BITS $PROPERTY2 \
20
- -- function $ ENTRY $ BM >> $LOG . ok2 2 >&1 &
21
+ $TOOL_BINARY --graphml -witness $LOG . witness --object -bits $OBJ_BITS $PROPERTY2 \
22
+ $ LOG . bin >> $LOG . ok2 2 >&1 &
21
23
PID2 = "$!"
22
24
# this might not work in all environments
23
25
wait -n &> /dev /null
57
59
PROPERTY = "$PROPERTY --heap-interval --k-induction --competition-mode"
58
60
59
61
# run the tool
60
- $TOOL_BINARY --graphml -witness $LOG . witness $ BIT_WIDTH --object -bits $OBJ_BITS $PROPERTY \
61
- -- function $ ENTRY $ BM >> $LOG . ok 2 >&1
62
+ $TOOL_BINARY --graphml -witness $LOG . witness --object -bits $OBJ_BITS $PROPERTY \
63
+ $ LOG . bin >> $LOG . ok 2 >&1
62
64
63
65
# store the exit code
64
66
EC = $?
Original file line number Diff line number Diff line change @@ -18,26 +18,28 @@ jbmc: jbmc.zip
18
18
cat $* .inc tool-wrapper.inc >> $@
19
19
chmod 755 $@
20
20
21
- cbmc.zip : cbmc.inc tool-wrapper.inc $(CBMC ) /LICENSE $(CBMC ) /src/cbmc/cbmc
21
+ cbmc.zip : cbmc.inc tool-wrapper.inc $(CBMC ) /LICENSE $(CBMC ) /src/cbmc/cbmc $( CBMC ) /src/goto-cc/goto-cc
22
22
mkdir -p $(basename $@ )
23
23
$(MAKE ) cbmc-wrapper
24
24
mv cbmc-wrapper $(basename $@ ) /cbmc
25
25
cp $(CBMC ) /LICENSE $(basename $@ ) /
26
26
cp $(CBMC ) /src/cbmc/cbmc $(basename $@ ) /cbmc-binary
27
+ cp $(CBMC ) /src/goto-cc/goto-cc $(basename $@ ) /
27
28
chmod a+rX $(basename $@ ) /*
28
29
zip -r $@ $(basename $@ )
29
- cd $(basename $@ ) && rm cbmc cbmc-binary LICENSE
30
+ cd $(basename $@ ) && rm cbmc cbmc-binary goto-cc LICENSE
30
31
rmdir $(basename $@ )
31
32
32
- 2ls.zip : 2ls.inc tool-wrapper.inc $(2LS ) /LICENSE $(2LS ) /src/2ls/2ls
33
+ 2ls.zip : 2ls.inc tool-wrapper.inc $(2LS ) /LICENSE $(2LS ) /src/2ls/2ls $( 2LS ) /src/goto-cc/goto-cc
33
34
mkdir -p $(basename $@ )
34
35
$(MAKE ) 2ls-wrapper
35
36
mv 2ls-wrapper $(basename $@ ) /2ls
36
37
cp $(2LS ) /LICENSE $(basename $@ ) /
37
38
cp $(2LS ) /src/2ls/2ls $(basename $@ ) /2ls-binary
39
+ cp $(2LS ) /src/goto-cc/goto-cc $(basename $@ ) /
38
40
chmod a+rX $(basename $@ ) /*
39
41
zip -r $@ $(basename $@ )
40
- cd $(basename $@ ) && rm 2ls 2ls-binary LICENSE
42
+ cd $(basename $@ ) && rm 2ls 2ls-binary goto-cc LICENSE
41
43
rmdir $(basename $@ )
42
44
43
45
jbmc.zip : jbmc.inc tool-wrapper.inc $(JBMC ) /LICENSE $(JBMC ) /src/jbmc/jbmc
Original file line number Diff line number Diff line change @@ -11,18 +11,20 @@ run()
11
11
PROPERTY = "$PROPERTY --no-assertions --no-self-loops-to-assumptions"
12
12
fi
13
13
14
+ . /goto -cc -m $BIT_WIDTH --function $ENTRY $BM -o $LOG . bin
15
+
14
16
timeout 875 bash -c ' \
15
17
\
16
18
ulimit -v 15000000 ; \
17
19
\
18
20
EC=42 ; \
19
21
for c in 2 6 12 17 21 40 200 400 1025 2049 268435456 ; do \
20
22
echo "Unwind: $c" > $LOG.latest ; \
21
- ./cbmc-binary --graphml-witness $LOG.witness --unwind $c --stop-on-fail $BIT_WIDTH --object-bits $OBJ_BITS $PROPERTY --function $ENTRY $BM >> $LOG.latest 2>&1 ; \
23
+ ./cbmc-binary --graphml-witness $LOG.witness --unwind $c --stop-on-fail --object-bits $OBJ_BITS $PROPERTY $LOG.bin >> $LOG.latest 2>&1 ; \
22
24
ec=$? ; \
23
25
if [ $ec -eq 0 ] ; then \
24
26
if ! tail -n 10 $LOG.latest | grep -q "^VERIFICATION SUCCESSFUL$" ; then ec=1 ; else \
25
- ./cbmc-binary --unwinding-assertions --unwind $c --stop-on-fail $BIT_WIDTH --object-bits $OBJ_BITS $PROPERTY --function $ENTRY $BM > /dev/null 2>&1 || ec=42 ; \
27
+ ./cbmc-binary --unwinding-assertions --unwind $c --stop-on-fail --object-bits $OBJ_BITS $PROPERTY $LOG.bin > /dev/null 2>&1 || ec=42 ; \
26
28
fi ; \
27
29
fi ; \
28
30
if [ $ec -eq 10 ] ; then \
Original file line number Diff line number Diff line change @@ -18,11 +18,11 @@ ulimit -v 15000000 ; \
18
18
EC=42 ; \
19
19
for c in 2 6 12 17 21 40 200 400 1025 2049 268435456 ; do \
20
20
echo "Unwind: $c" > $LOG.latest ; \
21
- ./jbmc-binary --graphml-witness $LOG.witness --unwind $c --stop-on-fail $BIT_WIDTH --object-bits $OBJ_BITS $PROPERTY --function $ENTRY $BM >> $LOG.latest 2>&1 ; \
21
+ ./jbmc-binary --graphml-witness $LOG.witness --unwind $c --stop-on-fail -- $BIT_WIDTH --object-bits $OBJ_BITS $PROPERTY --function $ENTRY $BM >> $LOG.latest 2>&1 ; \
22
22
ec=$? ; \
23
23
if [ $ec -eq 0 ] ; then \
24
24
if ! tail -n 10 $LOG.latest | grep -q "^VERIFICATION SUCCESSFUL$" ; then ec=1 ; else \
25
- ./jbmc-binary --unwinding-assertions --unwind $c --stop-on-fail $BIT_WIDTH --object-bits $OBJ_BITS $PROPERTY --function $ENTRY $BM > /dev/null 2>&1 || ec=42 ; \
25
+ ./jbmc-binary --unwinding-assertions --unwind $c --stop-on-fail -- $BIT_WIDTH --object-bits $OBJ_BITS $PROPERTY --function $ENTRY $BM > /dev/null 2>&1 || ec=42 ; \
26
26
fi ; \
27
27
fi ; \
28
28
if [ $ec -eq 10 ] ; then \
Original file line number Diff line number Diff line change @@ -74,19 +74,19 @@ process_graphml()
74
74
<data key=\" specification\" >$(<$PROP_FILE)<\/data>
75
75
<data key=\" programfile\" >$(echo $BM | sed 's8/8\\/8g')<\/data>
76
76
<data key=\" programhash\" >$(sha1sum $BM | awk '{print $1}')<\/data>
77
- <data key=\" architecture\" >${BIT_WIDTH##-- } bit<\/data>\\Q/"
77
+ <data key=\" architecture\" >${BIT_WIDTH} bit<\/data>\\Q/"
78
78
fi
79
79
}
80
80
81
81
OBJ_BITS = "11"
82
- BIT_WIDTH = "-- 64"
82
+ BIT_WIDTH = "64"
83
83
BM = ""
84
84
PROP_FILE = ""
85
85
WITNESS_FILE = ""
86
86
87
87
while [ -n "$1" ] ; do
88
88
case "$1" in
89
- --32 |--64 ) BIT_WIDTH = "$1 " ; shift 1 ;;
89
+ --32 |--64 ) BIT_WIDTH = "${1##--} " ; shift 1 ;;
90
90
--propertyfile ) PROP_FILE = "$2" ; shift 2 ;;
91
91
--graphml -witness ) WITNESS_FILE = "$2" ; shift 2 ;;
92
92
--version ) $TOOL_BINARY --version ; exit 0 ;;
@@ -125,7 +125,7 @@ export OBJ_BITS
125
125
export GMON_OUT_PREFIX = `basename $BM `. gmon . out
126
126
127
127
export LOG = `mktemp -t ${TOOL_NAME} -log . XXXXXX `
128
- trap "rm -f $LOG $LOG.latest $LOG.ok $LOG.witness" EXIT
128
+ trap "rm -f $LOG $LOG.latest $LOG.ok $LOG.witness $LOG.bin " EXIT
129
129
130
130
run
131
131
You can’t perform that action at this time.
0 commit comments