port: advance VC6 typeobject frontier and preserve regression coverage
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Check set_table_resize's C89 declaration and preserve resize sizing order."""
|
||||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
source = Path(sys.argv[1]).read_text()
|
||||
match = re.search(
|
||||
r"static int\nset_table_resize\(PySetObject \*so, Py_ssize_t minused\)\n\{(.*?)\n\}",
|
||||
source,
|
||||
re.S,
|
||||
)
|
||||
assert match, "set_table_resize not found"
|
||||
body = match.group(1)
|
||||
assert re.search(r"^\s*size_t newsize;\s*$", body, re.M), (
|
||||
"newsize must be declared without initializer in the function declaration block"
|
||||
)
|
||||
assert re.search(
|
||||
r"assert\(minused >= 0\);\s*/\* Find the smallest table size > minused\. \*/"
|
||||
r"\s*/\* XXX speed-up with intrinsics \*/\s*newsize = PySet_MINSIZE;"
|
||||
r"\s*while \(newsize <= \(size_t\)minused\)",
|
||||
body,
|
||||
), "newsize initialization and resize loop must remain after the assertion in original order"
|
||||
print("set_table_resize C89 declaration and sizing order: PASS")
|
||||
Reference in New Issue
Block a user