Bug#948559: double-conversion: Please make autopkgtests cross-test-friendly

Steve Langasek steve.langasek at canonical.com
Fri Jan 10 06:32:36 GMT 2020


Package: double-conversion
Version: 3.1.5-4
Severity: minor
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu focal ubuntu-patch

Hi Mo,

In Ubuntu, we are in the process of moving the i386 architecture to a
compatibility-only layer on amd64, and therefore we are also moving our
autopkgtest infrastructure to test i386 binaries in a cross-environment.

This requires changes to some tests so that they are cross-aware and can do
the right thing.

The double-conversion tests currently fail in this environment, because
there are build tests that do not invoke the toolchain in a cross-aware
manner.  I've verified that the attached patch lets the tests successfully
build (and run) i386 tests on an amd64 host.

As part of the patch I am dropping the first of the two tests listed in
debian/tests/control, after determining that the two tests are redundant
with one another since both are just building and running the test suite.

Note that upstream autopkgtest doesn't currently set DEB_HOST_ARCH so this
is a complete no-op in Debian for the moment.  Support for cross-testing in
autopkgtest is currently awaiting review at
https://salsa.debian.org/ci-team/autopkgtest/merge_requests/69 and once
landed, will still have no effect unless autopkgtest is invoked with a '-a'
option.  So this change should be safe to land in your package despite this
not being upstream in autopkgtest.

Thanks for considering,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru double-conversion-3.1.5/debian/tests/control double-conversion-3.1.5/debian/tests/control
--- double-conversion-3.1.5/debian/tests/control	2019-07-09 19:40:33.000000000 -0700
+++ double-conversion-3.1.5/debian/tests/control	2020-01-09 22:28:28.000000000 -0800
@@ -1,7 +1,3 @@
-# build and run upstream unit tests
-Test-Command: g++ test/cctest/*.cc -ldouble-conversion -o run_tests; make test
-Depends: @, build-essential
-
 Tests: unittest.sh
 Depends: @, build-essential
 
diff -Nru double-conversion-3.1.5/debian/tests/unittest.sh double-conversion-3.1.5/debian/tests/unittest.sh
--- double-conversion-3.1.5/debian/tests/unittest.sh	2019-11-23 22:40:08.000000000 -0800
+++ double-conversion-3.1.5/debian/tests/unittest.sh	2020-01-09 22:28:13.000000000 -0800
@@ -3,18 +3,24 @@
 
 elfname="run_tests"
 
+if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
+    CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
+else
+    CROSS_COMPILE=
+fi
+
 # compile src into object files
 srcs=$(find test/cctest -type f -name '*.cc' -print)
 for src in $srcs; do
 	if ! test -r ${src%.cc}.o; then
-		g++ -march=native -c $src -o ${src%.cc}.o
+		${CROSS_COMPILE}g++ -march=native -c $src -o ${src%.cc}.o
 		echo CXX $src
 	fi
 done
 
 # link
 objs=$(find test/cctest -type f -name '*.o' -print)
-g++ -o $elfname $objs -ldouble-conversion
+${CROSS_COMPILE}g++ -o $elfname $objs -ldouble-conversion
 echo LD $elfname
 
 # execute


More information about the debian-science-maintainers mailing list