Эх сурвалжийг харах

modify the CI setup to run tests on the thumb targets

Jorge Aparicio 8 жил өмнө
parent
commit
3f723d1141

+ 4 - 4
ci/docker/thumbv6m-none-eabi/Dockerfile → ci/docker/thumbv6m-linux-eabi/Dockerfile

@@ -1,9 +1,9 @@
 FROM ubuntu:16.04
 RUN apt-get update && \
     apt-get install -y --no-install-recommends \
-    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev
+    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev qemu-user-static
 RUN curl -LSfs https://japaric.github.io/trust/install.sh | \
     sh -s -- --git japaric/xargo --tag v0.3.1 --target x86_64-unknown-linux-gnu --to /usr/bin
-ENV AR_thumbv6m_none_eabi=arm-none-eabi-ar \
-    CARGO_TARGET_THUMBV6M_NONE_EABI_LINKER=arm-none-eabi-gcc \
-    CC_thumbv6m_none_eabi=arm-none-eabi-gcc \
+ENV AR_thumbv6m_linux_eabi=arm-none-eabi-ar \
+    CARGO_TARGET_THUMBV6M_LINUX_EABI_LINKER=arm-none-eabi-gcc \
+    CC_thumbv6m_linux_eabi=arm-none-eabi-gcc \

+ 4 - 4
ci/docker/thumbv7em-none-eabihf/Dockerfile → ci/docker/thumbv7em-linux-eabi/Dockerfile

@@ -1,9 +1,9 @@
 FROM ubuntu:16.04
 RUN apt-get update && \
     apt-get install -y --no-install-recommends \
-    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev
+    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev qemu-user-static
 RUN curl -LSfs https://japaric.github.io/trust/install.sh | \
     sh -s -- --git japaric/xargo --tag v0.3.1 --target x86_64-unknown-linux-gnu --to /usr/bin
-ENV AR_thumbv7em_none_eabihf=arm-none-eabi-ar \
-    CARGO_TARGET_THUMBV7EM_NONE_EABIHF_LINKER=arm-none-eabi-gcc \
-    CC_thumbv7em_none_eabihf=arm-none-eabi-gcc \
+ENV AR_thumbv7em_linux_eabi=arm-none-eabi-ar \
+    CARGO_TARGET_THUMBV7EM_LINUX_EABI_LINKER=arm-none-eabi-gcc \
+    CC_thumbv7em_linux_eabi=arm-none-eabi-gcc \

+ 4 - 4
ci/docker/thumbv7m-none-eabi/Dockerfile → ci/docker/thumbv7em-linux-eabihf/Dockerfile

@@ -1,9 +1,9 @@
 FROM ubuntu:16.04
 RUN apt-get update && \
     apt-get install -y --no-install-recommends \
-    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev
+    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev qemu-user-static
 RUN curl -LSfs https://japaric.github.io/trust/install.sh | \
     sh -s -- --git japaric/xargo --tag v0.3.1 --target x86_64-unknown-linux-gnu --to /usr/bin
-ENV AR_thumbv7m_none_eabi=arm-none-eabi-ar \
-    CARGO_TARGET_THUMBV7M_NONE_EABI_LINKER=arm-none-eabi-gcc \
-    CC_thumbv7m_none_eabi=arm-none-eabi-gcc \
+ENV AR_thumbv7em_linux_eabihf=arm-none-eabi-ar \
+    CARGO_TARGET_THUMBV7EM_LINUX_EABIHF_LINKER=arm-none-eabi-gcc \
+    CC_thumbv7em_linux_eabihf=arm-none-eabi-gcc \

+ 4 - 4
ci/docker/thumbv7em-none-eabi/Dockerfile → ci/docker/thumbv7m-linux-eabi/Dockerfile

@@ -1,9 +1,9 @@
 FROM ubuntu:16.04
 RUN apt-get update && \
     apt-get install -y --no-install-recommends \
-    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev
+    ca-certificates curl gcc gcc-arm-none-eabi libc6-dev libcurl4-openssl-dev libssh2-1 libnewlib-dev qemu-user-static
 RUN curl -LSfs https://japaric.github.io/trust/install.sh | \
     sh -s -- --git japaric/xargo --tag v0.3.1 --target x86_64-unknown-linux-gnu --to /usr/bin
-ENV AR_thumbv7em_none_eabi=arm-none-eabi-ar \
-    CARGO_TARGET_THUMBV7EM_NONE_EABI_LINKER=arm-none-eabi-gcc \
-    CC_thumbv7em_none_eabi=arm-none-eabi-gcc \
+ENV AR_thumbv7m_linux_eabi=arm-none-eabi-ar \
+    CARGO_TARGET_THUMBV7M_LINUX_EABI_LINKER=arm-none-eabi-gcc \
+    CC_thumbv7m_linux_eabi=arm-none-eabi-gcc \

+ 28 - 2
ci/run.sh

@@ -3,8 +3,34 @@ set -ex
 # Test our implementation
 case $1 in
     thumb*)
-        xargo build --target $1
-        xargo build --target $1 --release
+        for t in $(ls tests); do
+            t=${t%.rs}
+
+            # TODO(#154) enable these tests when aeabi_*mul are implemented
+            case $t in
+                powi*f2)
+                    continue
+                    ;;
+            esac
+
+            # FIXME(#150) debug assertion in divmoddi4
+            case $1 in
+                thumbv6m-*)
+                    case $t in
+                        divdi3 | divmoddi4 | moddi3 | modsi3 | udivmoddi4 | udivmodsi4 | umoddi3 | \
+                            umodsi3)
+                            continue
+                            ;;
+                    esac
+                ;;
+            esac
+
+            xargo test --test $t --target $1 --features mem --no-run
+            qemu-arm-static target/${1}/debug/$t-*
+
+            xargo test --test $t --target $1 --features mem --no-run --release
+            qemu-arm-static target/${1}/release/$t-*
+        done
         ;;
     *)
         cargo test --no-default-features --target $1