@@ -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/'
@@ -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)
@@ -334,11 +359,26 @@ Resources:
334
359
tar czf witnesses.tar.gz cbmc.*.logfiles
335
360
rm -rf cbmc.*.logfiles
336
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
337
377
fi
338
- if [ -f logs-$t/*.xml.bz2 ]
339
- then
340
- start_date="$(echo ${PerfTestId} | cut -f1-3 -d-) $(echo ${PerfTestId} | cut -f4-6 -d- | sed 's/-/:/g')"
341
- 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)
342
382
bunzip2 *.xml.bz2
343
383
perl -p -i -e \
344
384
" s/^(<result.*version=\" [^\" ]*)/\$ 1:${PerfTestId}/" *.xml
@@ -348,10 +388,28 @@ Resources:
348
388
" s/^(<result.*date=)\" [^\" ]*/\$ 1\" $start_date/" *.xml
349
389
bzip2 *.xml
350
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/
351
400
fi
352
401
aws s3 cp logs-$t \
353
402
s3://${S3Bucket}/${PerfTestId}/$cfg/logs-$t/ \
354
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
355
413
else
356
414
rm -f gmon.sum gmon.out *.gmon.out.*
357
415
../benchexec/bin/benchexec cbmc.xml --no-container \
0 commit comments