-
Notifications
You must be signed in to change notification settings - Fork 53
Sample‐Based Testing
Martin Suda edited this page Mar 28, 2024
·
6 revisions
Thanks to the hard work of Martin Suda, we tools for randomly testing Vampire over its many options and thereby finding crashes.
To do this, you need the following points:
- Build Vampire in a debug configuration. Release works too, but you typically want to trap assertion violations here.
- Run Vampire over an appropriate set of problems that you care about, such as the FOF fragment of TPTP. You may find tools such as GNU Parallel useful here.
- Sample random strategies using a sampler file with e.g.
--sample_strategy samplerFOL.txt
. We have some prebuilt sampler files insamplers/
.
A suitable pattern for finding problems is viola\|SIG\|error
.
(error
for USER_ERRORs, but careful, gives some false positives on SMTLIB.)
- Use randomised options, e.g.
-si on -rtra on
to further randomise Vampire's execution. - Use a few different random seeds with
--random_seed N
. - Try with a small resource limit such as
-i 100
at first, then increment in orders of magnitude up to maybe-i 10000
.