Shadow is made available in a binary form, pre-installed in a virtual machine. For more details on Shadow and the benchmarks, please see the ICSE’16 paper.

Virtual machine

The VM comes with “shadowvm” user, for whom the password is the same as the project name (all lower case letters). All the benchmark applications and the necessary infrastructure have been pre-installed under the VM.

The VM was prepared under VirtualBox and is based on Ubuntu 14 (the same major version as used in our paper).

Click here to download the virtual machine (name: Shadow-VM_clean.ova, size: 4.4GB, md5: 663dc4184378a1c76aadb2756a1c9470).

You can reproduce the experiments under the provided VM. The experiments were re-run and the results are stored under the VM.

Caveat: Some of the experiments require several tens of GB of the hard drive space. Please keep that in mind when running under VM.

If you have any further questions about the VM or you spot an issue, please contact Tomasz Kuchta.

Directory structure

  • /home/shadowvm : the home directory for the “shadowvm” user

  • /home/shadowvm/shadow : the main directory of interest

  • /home/shadowvm/shadow/kleeDeploy : contains packages that are necessary for KLEE deployment (Shadow is based on KLEE)

  • /home/shadowvm/shadow/shadow-llvm-tools : contains helper code, most notably the klee_change_macros.h header that provides the implementation of the change() macro.

  • /home/shadowvm/shadow/klee-change : contains the binary distribution of Shadow.

  • /home/shadowvm/shadow/shadow-test : contains the infrastructure (necessary scripts and patches) and the Coreutils revisions under test

Re-running experiments

The results of the experiments reported in the paper can be found under /home/shadowvm/shadow/results.tar.gz. Additionally, the experiments have been re-run under the VM and the results are stored under /home/shadowvm/shadow/resultsVM.tar.gz

If you would like to reproduce the experiments:

  • go to /home/shadowvm/shadow

  • run ./run-all.sh (note: the experiments will take several days to to run sequentially)

  • the results are stored in /home/shadowvm/shadow/shadow-test/test-logs