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:
elif 'os2' in _names:
name = 'os2'
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'
from os2 import *
try:
from os2 import _exit
except ImportError:
pass
import ntpath
path = ntpath
del ntpath
if sys.version.find('EMX GCC') == -1:
import ntpath
path = ntpath
del ntpath
else:
import os2emxpath
path = os2emxpath
del os2emxpath
import os2
__all__.extend(_get_exports_list(os2))
......
This diff is collapsed.
......@@ -112,7 +112,7 @@ class Popen4(Popen3):
_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.
del Popen3, Popen4
......
......@@ -164,7 +164,9 @@ if sys.exec_prefix != sys.prefix:
prefixes.append(sys.exec_prefix)
for prefix in prefixes:
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,
"lib",
"python" + sys.version[:3],
......
#! /usr/bin/env python
"""Test program for the fcntl C module.
OS/2+EMX doesn't support the file locking operations.
Roger E. Masse
"""
import struct
......@@ -23,11 +24,13 @@ if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin',
lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, fcntl.F_WRLCK, 0)
elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']:
lockdata = struct.pack('hhlllii', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0)
elif sys.platform in ['os2emx']:
lockdata = None
else:
lockdata = struct.pack('hh'+start_len+'hh', fcntl.F_WRLCK, 0, 0, 0, 0, 0)
if verbose:
print 'struct.pack: ', `lockdata`
if lockdata:
if verbose:
print 'struct.pack: ', `lockdata`
# the example from the library docs
f = open(filename, 'w')
......@@ -35,9 +38,10 @@ rv = fcntl.fcntl(f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
if verbose:
print 'Status from fnctl with O_NONBLOCK: ', rv
rv = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW, lockdata)
if verbose:
print 'String from fcntl with F_SETLKW: ', `rv`
if sys.platform not in ['os2emx']:
rv = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW, lockdata)
if verbose:
print 'String from fcntl with F_SETLKW: ', `rv`
f.close()
os.unlink(filename)
......@@ -47,7 +51,8 @@ os.unlink(filename)
f = open(filename, 'w')
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()
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
l = eval("[" + "2," * REPS + "]")
print len(l)
if sys.platform == "os2emx":
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