[Python-Dev] stabilizing builds
Thomas Wouters
thomas at xs4all.net
Thu Jan 26 21:24:56 CET 2006
On Wed, Jan 25, 2006 at 01:59:18AM +0100, Thomas Wouters wrote:
> [ iffy isatty behaviour on Solaris ]
Considering that:
- the approach for opening pty's, while not the only one, is the preferred
way of doing it on Solaris,
- the actual pty's seem to be completely functional,
- the usual way to use pty's is not like the test does (inside a single
process), and I'd say using pty's like the test does is extremely
unlikely to happen in real life,
- testing inside the tty-creating process is quite possibly the reason for
the fickleness of the test, since its behaviour isn't guaranteed
anywhere,
- the test inside a subprocess, the normal way of using pty's, is not
failing (as far as I can tell),
I'd like to check in the attached patch. It doesn't fix anything, it just
removes this one test failure on Solaris. I don't want to skip the entire
test, because it still tests whether everything else works as expected, and
I don't want spurious failures as they can mask a real failure later in the
test.
I'd need developer access back to check it in, though. Unless anyone
objects, of course :)
--
Thomas Wouters <thomas at xs4all.net>
Hi! I'm a .signature virus! copy me into your .signature file to help me spread!
-------------- next part --------------
Index: Lib/test/test_pty.py
===================================================================
--- Lib/test/test_pty.py (revision 42187)
+++ Lib/test/test_pty.py (working copy)
@@ -4,6 +4,13 @@
TEST_STRING_1 = "I wish to buy a fish license.\n"
TEST_STRING_2 = "For my pet fish, Eric.\n"
+# Solaris (at least 2.9 and 2.10) seem to have a ficke isatty(). The first
+# test below, testing the result of os.openpty() for tty-ness, sometimes
+# (but not always) fails. The second isatty test, in the sub-process, always
+# works. Allow that fickle first test to fail on these platforms, since it
+# doesn't actually affect functionality.
+fickle_isatty = ["sunos5"]
+
if verbose:
def debug(msg):
print msg
@@ -26,7 +33,7 @@
# " An optional feature could not be imported " ... ?
raise TestSkipped, "Pseudo-terminals (seemingly) not functional."
- if not os.isatty(slave_fd):
+ if not os.isatty(slave_fd) and sys.platform not in fickle_isatty:
raise TestFailed, "slave_fd is not a tty"
# IRIX apparently turns \n into \r\n. Allow that, but avoid allowing other
More information about the Python-Dev
mailing list