@@ -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/'
@@ -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)
@@ -334,11 +359,26 @@ Resources:
334359 tar czf witnesses.tar.gz cbmc.*.logfiles
335360 rm -rf cbmc.*.logfiles
336361 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
337377 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)
342382 bunzip2 *.xml.bz2
343383 perl -p -i -e \
344384 " s/^(<result.*version=\" [^\" ]*)/\$ 1:${PerfTestId}/" *.xml
@@ -348,10 +388,27 @@ Resources:
348388 " s/^(<result.*date=)\" [^\" ]*/\$ 1\" $start_date/" *.xml
349389 bzip2 *.xml
350390 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/
351400 fi
352401 aws s3 cp logs-$t \
353402 s3://${S3Bucket}/${PerfTestId}/$cfg/logs-$t/ \
354403 --recursive
404+ for wc in *-witnesses.xml
405+ do
406+ wcp=$(echo $wc | sed 's/-witnesses.xml$//')
407+ rm -rf $wcp-logs-$t/*.logfiles
408+ aws s3 cp $wcp-logs-$t \
409+ s3://${S3Bucket}/${PerfTestId}/$cfg/$wcp-logs-$t/ \
410+ --recursive
411+ done
355412 else
356413 rm -f gmon.sum gmon.out *.gmon.out.*
357414 ../benchexec/bin/benchexec cbmc.xml --no-container \
0 commit comments