Issue #12783: Fix test_posix failures on FreeBSD buildbots, due to
sched_setparam() returning EINVAL for processes with SCHED_OTHER scheduling
policy.
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index 6a3c33f..a098fc0 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -875,8 +875,14 @@
except OSError as e:
if e.errno != errno.EPERM:
raise
- posix.sched_setparam(0, param)
- self.assertRaises(OSError, posix.sched_setparam, -1, param)
+
+ # POSIX states that calling sched_setparam() on a process with a
+ # scheduling policy other than SCHED_FIFO or SCHED_RR is
+ # implementation-defined: FreeBSD returns EINVAL.
+ if not sys.platform.startswith('freebsd'):
+ posix.sched_setparam(0, param)
+ self.assertRaises(OSError, posix.sched_setparam, -1, param)
+
self.assertRaises(OSError, posix.sched_setscheduler, -1, mine, param)
self.assertRaises(TypeError, posix.sched_setscheduler, 0, mine, None)
self.assertRaises(TypeError, posix.sched_setparam, 0, 43)