@@ -38,6 +38,9 @@ Parameters:
3838 SSHKeyName :
3939 Type : String
4040
41+ WitnessCheck :
42+ Type : String
43+
4144Conditions :
4245 UseSpot : !Not [!Equals [!Ref MaxPrice, ""]]
4346
@@ -153,6 +156,7 @@ Resources:
153156 apt-get install -y git time wget binutils awscli make jq
154157 apt-get install -y zip unzip
155158 apt-get install -y gcc libc6-dev-i386
159+ apt-get install -y ant python3-tempita python
156160
157161 # cgroup set up for benchexec
158162 chmod o+wt '/sys/fs/cgroup/cpuset/'
@@ -212,7 +216,7 @@ Resources:
212216 cd /mnt
213217 cd cprover-sv-comp
214218 git pull
215- mkdir -p src/cbmc/
219+ mkdir -p src/cbmc src/goto-cc
216220 touch LICENSE
217221 cd ..
218222 mkdir -p run
@@ -223,6 +227,27 @@ Resources:
223227 mkdir -p tmp
224228 export TMPDIR=/mnt/tmp
225229
230+ if [ x${WitnessCheck} = xTrue ]
231+ then
232+ cd cpachecker
233+ ant
234+
235+ cd ../run
236+ for def in \
237+ cpa-seq-validate-correctness-witnesses \
238+ cpa-seq-validate-violation-witnesses \
239+ fshell-witness2test-validate-violation-witnesses
240+ do
241+ wget -O $def.xml https://raw.githubusercontent.com/sosy-lab/sv-comp/master/benchmark-defs/$def.xml
242+ sed -i 's#[\./]*/results-verified/LOGDIR/sv-comp18.\${!inputfile_name}.files/witness.graphml#witnesses/sv-comp18.${!inputfile_name}-witness.graphml#' $def.xml
243+ done
244+
245+ ln -s ../cpachecker/scripts/cpa.sh cpa.sh
246+ ln -s ../cpachecker/config/ config
247+
248+ cp ../fshell-w2t/* .
249+ fi
250+
226251 # reduce the likelihood of multiple hosts processing the
227252 # same message (in addition to SQS's message hiding)
228253 sleep $(expr $RANDOM % 30)
@@ -292,10 +317,12 @@ Resources:
292317 --receipt-handle $msg
293318
294319 cd /mnt/cprover-sv-comp
295- rm -f src/cbmc/cbmc
320+ rm -f src/cbmc/cbmc src/goto-cc/goto-cc
296321 aws s3 cp s3://${S3Bucket}/${PerfTestId}/$cfg/cbmc \
297322 src/cbmc/cbmc
298- chmod a+x src/cbmc/cbmc
323+ aws s3 cp s3://${S3Bucket}/${PerfTestId}/$cfg/goto-cc \
324+ src/goto-cc/goto-cc
325+ chmod a+x src/cbmc/cbmc src/goto-cc/goto-cc
299326 make CBMC=. cbmc.zip
300327 cd ../run
301328 unzip ../cprover-sv-comp/cbmc.zip
@@ -332,11 +359,26 @@ Resources:
332359 tar czf witnesses.tar.gz cbmc.*.logfiles
333360 rm -rf cbmc.*.logfiles
334361 cd ..
362+
363+ if [ x${WitnessCheck} = xTrue ]
364+ then
365+ for wc in *-witnesses.xml
366+ do
367+ wcp=$(echo $wc | sed 's/-witnesses.xml$//')
368+ mkdir witnesses
369+ tar -C witnesses --strip-components=1 -xzf \
370+ logs-$t/witnesses.tar.gz
371+ ../benchexec/bin/benchexec --no-container \
372+ $wc --task $t -T 90s -M 15GB \
373+ -o $wcp-logs-$t/ -N $max_par -c 1
374+ rm -rf witnesses
375+ done
376+ fi
335377 fi
336- if [ -f logs-$t/*.xml.bz2 ]
337- then
338- start_date="$(echo ${PerfTestId} | cut -f1-3 -d-) $(echo ${PerfTestId} | cut -f4-6 -d- | sed 's/-/:/g')"
339- cd logs-$t
378+ start_date="$(echo ${PerfTestId} | cut -f1-3 -d-) $(echo ${PerfTestId} | cut -f4-6 -d- | sed 's/-/:/g')"
379+ for l in *logs-$t/*.xml.bz2
380+ do
381+ cd $(dirname $l)
340382 bunzip2 *.xml.bz2
341383 perl -p -i -e \
342384 " s/^(<result.*version=\" [^\" ]*)/\$ 1:${PerfTestId}/" *.xml
@@ -346,22 +388,45 @@ Resources:
346388 " s/^(<result.*date=)\" [^\" ]*/\$ 1\" $start_date/" *.xml
347389 bzip2 *.xml
348390 cd ..
391+ done
392+
393+ if [ x${WitnessCheck} = xTrue ]
394+ then
395+ ../benchexec/bin/table-generator \
396+ logs-$t/*xml.bz2 *-logs-$t/*.xml.bz2 -o logs-$t/
397+ else
398+ ../benchexec/bin/table-generator \
399+ logs-$t/*xml.bz2 -o logs-$t/
349400 fi
350401 aws s3 cp logs-$t \
351402 s3://${S3Bucket}/${PerfTestId}/$cfg/logs-$t/ \
352403 --recursive
404+ for wc in *-witnesses.xml
405+ do
406+ [ -s $wc ] || break
407+ wcp=$(echo $wc | sed 's/-witnesses.xml$//')
408+ rm -rf $wcp-logs-$t/*.logfiles
409+ aws s3 cp $wcp-logs-$t \
410+ s3://${S3Bucket}/${PerfTestId}/$cfg/$wcp-logs-$t/ \
411+ --recursive
412+ done
353413 else
354414 rm -f gmon.sum gmon.out *.gmon.out.*
355415 ../benchexec/bin/benchexec cbmc.xml --no-container \
356416 --task $t -T 600s -M 7GB -o logs-$t/ \
357417 -N $max_par -c 1
358418 if ls *.gmon.out.* >/dev/null 2>&1
359419 then
360- gprof --sum ./cbmc-binary *.gmon.out.*
420+ gprof --sum ./cbmc-binary cbmc *.gmon.out.*
361421 gprof ./cbmc-binary gmon.sum > sum.profile-$t
422+ rm -f gmon.sum
423+ gprof --sum ./goto-cc goto-cc*.gmon.out.*
424+ gprof ./goto-cc gmon.sum > sum.goto-cc-profile-$t
362425 rm -f gmon.sum gmon.out *.gmon.out.*
363426 aws s3 cp sum.profile-$t \
364427 s3://${S3Bucket}/${PerfTestId}/$cfg/sum.profile-$t
428+ aws s3 cp sum.goto-cc-profile-$t \
429+ s3://${S3Bucket}/${PerfTestId}/$cfg/sum.goto-cc-profile-$t
365430 fi
366431 fi
367432 rm -rf logs-$t sum.profile-$t
0 commit comments