[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/03: tests: Gracefully handle ENOSYS return for 'setaf
From: |
Ludovic Courtès |
Subject: |
[Guile-commits] 03/03: tests: Gracefully handle ENOSYS return for 'setaffinity'. |
Date: |
Wed, 04 Mar 2015 08:50:18 +0000 |
civodul pushed a commit to branch stable-2.0
in repository guile.
commit 3b50be454691f018a235f7473d89bfbf6cfa74f0
Author: Ludovic Courtès <address@hidden>
Date: Wed Mar 4 09:49:31 2015 +0100
tests: Gracefully handle ENOSYS return for 'setaffinity'.
Fixes <http://bugs.gnu.org/19646>.
Reported by John Paul Adrian Glaubitz <address@hidden>.
* test-suite/tests/posix.test ("affinity")["setaffinity"]: Wrap in
'catch' and throw 'unresolved upon ENOSYS.
---
test-suite/tests/posix.test | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/test-suite/tests/posix.test b/test-suite/tests/posix.test
index 9a0e489..f57001a 100644
--- a/test-suite/tests/posix.test
+++ b/test-suite/tests/posix.test
@@ -1,6 +1,7 @@
;;;; posix.test --- Test suite for Guile POSIX functions. -*- scheme -*-
;;;;
-;;;; Copyright 2003, 2004, 2006, 2007, 2010, 2012 Free Software Foundation,
Inc.
+;;;; Copyright 2003, 2004, 2006, 2007, 2010, 2012,
+;;;; 2015 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -195,9 +196,18 @@
(pass-if "setaffinity"
(if (and (defined? 'setaffinity) (defined? 'getaffinity))
- (let ((mask (getaffinity (getpid))))
- (setaffinity (getpid) mask)
- (equal? mask (getaffinity (getpid))))
+ (catch 'system-error
+ (lambda ()
+ (let ((mask (getaffinity (getpid))))
+ (setaffinity (getpid) mask)
+ (equal? mask (getaffinity (getpid)))))
+ (lambda args
+ ;; On some platforms such as sh4-linux-gnu, 'setaffinity'
+ ;; returns ENOSYS.
+ (let ((errno (system-error-errno args)))
+ (if (= errno ENOSYS)
+ (throw 'unresolved)
+ (apply throw args)))))
(throw 'unresolved))))
;;