Use "arch-test" to actively test as many binaries as the current host can support
This commit is contained in:
parent
06d4f12fae
commit
584b134f74
|
|
@ -30,6 +30,7 @@ RUN set -eux; \
|
|||
gcc-riscv64-linux-gnu \
|
||||
gcc-s390x-linux-gnu \
|
||||
\
|
||||
arch-test \
|
||||
file \
|
||||
; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
|
@ -56,48 +57,57 @@ COPY . .
|
|||
RUN set -ex; \
|
||||
make clean all test \
|
||||
TARGET_ARCH='amd64' \
|
||||
CROSS_COMPILE='x86_64-linux-gnu-'
|
||||
CROSS_COMPILE='x86_64-linux-gnu-' \
|
||||
ARCH_TEST='amd64'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='arm32v5' \
|
||||
CROSS_COMPILE='arm-linux-gnueabi-'
|
||||
CROSS_COMPILE='arm-linux-gnueabi-' \
|
||||
ARCH_TEST='armel'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='arm32v7' \
|
||||
CROSS_COMPILE='arm-linux-gnueabihf-'
|
||||
CROSS_COMPILE='arm-linux-gnueabihf-' \
|
||||
ARCH_TEST='armhf'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='arm64v8' \
|
||||
CROSS_COMPILE='aarch64-linux-gnu-'
|
||||
CROSS_COMPILE='aarch64-linux-gnu-' \
|
||||
ARCH_TEST='arm64'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all test \
|
||||
TARGET_ARCH='i386' \
|
||||
CROSS_COMPILE='i686-linux-gnu-'
|
||||
CROSS_COMPILE='i686-linux-gnu-' \
|
||||
ARCH_TEST='i386'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='mips64le' \
|
||||
CROSS_COMPILE='mips64el-linux-gnuabi64-'
|
||||
CROSS_COMPILE='mips64el-linux-gnuabi64-' \
|
||||
ARCH_TEST='mips64el'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='ppc64le' \
|
||||
CROSS_COMPILE='powerpc64le-linux-gnu-' \
|
||||
CFLAGS+='-mlong-double-64'
|
||||
CFLAGS+='-mlong-double-64' \
|
||||
ARCH_TEST='ppc64el'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='riscv64' \
|
||||
CROSS_COMPILE='riscv64-linux-gnu-'
|
||||
CROSS_COMPILE='riscv64-linux-gnu-' \
|
||||
ARCH_TEST='riscv64'
|
||||
|
||||
RUN set -ex; \
|
||||
make clean all \
|
||||
make clean all test \
|
||||
TARGET_ARCH='s390x' \
|
||||
CROSS_COMPILE='s390x-linux-gnu-'
|
||||
CROSS_COMPILE='s390x-linux-gnu-' \
|
||||
ARCH_TEST='s390x'
|
||||
|
||||
RUN find \( -name 'hello' -or -name 'hello.txt' \) -exec file '{}' + -exec ls -lh '{}' +
|
||||
|
||||
|
|
|
|||
9
Makefile
9
Makefile
|
|
@ -1,6 +1,7 @@
|
|||
SHELL := bash -Eeuo pipefail
|
||||
|
||||
TARGET_ARCH := amd64
|
||||
export ARCH_TEST :=
|
||||
C_TARGETS := $(addsuffix hello, $(wildcard $(TARGET_ARCH)/*/))
|
||||
|
||||
export CFLAGS := -Os -fdata-sections -ffunction-sections -s
|
||||
|
|
@ -48,6 +49,10 @@ clean:
|
|||
.PHONY: test
|
||||
test: $(C_TARGETS)
|
||||
@for b in $^; do \
|
||||
( set -x && "./$$b" ); \
|
||||
( set -x && "./$$b" | grep -q '"'"$$(basename "$$(dirname "$$b")")"'"' ); \
|
||||
if [ -n "$$ARCH_TEST" ] && command -v arch-test > /dev/null && arch-test "$$ARCH_TEST" > /dev/null; then \
|
||||
( set -x && "./$$b" ); \
|
||||
( set -x && "./$$b" | grep -q '"'"$$(basename "$$(dirname "$$b")")"'"' ); \
|
||||
else \
|
||||
echo >&2 "warning: $$TARGET_ARCH ($$ARCH_TEST) not supported; skipping test"; \
|
||||
fi; \
|
||||
done
|
||||
|
|
|
|||
Loading…
Reference in New Issue