Skip to content

uci-plrg/iotcheck-vagrant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

Vagrant for IoTCheck

Please read our paper before using IoTCheck.

Understanding and Automatically Detecting Conflicting Interactions between Smart Home Applications
Rahmadi Trimananda, Seyed Amir Hossein Aqajari, Jason Chuang, Brian Demsky, Guoqing Harry Xu, and Shan Lu,
Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering 2020 (FSE 2020).

We have packaged IoTCheck using Vagrant 1.8.1. We installed and ran Vagrant on Ubuntu 16.04.6 LTS (Xenial Xerus) and Ubuntu 18.04.4 LTS (Bionic Beaver). Nevertheless, Vagrant can run on various operating systems (Linux, Mac OS, Windows, etc.). For more information on how to run Vagrant, please consult its documentation.

The provided Vagrantfile and bootstrap.sh provisioning script will prepare the environment with the required packages to run IoTCheck. We have set up the Vagrant configuration to create a VM that uses 24GB of memory. You can change that by changing the line in the Vagrantfile that contains "--memory", "24552". For our experiments with IoTCheck, we set JPF to use up to 20GB of memory, so a VM with 24GB of memory should be sufficient. Nevertheless, one could change the setup to run Vagrant even with memory as low as 4GB, i.e., "--memory", "4096". JPF could still run simple testcases with the available memory, but it would terminate early when running out of memory.

  1. In order for Vagrant to run, we should first make sure that the VT-d option for virtualization is enabled in BIOS.

  2. Then, we should download and install Vagrant, if we do not have Vagrant ready on our machine.

    $ sudo apt-get install virtualbox
    $ sudo apt-get install vagrant
  1. We also need to check out this repository into our machine.
    $ git clone https://github.com/uci-plrg/iotcheck-vagrant.git
  1. Next, we run Vagrant inside the iotcheck-vagrant folder. Vagrant will download IoTCheck and perform the setup.
    iotcheck-vagrant $ vagrant up
  1. When the provisioning is done and Vagrant is up, we need to ssh into the running Vagrant VM.
    iotcheck-vagrant $ vagrant ssh

To run the experiments please read README.md in the folder iotcheck or on the IoTCheck Github page. If you have any questions regarding IoTCheck, please do not hesitate to contact the main author of the paper.