Kaydet (Commit) 5cef5713 authored tarafından Andrew MacIntyre's avatar Andrew MacIntyre

OS/2 EMX port Library and regression test changes:

  Lib/
    os.py
    os2emxpath.py   // added - OS/2 EMX specific path manipulation routines
    popen2.py
    site.py
  Lib/test/
    test_fcntl.py
    test_longexp.py
üst 75a8e658
...@@ -95,16 +95,27 @@ elif 'dos' in _names: ...@@ -95,16 +95,27 @@ elif 'dos' in _names:
elif 'os2' in _names: elif 'os2' in _names:
name = 'os2' name = 'os2'
linesep = '\r\n' linesep = '\r\n'
curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' curdir = '.'; pardir = '..'; pathsep = ';'
if sys.version.find('EMX GCC') == -1:
# standard OS/2 compiler (VACPP or Watcom?)
sep = '\\'; altsep = '/'
else:
# EMX
sep = '/'; altsep = '\\'
defpath = '.;C:\\bin' defpath = '.;C:\\bin'
from os2 import * from os2 import *
try: try:
from os2 import _exit from os2 import _exit
except ImportError: except ImportError:
pass pass
import ntpath if sys.version.find('EMX GCC') == -1:
path = ntpath import ntpath
del ntpath path = ntpath
del ntpath
else:
import os2emxpath
path = os2emxpath
del os2emxpath
import os2 import os2
__all__.extend(_get_exports_list(os2)) __all__.extend(_get_exports_list(os2))
......
This diff is collapsed.
...@@ -112,7 +112,7 @@ class Popen4(Popen3): ...@@ -112,7 +112,7 @@ class Popen4(Popen3):
_active.append(self) _active.append(self)
if sys.platform[:3] == "win": if sys.platform[:3] == "win" or sys.platform == "os2emx":
# Some things don't make sense on non-Unix platforms. # Some things don't make sense on non-Unix platforms.
del Popen3, Popen4 del Popen3, Popen4
......
...@@ -164,7 +164,9 @@ if sys.exec_prefix != sys.prefix: ...@@ -164,7 +164,9 @@ if sys.exec_prefix != sys.prefix:
prefixes.append(sys.exec_prefix) prefixes.append(sys.exec_prefix)
for prefix in prefixes: for prefix in prefixes:
if prefix: if prefix:
if os.sep == '/': if sys.platform == 'os2emx':
sitedirs = [os.path.join(prefix, "Lib", "site-packages")]
elif os.sep == '/':
sitedirs = [os.path.join(prefix, sitedirs = [os.path.join(prefix,
"lib", "lib",
"python" + sys.version[:3], "python" + sys.version[:3],
......
#! /usr/bin/env python #! /usr/bin/env python
"""Test program for the fcntl C module. """Test program for the fcntl C module.
OS/2+EMX doesn't support the file locking operations.
Roger E. Masse Roger E. Masse
""" """
import struct import struct
...@@ -23,11 +24,13 @@ if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin', ...@@ -23,11 +24,13 @@ if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin',
lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, fcntl.F_WRLCK, 0) lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, fcntl.F_WRLCK, 0)
elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']: elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']:
lockdata = struct.pack('hhlllii', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0) lockdata = struct.pack('hhlllii', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0)
elif sys.platform in ['os2emx']:
lockdata = None
else: else:
lockdata = struct.pack('hh'+start_len+'hh', fcntl.F_WRLCK, 0, 0, 0, 0, 0) lockdata = struct.pack('hh'+start_len+'hh', fcntl.F_WRLCK, 0, 0, 0, 0, 0)
if verbose: if lockdata:
print 'struct.pack: ', `lockdata` if verbose:
print 'struct.pack: ', `lockdata`
# the example from the library docs # the example from the library docs
f = open(filename, 'w') f = open(filename, 'w')
...@@ -35,9 +38,10 @@ rv = fcntl.fcntl(f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK) ...@@ -35,9 +38,10 @@ rv = fcntl.fcntl(f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
if verbose: if verbose:
print 'Status from fnctl with O_NONBLOCK: ', rv print 'Status from fnctl with O_NONBLOCK: ', rv
rv = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW, lockdata) if sys.platform not in ['os2emx']:
if verbose: rv = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW, lockdata)
print 'String from fcntl with F_SETLKW: ', `rv` if verbose:
print 'String from fcntl with F_SETLKW: ', `rv`
f.close() f.close()
os.unlink(filename) os.unlink(filename)
...@@ -47,7 +51,8 @@ os.unlink(filename) ...@@ -47,7 +51,8 @@ os.unlink(filename)
f = open(filename, 'w') f = open(filename, 'w')
rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NONBLOCK) rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NONBLOCK)
rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata) if sys.platform not in ['os2emx']:
rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata)
f.close() f.close()
os.unlink(filename) os.unlink(filename)
# this test has a malloc problem on OS/2+EMX, so skip test in that environment
import sys
from test_support import TestFailed
REPS = 65580 REPS = 65580
l = eval("[" + "2," * REPS + "]") if sys.platform == "os2emx":
print len(l) raise TestFailed, "OS/2+EMX port has malloc problems with long expressions"
else:
l = eval("[" + "2," * REPS + "]")
print len(l)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment