[PATCH] ci: support Travis CI's aarch64 builds

Dmitry V. Levin ldv at altlinux.org
Tue Nov 5 23:07:47 UTC 2019


On Tue, Nov 05, 2019 at 07:43:07PM +0100, Paul Chaignon wrote:
> Travis CI now supports aarch64 builds, launched with the new "arch: arm64"
> tag.  These builds are running inside LXD only for the moment.
> 
> The aarch64 builds tend to be a lot slower than their x86_64 counterparts,
> so several timeout values need to be increased.  In addition, the
> strace-DDD test fails under LXD because of unexpected content in the
> /proc/[pid]/stat file (process group ID and session ID are 0).
> 
> * .travis.yml (matrix): add aarch64 builds and mark previous builds as
> amd64.
> * ci/install-dependencies.sh: install packages for aarch64 builds
> * ci/run-build-and-tests.sh: disable mpers and strace-DDD test for aarch64.
> * tests/init.sh (TIMEOUT_DURATION): Increase timeout for the slower
> aarch64 builds.
> * tests/umount2.c (main): allow EACCESS error code inside LXD.

Nice.

[...]
> diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
> index f52bf5cd..1f1de42d 100755
> --- a/ci/run-build-and-tests.sh
> +++ b/ci/run-build-and-tests.sh
> @@ -27,6 +27,12 @@ case "${TARGET-}" in
>  		CC="$CC -m32"
>  		DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --build=i686-pc-linux-gnu --target=i686-pc-linux-gnu"
>  		;;
> +	aarch64)
> +		# The new Travis CI aarch64 builds under LXD have rubbish data in
> +		# the /proc/[pid]/stat file required by strace-DDD.test.
> +		sed -ri 's/(XFAIL_TESTS_ =.*)$/\1 strace-DDD.test/' tests/Makefile.am
> +		DISTCHECK_CONFIGURE_FLAGS="--disable-mpers"

I think we should use --enable-mpers=check instead,
otherwise all this dance around gcc-multilib-arm-linux-gnueabihf
has little meaning.

Btw, there is an unfinished work in esyr/aarch64 branch to have
a usable mpers on aarch64.

Wrt strace-DDD.test, do you think we could diagnose the oddness
inside the test and framework_skip_ it in a usual way?

[...]
> diff --git a/tests/umount2.c b/tests/umount2.c
> index 8114d098..8dd990f9 100644
> --- a/tests/umount2.c
> +++ b/tests/umount2.c
> @@ -6,6 +6,7 @@
>   */
>  
>  #include "tests.h"
> +#include <errno.h>
>  #include <stdio.h>
>  #include <unistd.h>
>  #include <sys/stat.h>
> @@ -28,7 +29,7 @@ main(void)
>  		perror_msg_and_fail("mkdir: %s", sample);
>  	(void) syscall(TEST_SYSCALL_NR, sample, 31);
>  	printf("%s(\"%s\", MNT_FORCE|MNT_DETACH|MNT_EXPIRE|UMOUNT_NOFOLLOW|0x10)"
> -	       " = -1 EINVAL (%m)\n", TEST_SYSCALL_STR, sample);
> +	       " = -1 %s (%m)\n", TEST_SYSCALL_STR, sample, (errno == EACCES)? "EACCES" : "EINVAL");
>  	if (rmdir(sample))
>  		perror_msg_and_fail("rmdir: %s", sample);
>  	puts("+++ exited with 0 +++");

This test was written back in 2015 when we didn't have sprintrc(),
now we can use it instead.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20191106/113c8e90/attachment.bin>


More information about the Strace-devel mailing list