Add patches to ./run so we capture errors when i686 tests time out.
This commit is contained in:
parent
997d83ab66
commit
44225c4d9a
72
0001-.-run-Add-a-better-comment-describing-test-mode.patch
Normal file
72
0001-.-run-Add-a-better-comment-describing-test-mode.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
From 745e507c2fd06f9349212efe86f8143a1f0c5a0e Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Thu, 11 Jul 2013 12:53:28 +0100
|
||||||
|
Subject: [PATCH 1/2] ./run: Add a better comment describing --test mode.
|
||||||
|
|
||||||
|
This is just code motion, there is no functional change.
|
||||||
|
---
|
||||||
|
run.in | 49 ++++++++++++++++++++++++++-----------------------
|
||||||
|
1 file changed, 26 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/run.in b/run.in
|
||||||
|
index 5d9ad75..f49df8e 100755
|
||||||
|
--- a/run.in
|
||||||
|
+++ b/run.in
|
||||||
|
@@ -214,28 +214,31 @@ export GNOME_KEYRING_PID=
|
||||||
|
# Run the program.
|
||||||
|
if [ -z "$test_mode" ]; then
|
||||||
|
exec $libtool "$@"
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+# For tests (./run --test):
|
||||||
|
+# - redirect all output to a file, and only print the file if the
|
||||||
|
+# test fails
|
||||||
|
+# - print how long it takes to run the test
|
||||||
|
+
|
||||||
|
+pid=$$
|
||||||
|
+tmpout=$b/tmp/run-$pid
|
||||||
|
+rm -f $tmpout
|
||||||
|
+start_t="$(date +'%s')"
|
||||||
|
+$libtool "$@" > $tmpout 2>&1
|
||||||
|
+fail=$?
|
||||||
|
+end_t="$(date +'%s')"
|
||||||
|
+if [ "$fail" -eq 0 ]; then
|
||||||
|
+ # Test successful.
|
||||||
|
+ echo $(($end_t - $start_t)) seconds: "$@"
|
||||||
|
+elif [ "$fail" -eq 77 ]; then
|
||||||
|
+ # Tests return 77 to mean skipped.
|
||||||
|
+ cat $tmpout
|
||||||
|
else
|
||||||
|
- # For tests (./run --test), redirect all output to a file, and
|
||||||
|
- # only print the file if the test fails.
|
||||||
|
- pid=$$
|
||||||
|
- tmpout=$b/tmp/run-$pid
|
||||||
|
- rm -f $tmpout
|
||||||
|
- start_t="$(date +'%s')"
|
||||||
|
- $libtool "$@" > $tmpout 2>&1
|
||||||
|
- fail=$?
|
||||||
|
- end_t="$(date +'%s')"
|
||||||
|
- if [ "$fail" -eq 0 ]; then
|
||||||
|
- # Test successful.
|
||||||
|
- echo $(($end_t - $start_t)) seconds: "$@"
|
||||||
|
- elif [ "$fail" -eq 77 ]; then
|
||||||
|
- # Tests return 77 to mean skipped.
|
||||||
|
- cat $tmpout
|
||||||
|
- else
|
||||||
|
- # Test failed.
|
||||||
|
- echo "$b/run --test" "$@"
|
||||||
|
- cat $tmpout
|
||||||
|
- echo "$b/run: command failed with exit code $fail"
|
||||||
|
- fi
|
||||||
|
- rm -f $tmpout
|
||||||
|
- exit $fail
|
||||||
|
+ # Test failed.
|
||||||
|
+ echo "$b/run --test" "$@"
|
||||||
|
+ cat $tmpout
|
||||||
|
+ echo "$b/run: command failed with exit code $fail"
|
||||||
|
fi
|
||||||
|
+rm -f $tmpout
|
||||||
|
+exit $fail
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
54
0002-.-run-Timeout-tests-after-1-hour.patch
Normal file
54
0002-.-run-Timeout-tests-after-1-hour.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
From caab9f1e6f7ac0d8d5209c31854d640b807519ce Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Thu, 11 Jul 2013 12:58:45 +0100
|
||||||
|
Subject: [PATCH 2/2] ./run: Timeout tests after 1 hour.
|
||||||
|
|
||||||
|
No single test should run longer than 1 hour even on the slowest of
|
||||||
|
hardware. We are having a problem in Koji where a test hangs and then
|
||||||
|
we end up losing the output completely, so a timeout + print the log
|
||||||
|
to that point is much better.
|
||||||
|
---
|
||||||
|
run.in | 15 ++++++++++++++-
|
||||||
|
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/run.in b/run.in
|
||||||
|
index f49df8e..d8b2e03 100755
|
||||||
|
--- a/run.in
|
||||||
|
+++ b/run.in
|
||||||
|
@@ -220,12 +220,20 @@ fi
|
||||||
|
# - redirect all output to a file, and only print the file if the
|
||||||
|
# test fails
|
||||||
|
# - print how long it takes to run the test
|
||||||
|
+# - timeout if the test takes too long to run
|
||||||
|
+
|
||||||
|
+# Do we have Padraig's timeout utility (from coreutils)?
|
||||||
|
+if timeout --help >/dev/null 2>&1; then
|
||||||
|
+ # Timeout (SIGTERM) after 1 hour.
|
||||||
|
+ # Then send a second SIGKILL 30 seconds later.
|
||||||
|
+ timeout="timeout -k 30s 1h"
|
||||||
|
+fi
|
||||||
|
|
||||||
|
pid=$$
|
||||||
|
tmpout=$b/tmp/run-$pid
|
||||||
|
rm -f $tmpout
|
||||||
|
start_t="$(date +'%s')"
|
||||||
|
-$libtool "$@" > $tmpout 2>&1
|
||||||
|
+$timeout $libtool "$@" > $tmpout 2>&1
|
||||||
|
fail=$?
|
||||||
|
end_t="$(date +'%s')"
|
||||||
|
if [ "$fail" -eq 0 ]; then
|
||||||
|
@@ -234,6 +242,11 @@ if [ "$fail" -eq 0 ]; then
|
||||||
|
elif [ "$fail" -eq 77 ]; then
|
||||||
|
# Tests return 77 to mean skipped.
|
||||||
|
cat $tmpout
|
||||||
|
+elif [ "$fail" -eq 124 ]; then
|
||||||
|
+ # Timed out.
|
||||||
|
+ echo "$b/run --test" "$@"
|
||||||
|
+ cat $tmpout
|
||||||
|
+ echo "$b/run: command timed out after 1 hour"
|
||||||
|
else
|
||||||
|
# Test failed.
|
||||||
|
echo "$b/run --test" "$@"
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
@ -12,7 +12,7 @@ Summary: Access and modify virtual machine disk images
|
|||||||
Name: libguestfs
|
Name: libguestfs
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 1.23.8
|
Version: 1.23.8
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
|
|
||||||
# Source and patches.
|
# Source and patches.
|
||||||
@ -20,6 +20,8 @@ URL: http://libguestfs.org/
|
|||||||
Source0: http://libguestfs.org/download/1.23-development/%{name}-%{version}.tar.gz
|
Source0: http://libguestfs.org/download/1.23-development/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
Patch1: 0001-golang-Fix-it-so-it-builds-if-libguestfs-is-not-inst.patch
|
Patch1: 0001-golang-Fix-it-so-it-builds-if-libguestfs-is-not-inst.patch
|
||||||
|
Patch2: 0001-.-run-Add-a-better-comment-describing-test-mode.patch
|
||||||
|
Patch3: 0002-.-run-Timeout-tests-after-1-hour.patch
|
||||||
|
|
||||||
# Basic build requirements:
|
# Basic build requirements:
|
||||||
BuildRequires: perl(Pod::Simple)
|
BuildRequires: perl(Pod::Simple)
|
||||||
@ -537,6 +539,8 @@ for %{name}.
|
|||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
|
||||||
if [ "$(getenforce | tr '[A-Z]' '[a-z]')" != "disabled" ]; then
|
if [ "$(getenforce | tr '[A-Z]' '[a-z]')" != "disabled" ]; then
|
||||||
# For sVirt to work, the local temporary directory we use in the
|
# For sVirt to work, the local temporary directory we use in the
|
||||||
@ -910,6 +914,9 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/libguestfs
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 11 2013 Richard W.M. Jones <rjones@redhat.com> - 1:1.23.8-3
|
||||||
|
- Add patches to ./run so we capture errors when i686 tests time out.
|
||||||
|
|
||||||
* Tue Jul 9 2013 Richard W.M. Jones <rjones@redhat.com> - 1:1.23.8-2
|
* Tue Jul 9 2013 Richard W.M. Jones <rjones@redhat.com> - 1:1.23.8-2
|
||||||
- New upstream version 1.23.8.
|
- New upstream version 1.23.8.
|
||||||
- Try enabling golang bindings.
|
- Try enabling golang bindings.
|
||||||
|
Loading…
Reference in New Issue
Block a user