[Python-checkins] cpython: Issue #12326: don't test the major version of sys.platform

victor.stinner python-checkins at python.org
Wed Aug 17 20:51:59 CEST 2011


http://hg.python.org/cpython/rev/50f1922bc1d5
changeset: 71897:50f1922bc1d5
user: Victor Stinner <victor.stinner at haypocalc.com>
date: Wed Aug 17 20:49:41 2011 +0200
summary:
 Issue #12326: don't test the major version of sys.platform
Use startswith, instead of ==, when testing sys.platform to support
new platforms like Linux 3 or OpenBSD 5.
files:
 Lib/distutils/tests/test_bdist_rpm.py | 4 +-
 Lib/test/regrtest.py | 74 +++++++-------
 Lib/test/test_fcntl.py | 9 +-
 Lib/test/test_logging.py | 2 +-
 Lib/test/test_socket.py | 2 +-
 Lib/test/test_tarfile.py | 2 +-
 Lib/test/test_tempfile.py | 2 +-
 setup.py | 5 +-
 8 files changed, 48 insertions(+), 52 deletions(-)
diff --git a/Lib/distutils/tests/test_bdist_rpm.py b/Lib/distutils/tests/test_bdist_rpm.py
--- a/Lib/distutils/tests/test_bdist_rpm.py
+++ b/Lib/distutils/tests/test_bdist_rpm.py
@@ -47,7 +47,7 @@
 
 # XXX I am unable yet to make this test work without
 # spurious sdtout/stderr output under Mac OS X
- if sys.platform != 'linux2':
+ if not sys.platform.startswith('linux'):
 return
 
 # this test will run only if the rpm commands are found
@@ -87,7 +87,7 @@
 
 # XXX I am unable yet to make this test work without
 # spurious sdtout/stderr output under Mac OS X
- if sys.platform != 'linux2':
+ if not sys.platform.startswith('linux'):
 return
 
 # http://bugs.python.org/issue1533164
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1391,8 +1391,8 @@
 # Tests that are expected to be skipped everywhere except on one platform
 # are also handled separately.
 
