]> git.lizzy.rs Git - rust.git/blob - src/ci/docker/host-x86_64/test-various/Dockerfile
Add QEMU test for x86_64-unknown-uefi
[rust.git] / src / ci / docker / host-x86_64 / test-various / Dockerfile
1 FROM ubuntu:20.04
2
3 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
4   g++ \
5   make \
6   ninja-build \
7   file \
8   curl \
9   ca-certificates \
10   python3 \
11   git \
12   cmake \
13   sudo \
14   gdb \
15   libssl-dev \
16   pkg-config \
17   xz-utils \
18   wget \
19   patch \
20   ovmf \
21   qemu-system-x86
22
23 RUN curl -sL https://nodejs.org/dist/v15.14.0/node-v15.14.0-linux-x64.tar.xz | \
24   tar -xJ
25
26 WORKDIR /build/
27 COPY scripts/musl-patch-configure.diff /build/
28 COPY scripts/musl-toolchain.sh /build/
29 RUN bash musl-toolchain.sh x86_64 && rm -rf build
30 WORKDIR /
31
32 COPY scripts/sccache.sh /scripts/
33 RUN sh /scripts/sccache.sh
34
35 # We are disabling CI LLVM since this builder needs to build LLD, which is
36 # currently unsupported when downloading pre-built LLVM.
37 ENV NO_DOWNLOAD_CI_LLVM 1
38
39 ENV RUST_CONFIGURE_ARGS \
40   --musl-root-x86_64=/usr/local/x86_64-linux-musl \
41   --set build.nodejs=/node-v15.14.0-linux-x64/bin/node \
42   --set rust.lld
43
44 # Some run-make tests have assertions about code size, and enabling debug
45 # assertions in libstd causes the binary to be much bigger than it would
46 # otherwise normally be. We already test libstd with debug assertions in lots of
47 # other contexts as well
48 ENV NO_DEBUG_ASSERTIONS=1
49 ENV NO_OVERFLOW_CHECKS=1
50
51 ENV WASM_TARGETS=wasm32-unknown-unknown
52 ENV WASM_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $WASM_TARGETS \
53   src/test/run-make \
54   src/test/ui \
55   src/test/mir-opt \
56   src/test/codegen-units \
57   library/core
58
59 ENV NVPTX_TARGETS=nvptx64-nvidia-cuda
60 ENV NVPTX_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $NVPTX_TARGETS \
61   src/test/run-make \
62   src/test/assembly
63
64 ENV MUSL_TARGETS=x86_64-unknown-linux-musl \
65     CC_x86_64_unknown_linux_musl=x86_64-linux-musl-gcc \
66     CXX_x86_64_unknown_linux_musl=x86_64-linux-musl-g++
67 ENV MUSL_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $MUSL_TARGETS
68
69 COPY host-x86_64/test-various/uefi_qemu_test /uefi_qemu_test
70 ENV UEFI_TARGETS=x86_64-unknown-uefi
71 ENV UEFI_SCRIPT python3 /checkout/x.py --stage 2 build --host='' --target $UEFI_TARGETS && \
72   python3 -u /uefi_qemu_test/run.py
73
74 ENV SCRIPT $WASM_SCRIPT && $NVPTX_SCRIPT && $MUSL_SCRIPT && $UEFI_SCRIPT