]> granicus.if.org Git - python/commitdiff
Checking in patch #103478 -- makes popen2 and fork1 tested on BeOS.
authorMoshe Zadka <moshez@math.huji.ac.il>
Tue, 30 Jan 2001 18:35:32 +0000 (18:35 +0000)
committerMoshe Zadka <moshez@math.huji.ac.il>
Tue, 30 Jan 2001 18:35:32 +0000 (18:35 +0000)
Tested for not breaking builds on Linux.

Lib/test/test_fork1.py
Lib/test/test_popen2.py

index bd3e9773542ad6b841d2431cc9895400e2b35fbb..de9f7a947ac4f15ec280ab267f1b5fc58688a326 100644 (file)
@@ -6,20 +6,13 @@ child after a fork().
 On some systems (e.g. Solaris without posix threads) we find that all
 active threads survive in the child after a fork(); this is an error.
 
-On BeOS, you CANNOT mix threads and fork(), the behaviour is undefined.
-That's OK, fork() is a grotesque hack anyway. ;-) [cjh]
-
+While BeOS doesn't officially support fork and native threading in
+the same application, the present example should work just fine.  DC
 """
 
 import os, sys, time, thread
 from test_support import verify, verbose, TestSkipped
 
-try:
-    if os.uname()[0] == "BeOS":
-        raise TestSkipped, "can't mix os.fork with threads on BeOS"
-except AttributeError:
-    pass
-
 try:
     os.fork
 except AttributeError:
index 1215847bbcd45a40784e4c8c3601cac8219f99a9..799df4ac4dd786bbee65d84bca0c1146938040ae 100644 (file)
@@ -4,6 +4,8 @@
 """
 
 import os
+import sys
+from test_support import TestSkipped
 
 # popen2 contains its own testing routine
 # which is especially useful to see if open files
@@ -12,6 +14,11 @@ import os
 
 def main():
     print "Test popen2 module:"
+    if sys.platform[:4] == 'beos' and __name__ != '__main__':
+        #  Locks get messed up or something.  Generally we're supposed
+        #  to avoid mixing "posix" fork & exec with native threads, and
+        #  they may be right about that after all.
+        raise TestSkipped, "popen2() doesn't work during import on BeOS"
     try:
         from os import popen
     except ImportError: