Hands-on

IIDEAA tools are open-source and freely-available on GitHub repositories, under the AGPL 3.0 license. Please, obtain a copy and read the license befor staring to use it.

To facilitate the user who wants to use IIDEAA, a Docker image has been arranged containing all the necessary tools, as well as some example projects that illustrate how to configure Chimera and Bellerophon to cooperate to approximate a given application.

Using the Docker Container

First of all you will need a Docker installation. If not present you can easily install it using this script.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ sudo usermod -aG docker your-user

Build your docker image

Now, you are ready to build your IIDEAA Docker image from scratch, using the following commands:

$ git clone https://github.com/mariobarbareschi/iideaa-docker
$ cd iideaa-docker
$ chmod +x build_iideaa_docker
$ ./build_iideaa_docker

Grab a coffee: it will take several minutes to download and build everything.

Run a container

It is recomended to spawn a container with:

$ ./run_iideaa_docker

This script will run the container with zsh as default shell and it will mount the folder /root/mnt of the container onto the folder /home/user/iideaa_shared of the host.

Now you have an interactive shell in which you can use clang-chimera and bellerophon tools. You can use the container folder /root/mnt to share data with host machine outside the container.

Example

You can test IIDEAA looking at the project folder in /opt/projects. In the following, **k-means** example will be considered.

Execute Clang-Chimera:

# cd /opt/projects/k-means/chimera
# ./launch.sh

Now check the mutants in /opt/projects/k-means/chimera/output and run Bellerophon:

# cd ../bellerophon
# ./launch_bellerophon.sh

The output of Bellerophon will be displayed on terminal.