-_expectations = {
- 'win32':
+_expectations = (
+ ('win32',
 """
 test__locale
 test_crypt
@@ -1420,15 +1420,15 @@
 test_threadsignals
 test_wait3
 test_wait4
- """,
- 'linux2':
+ """),
+ ('linux',
 """
 test_curses
 test_largefile
 test_kqueue
 test_ossaudiodev
- """,
- 'unixware7':
+ """),
+ ('unixware',
 """
 test_epoll
 test_largefile
@@ -1438,8 +1438,8 @@
 test_pyexpat
 test_sax
 test_sundry
- """,
- 'openunix8':
+ """),
+ ('openunix',
 """
 test_epoll
 test_largefile
@@ -1449,8 +1449,8 @@
 test_pyexpat
 test_sax
 test_sundry
- """,
- 'sco_sv3':
+ """),
+ ('sco_sv',
 """
 test_asynchat
 test_fork1
@@ -1469,8 +1469,8 @@
 test_threaded_import
 test_threadedtempfile
 test_threading
- """,
- 'darwin':
+ """),
+ ('darwin',
 """
 test__locale
 test_curses
@@ -1482,8 +1482,8 @@
 test_minidom
 test_ossaudiodev
 test_poll
- """,
- 'sunos5':
+ """),
+ ('sunos',
 """
 test_curses
 test_dbm
@@ -1494,8 +1494,8 @@
 test_openpty
 test_zipfile
 test_zlib
- """,
- 'hp-ux11':
+ """),
+ ('hp-ux',
 """
 test_curses
 test_epoll
@@ -1510,8 +1510,8 @@
 test_sax
 test_zipfile
 test_zlib
- """,
- 'cygwin':
+ """),
+ ('cygwin',
 """
 test_curses
 test_dbm
@@ -1522,8 +1522,8 @@
 test_locale
 test_ossaudiodev
 test_socketserver
- """,
- 'os2emx':
+ """),
+ ('os2emx',
 """
 test_audioop
 test_curses
@@ -1536,8 +1536,8 @@
 test_pty
 test_resource
 test_signal
- """,
- 'freebsd4':
+ """),
+ ('freebsd',
 """
 test_epoll
 test_dbm_gnu
@@ -1553,8 +1553,8 @@
 test_timeout
 test_urllibnet
 test_multiprocessing
- """,
- 'aix5':
+ """),
+ ('aix',
 """
 test_bz2
 test_epoll
@@ -1568,8 +1568,8 @@
 test_ttk_textonly
 test_zipimport
 test_zlib
- """,
- 'openbsd3':
+ """),
+ ('openbsd',
 """
 test_ctypes
 test_epoll
@@ -1583,8 +1583,8 @@
 test_ttk_guionly
 test_ttk_textonly
 test_multiprocessing
- """,
- 'netbsd3':
+ """),
+ ('netbsd',
 """
 test_ctypes
 test_curses
@@ -1598,12 +1598,8 @@
 test_ttk_guionly
 test_ttk_textonly
 test_multiprocessing
- """,
-}
-_expectations['freebsd5'] = _expectations['freebsd4']
-_expectations['freebsd6'] = _expectations['freebsd4']
-_expectations['freebsd7'] = _expectations['freebsd4']
-_expectations['freebsd8'] = _expectations['freebsd4']
+ """),
+)
 
 class _ExpectedSkips:
 def __init__(self):
@@ -1611,9 +1607,13 @@
 from test import test_timeout
 
 self.valid = False
- if sys.platform in _expectations:
- s = _expectations[sys.platform]
- self.expected = set(s.split())
+ expected = None
+ for item in _expectations:
+ if sys.platform.startswith(item[0]):
+ expected = item[1]
+ break
+ if expected is not None:
+ self.expected = set(expected.split())
 
 # These are broken tests, for now skipped on every platform.
 # XXX Fix these!
diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py
--- a/Lib/test/test_fcntl.py
+++ b/Lib/test/test_fcntl.py
@@ -23,12 +23,9 @@
 else:
 start_len = "qq"
 
- if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
- 'Darwin1.2', 'darwin',
- 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
- 'freebsd6', 'freebsd7', 'freebsd8',
- 'bsdos2', 'bsdos3', 'bsdos4',
- 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if (any(sys.platform.startswith(prefix)
+ for prefix in ('netbsd', 'freebsd', 'openbsd', 'bsdos'))
+ or sys.platform in ('Darwin1.2', 'darwin')):
 if struct.calcsize('l') == 8:
 off_t = 'l'
 pid_t = 'i'
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -527,7 +527,7 @@
 def test_builtin_handlers(self):
 # We can't actually *use* too many handlers in the tests,
 # but we can try instantiating them with various options
- if sys.platform in ('linux2', 'darwin'):
+ if sys.platform.startswith('linux') or sys.platform == 'darwin':
 for existing in (True, False):
 fd, fn = tempfile.mkstemp()
 os.close(fd)
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -2074,7 +2074,7 @@
 ])
 if hasattr(socket, "socketpair"):
 tests.append(BasicSocketPairTest)
- if sys.platform == 'linux2':
+ if sys.platform.startswith('linux'):
 tests.append(TestLinuxAbstractNamespace)
 if isTipcAvailable():
 tests.append(TIPCTest)
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -703,7 +703,7 @@
 # Return True if the platform knows the st_blocks stat attribute and
 # uses st_blocks units of 512 bytes, and if the filesystem is able to
 # store holes in files.
- if sys.platform == "linux2":
+ if sys.platform.startswith("linux"):
 # Linux evidentially has 512 byte st_blocks units.
 name = os.path.join(TEMPDIR, "sparse-test")
 with open(name, "wb") as fobj:
diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py
--- a/Lib/test/test_tempfile.py
+++ b/Lib/test/test_tempfile.py
@@ -20,7 +20,7 @@
 
 # TEST_FILES may need to be tweaked for systems depending on the maximum
 # number of files that can be opened at one time (see ulimit -n)
-if sys.platform in ('openbsd3', 'openbsd4'):
+if sys.platform.startswith('openbsd'):
 TEST_FILES = 48
 else:
 TEST_FILES = 100
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -1381,9 +1381,8 @@
 # End multiprocessing
 
 # Platform-specific libraries
- if (platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
- 'freebsd7', 'freebsd8')
- or platform.startswith("gnukfreebsd")):
+ if any(platform.startswith(prefix)
+ for prefix in ("linux", "freebsd", "gnukfreebsd")):
 exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
 else:
 missing.append('ossaudiodev')
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /