Your message dated Fri, 5 Dec 2014 07:30:03 +0100
with message-id <[email protected]>
and subject line Re: Bug#739020: [Pkg-systemd-maintainers] Bug#739020: run
tests during build
has caused the Debian Bug report #739020,
regarding run tests during build
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
739020: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739020
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: systemd
Version: 204-7
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: origin-ubuntu ubuntu-patch trusty
Hello,
systemd has some unit tests (with "make check"). Unfortunately not all
of them work in the rather restricted environment of our buildds, but
most of them do. It would be nice to at least run those, to pick up
regressions on particular architectures. Of course, over time, I
also hope that we can fix those tests upstream to work better during
package build.
The main ingredient is a patch to allow specifying a different path
for /etc/machine-id, as that does not yet usually exist (particularly,
not in buildd chroots). Upstream rejected the patch back then
(https://bugs.freedesktop.org/show_bug.cgi?id=62344), but it's rather
simple, so doesn't hurt too bad for a distro patch.
Are you interested in that for Debian? If so, I'll attach the three
git formatted patches for that (against current packaging git).
Thanks for considering,
Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
From d594684c0f4ab6bc79d52b727c916e3e72d2d3be Mon Sep 17 00:00:00 2001
From: Martin Pitt <[email protected]>
Date: Fri, 15 Mar 2013 08:27:43 +0100
Subject: [PATCH 1/3] Add env variable for machine ID path
During package build, in minimal chroots, or other systems which do not already
have an /etc/machine-id we get six test failures. Introduce a
$SYSTEMD_MACHINE_ID_PATH environment variable which can specify a location
other than /etc/machine-id, so that the unit tests are independent from the
environment.
https://bugs.freedesktop.org/show_bug.cgi?id=62344
---
debian/changelog | 8 ++++++++
src/libsystemd-id128/sd-id128.c | 6 +++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index 0490e3d..bd12491 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,16 @@
systemd (204-8) UNRELEASED; urgency=low
+ [ Michael Stapelberg ]
* move manpages from systemd to libsystemd-*-dev as appropriate
(Closes: #738723)
+ [ Martin Pitt ]
+ * Add env variable for machine ID path. During package build, in minimal
+ chroots, or other systems which do not already have an /etc/machine-id we
+ get six test failures. Introduce a $SYSTEMD_MACHINE_ID_PATH environment
+ variable which can specify a location other than /etc/machine-id, so that
+ the unit tests are independent from the environment.
+
-- Michael Stapelberg <[email protected]> Thu, 13 Feb 2014 22:52:45 +0100
systemd (204-7) unstable; urgency=low
diff --git a/src/libsystemd-id128/sd-id128.c b/src/libsystemd-id128/sd-id128.c
index 64ddd09..47351c8 100644
--- a/src/libsystemd-id128/sd-id128.c
+++ b/src/libsystemd-id128/sd-id128.c
@@ -115,6 +115,7 @@ _public_ int sd_id128_get_machine(sd_id128_t *ret) {
ssize_t k;
unsigned j;
sd_id128_t t;
+ const char *machine_id_path;
if (!ret)
return -EINVAL;
@@ -124,7 +125,10 @@ _public_ int sd_id128_get_machine(sd_id128_t *ret) {
return 0;
}
- fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+ machine_id_path = getenv("SYSTEMD_MACHINE_ID_PATH");
+ if (machine_id_path == NULL)
+ machine_id_path = "/etc/machine-id";
+ fd = open(machine_id_path, O_RDONLY|O_CLOEXEC|O_NOCTTY);
if (fd < 0)
return -errno;
--
1.9.rc1
From eace7af7b5a98ac26945e024f01145898f059c39 Mon Sep 17 00:00:00 2001
From: Martin Pitt <[email protected]>
Date: Sat, 15 Feb 2014 00:26:27 +0100
Subject: [PATCH 2/3] debian/rules: Run unit tests during package build.
Don't run them under fakeroot as that hangs some tests, and supply a local
machine id file.
---
debian/changelog | 2 ++
debian/rules | 11 +++++++++++
2 files changed, 13 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index bd12491..1722ce3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,8 @@ systemd (204-8) UNRELEASED; urgency=low
get six test failures. Introduce a $SYSTEMD_MACHINE_ID_PATH environment
variable which can specify a location other than /etc/machine-id, so that
the unit tests are independent from the environment.
+ * debian/rules: Run unit tests during package build. Don't run them under
+ fakeroot as that hangs some tests, and supply a local machine id file.
-- Michael Stapelberg <[email protected]> Thu, 13 Feb 2014 22:52:45 +0100
diff --git a/debian/rules b/debian/rules
index 677e3e2..06c9f48 100755
--- a/debian/rules
+++ b/debian/rules
@@ -218,3 +218,14 @@ ifeq (,$(findstring stage1,$(DEB_BUILD_PROFILES)))
else
dh $@ --with autoreconf,python2 $(BOOTSTRAP_DH_FLAGS)
endif
+
+override_dh_auto_test:
+ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS)))
+ # some tests hang under fakeroot, so disable fakeroot
+ echo "01234567890123456789012345678901" > build-deb/machine-id
+ env -u LD_PRELOAD SYSTEMD_MACHINE_ID_PATH=$(CURDIR)/build-deb/machine-id \
+ make -C build-deb check || ( \
+ cd build-deb; \
+ for f in test-*.log; do echo "==== $$f ===="; cat $$f; done; \
+ exit 1; )
+endif
--
1.9.rc1
From bfaa13d1fb1c10819919fe1e1cc63c2adc32ab8f Mon Sep 17 00:00:00 2001
From: Martin Pitt <[email protected]>
Date: Sat, 15 Feb 2014 01:11:00 +0100
Subject: [PATCH 3/3] Disable tests that fail on the buildds.
---
Makefile.am | 7 +------
debian/changelog | 1 +
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 610ed7c..90da178 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1095,16 +1095,12 @@ tests += \
test-strv \
test-path-util \
test-strxcpyx \
- test-unit-name \
test-unit-file \
- test-util \
test-date \
test-sleep \
test-replace-var \
- test-sched-prio \
test-calendarspec \
test-strip-tab-ansi \
- test-cgroup-util \
test-prioq \
test-fileio \
test-time \
@@ -2855,10 +2851,9 @@ tests += \
test-journal-send \
test-journal-syslog \
test-journal-match \
- test-journal-stream \
test-journal-verify \
test-mmap-cache \
- test-catalog
+ $(NULL)
pkginclude_HEADERS += \
src/systemd/sd-journal.h \
diff --git a/debian/changelog b/debian/changelog
index 1722ce3..0ad0da4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,7 @@ systemd (204-8) UNRELEASED; urgency=low
the unit tests are independent from the environment.
* debian/rules: Run unit tests during package build. Don't run them under
fakeroot as that hangs some tests, and supply a local machine id file.
+ * Disable tests that fail on the buildds.
-- Michael Stapelberg <[email protected]> Thu, 13 Feb 2014 22:52:45 +0100
--
1.9.rc1
signature.asc
Description: Digital signature
--- End Message ---
--- Begin Message ---
Version: 215-6
Current versions do run the tests during build.
Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
--- End Message ---