@@ -38,6 +38,9 @@ Parameters:
38
38
SSHKeyName :
39
39
Type : String
40
40
41
+ WitnessCheck :
42
+ Type : String
43
+
41
44
Conditions :
42
45
UseSpot : !Not [!Equals [!Ref MaxPrice, ""]]
43
46
@@ -153,6 +156,7 @@ Resources:
153
156
apt-get install -y git time wget binutils awscli make jq
154
157
apt-get install -y zip unzip
155
158
apt-get install -y gcc libc6-dev-i386
159
+ apt-get install -y ant python3-tempita python
156
160
157
161
# cgroup set up for benchexec
158
162
chmod o+wt '/sys/fs/cgroup/cpuset/'
@@ -212,7 +216,7 @@ Resources:
212
216
cd /mnt
213
217
cd cprover-sv-comp
214
218
git pull
215
- mkdir -p src/cbmc/
219
+ mkdir -p src/cbmc src/goto-cc
216
220
touch LICENSE
217
221
cd ..
218
222
mkdir -p run
@@ -223,6 +227,27 @@ Resources:
223
227
mkdir -p tmp
224
228
export TMPDIR=/mnt/tmp
225
229
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
+
226
251
# reduce the likelihood of multiple hosts processing the
227
252
# same message (in addition to SQS's message hiding)
228
253
sleep $(expr $RANDOM % 30)
@@ -292,10 +317,12 @@ Resources:
292
317
--receipt-handle $msg
293
318
294
319
cd /mnt/cprover-sv-comp
295
- rm -f src/cbmc/cbmc
320
+ rm -f src/cbmc/cbmc src/goto-cc/goto-cc
296
321
aws s3 cp s3://${S3Bucket}/${PerfTestId}/$cfg/cbmc \
297
322
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
299
326
make CBMC=. cbmc.zip
300
327
cd ../run
301
328
unzip ../cprover-sv-comp/cbmc.zip
@@ -332,11 +359,26 @@ Resources:
332
359
tar czf witnesses.tar.gz cbmc.*.logfiles
333
360
rm -rf cbmc.*.logfiles
334
361
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
335
377
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)
340
382
bunzip2 *.xml.bz2
341
383
perl -p -i -e \
342
384
" s/^(<result.*version=\" [^\" ]*)/\$ 1:${PerfTestId}/" *.xml
@@ -346,22 +388,45 @@ Resources:
346
388
" s/^(<result.*date=)\" [^\" ]*/\$ 1\" $start_date/" *.xml
347
389
bzip2 *.xml
348
390
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/
349
400
fi
350
401
aws s3 cp logs-$t \
351
402
s3://${S3Bucket}/${PerfTestId}/$cfg/logs-$t/ \
352
403
--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
353
413
else
354
414
rm -f gmon.sum gmon.out *.gmon.out.*
355
415
../benchexec/bin/benchexec cbmc.xml --no-container \
356
416
--task $t -T 600s -M 7GB -o logs-$t/ \
357
417
-N $max_par -c 1
358
418
if ls *.gmon.out.* >/dev/null 2>&1
359
419
then
360
- gprof --sum ./cbmc-binary *.gmon.out.*
420
+ gprof --sum ./cbmc-binary cbmc *.gmon.out.*
361
421
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
362
425
rm -f gmon.sum gmon.out *.gmon.out.*
363
426
aws s3 cp sum.profile-$t \
364
427
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
365
430
fi
366
431
fi
367
432
rm -rf logs-$t sum.profile-$t
0 commit comments