import socket
import random
import logging
+import struct
import test.support
+ import test.script_helper
# Skip tests if _multiprocessing wasn't built.
finally:
socket.setdefaulttimeout(old_timeout)
+ #
+ # Test what happens with no "if __name__ == '__main__'"
+ #
+
+ class TestNoForkBomb(unittest.TestCase):
+ def test_noforkbomb(self):
+ name = os.path.join(os.path.dirname(__file__), 'mp_fork_bomb.py')
+ if WIN32:
+ rc, out, err = test.script_helper.assert_python_failure(name)
+ self.assertEqual('', out.decode('ascii'))
+ self.assertIn('RuntimeError', err.decode('ascii'))
+ else:
+ rc, out, err = test.script_helper.assert_python_ok(name)
+ self.assertEqual('123', out.decode('ascii').rstrip())
+ self.assertEqual('', err.decode('ascii'))
+
+ #
+ #
+ #
+
testcases_other = [OtherTest, TestInvalidHandle, TestInitializers,
- TestStdinBadfiledescriptor, TestInvalidFamily,
- TestTimeouts, TestNoForkBomb]
+ TestStdinBadfiledescriptor, TestWait, TestInvalidFamily,
- TestFlags, TestTimeouts]
++ TestFlags, TestTimeouts, TestNoForkBomb]
#
#
Core and Builtins
-----------------
-- Issue #13119: sys.stdout and sys.stderr are now using "\r\n" newline on
- Windows, as Python 2.
+Library
+-------
-- Issue #14579: Fix CVE-2012-2135: vulnerability in the utf-16 decoder after
- error handling. Patch by Serhiy Storchaka.
++- Issue #15646: Prevent equivalent of a fork bomb when using
++ multiprocessing on Windows without the "if __name__ == '__main__'"
++ idiom.
+
-- Issue #15404: Refleak in PyMethodObject repr.
+C API
+-----
-- Issue #15394: An issue in PyModule_Create that caused references to
- be leaked on some error paths has been fixed. Patch by Julia Lawall.
+Extension Modules
+-----------------
-- Issue #15368: An issue that caused bytecode generation to be
- non-deterministic when using randomized hashing (-R) has been fixed.
+Tools/Demos
+-----------
-- Issue #15020: The program name used to search for Python's path is now
- "python3" under Unix, not "python".
+Documentation
+-------------
-- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
- return the proper failure return value (1). Patch contributed by Jeff Knupp.
+- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
+ Daniel Ellis.
-- Issue #12268: File readline, readlines and read() or readall() methods
- no longer lose data when an underlying read system call is interrupted.
- IOError is no longer raised due to a read system call returning EINTR
- from within these methods.
-- Issue #15142: Fix reference leak when deallocating instances of types
- created using PyType_FromSpec().
-- Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on
- the work by Hirokazu Yamamoto.
+What's New in Python 3.3.0 Beta 2?
+==================================
-- Issue #14775: Fix a potential quadratic dict build-up due to the garbage
- collector repeatedly trying to untrack dicts.
+*Release date: 12-Aug-2012*
-- Issue #14494: Fix __future__.py and its documentation to note that
- absolute imports are the default behavior in 3.0 instead of 2.7.
- Patch by Sven Marnach.
+Core and Builtins
+-----------------
-- Issue #14761: Fix potential leak on an error case in the import machinery.
+- Issue #15568: Fix the return value of "yield from" when StopIteration is
+ raised by a custom iterator.
-- Issue #14699: Fix calling the classmethod descriptor directly.
+- Issue #13119: sys.stdout and sys.stderr are now using "\r\n" newline on
+ Windows, as Python 2.
-- Issue #14433: Prevent msvcrt crash in interactive prompt when stdin
- is closed.
+- Issue #15534: Fix the fast-search function for non-ASCII Unicode strings.
-- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
- when repr() or str() is called on such an object.
+- Issue #15508: Fix the docstring for __import__ to have the proper default
+ value of 0 for 'level' and to not mention negative levels since they are not
+ supported.
-- Issue #14658: Fix binding a special method to a builtin implementation of a
- special method with a different name.
+- Issue #15425: Eliminated traceback noise from more situations involving
+ importlib.
-- Issue #14630: Fix a memory access bug for instances of a subclass of int
- with value 0.
+- Issue #14578: Support modules registered in the Windows registry again.
-- Issue #14612: Fix jumping around with blocks by setting f_lineno.
+- Issue #15466: Stop using TYPE_INT64 in marshal, to make importlib.h (and other
+ byte code files) equal between 32-bit and 64-bit systems.
-- Issue #14607: Fix keyword-only arguments which started with ``__``.
+- Issue #1692335: Move initial exception args assignment to
+ "BaseException.__new__" to help pickling of naive subclasses.
-- Issue #13889: Check and (if necessary) set FPU control word before calling
- any of the dtoa.c string <-> float conversion functions, on MSVC builds of
- Python. This fixes issues when embedding Python in a Delphi app.
+- Issue #12834: Fix PyBuffer_ToContiguous() for non-contiguous arrays.
-- Issue #14474: Save and restore exception state in thread.start_new_thread()
- while writing error message if the thread leaves a unhandled exception.
+- Issue #15456: Fix code __sizeof__ after #12399 change. Patch by Serhiy
+ Storchaka.
-- Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch
- by Suman Saha.
+- Issue #15404: Refleak in PyMethodObject repr.
-- Issue #14378: Fix compiling ast.ImportFrom nodes with a "__future__" string as
- the module name that was not interned.
+- Issue #15394: An issue in PyModule_Create that caused references to be leaked
+ on some error paths has been fixed. Patch by Julia Lawall.
-- Issue #14331: Use significantly less stack space when importing modules by
- allocating path buffers on the heap instead of the stack.
+- Issue #15368: An issue that caused bytecode generation to be non-deterministic
+ has been fixed.
-- Issue #14334: Prevent in a segfault in type.__getattribute__ when it was not
- passed strings.
+- Issue #15202: Consistently use the name "follow_symlinks" for new parameters
+ in os and shutil functions.
-- Issue #1469629: Allow cycles through an object's __dict__ slot to be
- collected. (For example if ``x.__dict__ is x``).
+- Issue #15314: __main__.__loader__ is now set correctly during interpreter
+ startup.
-- Issue #14172: Fix reference leak when marshalling a buffer-like object
- (other than a bytes object).
+- Issue #15111: When a module imported using 'from import' has an ImportError
+ inside itself, don't mask that fact behind a generic ImportError for the
+ module itself.
-- Issue #13521: dict.setdefault() now does only one lookup for the given key,
- making it "atomic" for many purposes. Patch by Filip GruszczyĆski.
+- Issue #15293: Add GC support to the AST base node type.
-- Issue #14471: Fix a possible buffer overrun in the winreg module.
+- Issue #15291: Fix a memory leak where AST nodes where not properly
+ deallocated.
+
+- Issue #15110: Fix the tracebacks generated by "import xxx" to not show the
+ importlib stack frames.
+
+- Issue #15020: The program name used to search for Python's path is now
+ "python3" under Unix, not "python".
+
+- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
+ return the proper failure return value (1). Patch contributed by Jeff Knupp.
+
+- Issue #15229: An OSError subclass whose __init__ doesn't call back
+ OSError.__init__ could produce incomplete instances, leading to crashes when
+ calling str() on them.
+
+- Issue 15307: Virtual environments now use symlinks with framework builds on
+ Mac OS X, like other POSIX builds.
Library
-------