1# Small script to run tests for a target (or all targets) inside all the 2# respective docker images. 3 4set -ex 5 6run() { 7 echo $1 8 # use -f so we can use ci/ as build context 9 docker build -t libc -f ci/docker/$1/Dockerfile ci/ 10 mkdir -p target 11 if [ -w /dev/kvm ]; then 12 kvm="--volume /dev/kvm:/dev/kvm" 13 fi 14 docker run \ 15 --user `id -u`:`id -g` \ 16 --rm \ 17 --init \ 18 --volume $HOME/.cargo:/cargo \ 19 $kvm \ 20 --env CARGO_HOME=/cargo \ 21 --volume `rustc --print sysroot`:/rust:ro \ 22 --volume `pwd`:/checkout:ro \ 23 --volume `pwd`/target:/checkout/target \ 24 --env CARGO_TARGET_DIR=/checkout/target \ 25 --workdir /checkout \ 26 libc \ 27 ci/run.sh $1 28} 29 30if [ -z "$1" ]; then 31 for d in `ls ci/docker/`; do 32 run $d 33 done 34else 35 run $1 36fi 37