Viper Manager is a command-line tool for managing Viper files and benchmarking them (using Silicon). It supports benchmarking and mutation testing
- Tested with Java 17
- sbt 1.6.2
- Git (for fetching Silicon versions)
Run the tool via sbt:
sbt "run benchmark --silicon-commit HASH --warmup SECONDS --num-runs N [--mutate] [--randomize-seed] FILE [SILICON_ARGS...]"
sbt "run mutate [--num-mutants N] FILE"
sbt "run chop FILE"
sbt "run --help"Alternatively create a fat jar with:
sbt assemblyYou can run tests with:
sbt test- benchmark : Measure execution time of a Viper file. (Use –mutations to apply only selected mutations)
- mutate : Generate mutants of a Viper file. Use –mutations to select specific mutations. (Only renaming and argument-reordering for now)
- chop : Split a Viper file into individual files each containing an important member and save each as member_<i>_of_<original_name>.
sbt "run benchmark --silicon-commit master src/main.vpr"
sbt "run mutate --num-mutants 5 src/main.vpr"
sbt "run mutate --mutations renaming --num-mutants 5 src/main.vpr"
sbt "run chop src/main.vpr"- Search command to find Viper files with specified characteristics.