Skip to content

bpo-36465: Fix test_regrtest on Windows #12945

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 24, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/test/test_regrtest.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from test.libregrtest import utils


Py_DEBUG = hasattr(sys, 'getobjects')
Py_DEBUG = hasattr(sys, 'gettotalrefcount')
ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', '..')
ROOT_DIR = os.path.abspath(os.path.normpath(ROOT_DIR))

Expand Down
13 changes: 9 additions & 4 deletions Misc/SpecialBuilds.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ name "_" holds a reference to the last result displayed!
Py_REF_DEBUG also checks after every decref to verify that the refcount hasn't
gone negative, and causes an immediate fatal error if it has.

Py_DEBUG implies Py_REF_DEBUG.

Special gimmicks:

sys.gettotalrefcount()
Expand All @@ -39,6 +41,8 @@ sys.gettotalrefcount()
Py_TRACE_REFS
-------------

Build option: ``./configure --with-trace-refs``.

Turn on heavy reference debugging. This is major surgery. Every PyObject grows
two more pointers, to maintain a doubly-linked list of all live heap-allocated
objects. Most built-in type objects are not in this list, as they're statically
Expand All @@ -49,8 +53,6 @@ has been created.
Note that because the fundamental PyObject layout changes, Python modules
compiled with Py_TRACE_REFS are incompatible with modules compiled without it.

Py_TRACE_REFS implies Py_REF_DEBUG.

Special gimmicks:

sys.getobjects(max[, type])
Expand Down Expand Up @@ -138,7 +140,8 @@ look at the object, you're likely to see that it's entirely filled with 0xDB
(meaning freed memory is getting used) or 0xCB (meaning uninitialized memory is
getting used).

Note that PYMALLOC_DEBUG requires WITH_PYMALLOC.
Note that PYMALLOC_DEBUG requires WITH_PYMALLOC. Py_DEBUG implies
PYMALLOC_DEBUG (if WITH_PYMALLOC is enabled).

Special gimmicks:

Expand All @@ -156,7 +159,7 @@ Py_DEBUG

This is what is generally meant by "a debug build" of Python.

Py_DEBUG implies LLTRACE, Py_REF_DEBUG, Py_TRACE_REFS, and PYMALLOC_DEBUG (if
Py_DEBUG implies LLTRACE, Py_REF_DEBUG, and PYMALLOC_DEBUG (if
WITH_PYMALLOC is enabled). In addition, C assert()s are enabled (via the C way:
by not defining NDEBUG), and some routines do additional sanity checks inside
"#ifdef Py_DEBUG" blocks.
Expand Down Expand Up @@ -223,3 +226,5 @@ the interpreter is doing are sprayed to stdout, such as every opcode and opcode
argument and values pushed onto and popped off the value stack.

Not useful very often, but very useful when needed.

Py_DEBUG implies LLTRACE.