summaryrefslogtreecommitdiffstats
path: root/Lib/test/tf_inherit_check.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-08-17 11:41:01 (GMT)
committerGuido van Rossum <guido@python.org>2002-08-17 11:41:01 (GMT)
commit787410680b9866d56a1ec1915ebbf41ab5cac7a0 (patch)
treef10e42f67d9365ed7912d6c2334be48bd147c639 /Lib/test/tf_inherit_check.py
parentb898d9fc9a434eb9ae9d3d10d0f1d379492cd6f6 (diff)
downloadcpython-787410680b9866d56a1ec1915ebbf41ab5cac7a0.zip
cpython-787410680b9866d56a1ec1915ebbf41ab5cac7a0.tar.gz
cpython-787410680b9866d56a1ec1915ebbf41ab5cac7a0.tar.bz2
Patch by Zack W to make test_noinherit() more robust: spawn a Python
subprocess that does the right checks. This now works on Windows as well.
Diffstat (limited to 'Lib/test/tf_inherit_check.py')
-rw-r--r--Lib/test/tf_inherit_check.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/Lib/test/tf_inherit_check.py b/Lib/test/tf_inherit_check.py
new file mode 100644
index 0000000..a8b80d2
--- /dev/null
+++ b/Lib/test/tf_inherit_check.py
@@ -0,0 +1,25 @@
+# Helper script for test_tempfile.py. argv[2] is the number of a file
+# descriptor which should _not_ be open. Check this by attempting to
+# write to it -- if we succeed, something is wrong.
+
+import sys
+import os
+
+verbose = (sys.argv[1] == 'v')
+try:
+ fd = int(sys.argv[2])
+
+ try:
+ os.write(fd, "blat")
+ except os.error:
+ # Success -- could not write to fd.
+ sys.exit(0)
+ else:
+ if verbose:
+ sys.stderr.write("fd %d is open in child" % fd)
+ sys.exit(1)
+
+except StandardError:
+ if verbose:
+ raise
+ sys.exit(1)