# Linux Tests
This repository contains utilities for running integration tests for Linux guests under Machina.

## Build
First install rust (follow the instructions of the rustup tool):
```
$ curl https://sh.rustup.rs -sSf | sh
$ source ~/.cargo/env
```

Next we add some new targets for cross-compiling and static linking. Rust supports statically linking libc by replacing the usual gnu libc with musl (see [The Rust Book: Advanced Linking](https://doc.rust-lang.org/1.9.0/book/advanced-linking.html)).
```
$ rustup target add x86_64-unknown-linux-musl
$ rustup target add aarch64-unknown-linux-musl
```

Lastly, run the build script for your desired architecture. This will invoke cargo for you as well as create an ext2 image in out/.
```
$ ./build.sh {arm64|x64}
```
