Reproduction Image for Article 'Rustlantis: Randomized Differential Testing of the Rust Compiler'
Description
Docker image to reproduce evaluations in OOPSLA 2024 paper Rustlantis: Randomized Differential Testing of the Rust Compiler.
Requirements
- An x86_64 platform with at least 16GB of memory, able to compile Rust and LLVM from source
- Docker
No network connection is required.
Installation
Run docker import rustlantis-artifact.tar.gz rustlantis-artifact to import the image. Run docker run -it --init rustlantis-artifact /bin/bash to start a shell in the container using the image.
Usage
Table 1
Here is a selection of Rustlantis commit version, seed, and Rust toolchain version originally used to discover bugs listed in Table 1.
| Bug # | Rustlantis commit | Seed | Rust toolchain |
| 12 | f118398d |
1648716 | nightly-2023-07-01 |
| 13 | 04dfe128 |
6234375 | nightly-2023-07-01 |
| 14 | ebdd7f0d |
717678 | nightly-2023-07-01 |
| 17 | d1bd718d |
257902 | nightly-2023-12-01 |
|
19 |
3b0c5a7f |
1717541 | nightly-2024-02-01 |
|
20 |
f94c480a |
1851685 | nightly-2023-07-01 |
|
22 |
9329ba5f |
3440904 | nightly-2024-03-01 |
To reproduce, runcd /root/rustlantisgit checkout [Rustlanits commit]cargo build --releaseLLVM_TOOLCHAIN=[Rust toolchain] ./fuzz-one.sh [seed]
The script will print the hash difference, and save a debug version of the program under repros/[seed]-debug.rs
Table 2
To reproduce Table 2, run
cd root./controlled_experiment.shpython3 controlled_experiment_stats.py
Figure 10
To reproduce Figure 10, run
cd /root./measure_coverage.shpython3 coverage_graph.py
Notes
Files
Files
(7.4 GB)
| Name | Size | |
|---|---|---|
|
md5:1823264bb629b1a8a9ba8b1e8b722c77
|
7.4 GB | Download |
Additional details
Related works
- Cites
- Software: 10.1145/3597926.3604919 (DOI)
Software
- Repository URL
- https://github.com/cbeuw/rustlantis
- Programming language
- Rust