test(lifetime): 新增 P3 负向工程(堆对象字段收下本帧栈地址)
NewLifetimeFieldEscapeTest:h.p = &local(h 由 new heap hlife 得到,字段活得比本帧长)必须报 LifetimeError;同步注册到 SequentialRegressionTest / regression_test / run_lifetime_negative_tests 与 README。
This commit is contained in:
1 parent
399f396694
commit
cd102989a8
6 files changed
+65
-5
No files matched your search
+2
-2
@@ -90,12 +90,12 @@ def find_test_projects():
|
||||
# NewLifetimeFreeTest / NewLifetimeAsyncTest / NewLifetimeWillFreeTest /
|
||||
# NewLifetimeUseAfterFreeTest(负向);
|
||||
# 仓库根下:EscapeTest/EscapeOkTest/EscapeMethodTest/EscapeXmodTest
|
||||
ESCAPE_PROJECTS = ["EscapeTest", "EscapeOkTest", "EscapeMethodTest", "EscapeXmodTest", "NewTest", "NewLifetimeTest", "NewLifetimeWillFreeOkTest", "NewLifetimeFreeTest", "NewLifetimeAsyncTest", "NewLifetimeWillFreeTest", "NewLifetimeUseAfterFreeTest", "NewLifetimeWillFreeKwargTest"]
|
||||
ESCAPE_PROJECTS = ["EscapeTest", "EscapeOkTest", "EscapeMethodTest", "EscapeXmodTest", "NewTest", "NewLifetimeTest", "NewLifetimeWillFreeOkTest", "NewLifetimeFreeTest", "NewLifetimeAsyncTest", "NewLifetimeWillFreeTest", "NewLifetimeUseAfterFreeTest", "NewLifetimeWillFreeKwargTest", "NewLifetimeFieldEscapeTest"]
|
||||
|
||||
# 负向项目(**期望编译失败**,见 SequentialRegressionTest.NEGATIVE_PROJECTS):
|
||||
# 本脚本按"编译必须成功 + 能跑"判定,纳入会误报,故 --escape 时剔除;
|
||||
# 负向断言请用 SequentialRegressionTest(反向判定)或 run_lifetime_negative_tests.py。
|
||||
NEGATIVE_PROJECT_NAMES = {"EscapeTest", "EscapeMethodTest", "EscapeXmodTest", "NewLifetimeFreeTest", "NewLifetimeAsyncTest", "NewLifetimeWillFreeTest", "NewLifetimeUseAfterFreeTest", "NewLifetimeWillFreeKwargTest"}
|
||||
NEGATIVE_PROJECT_NAMES = {"EscapeTest", "EscapeMethodTest", "EscapeXmodTest", "NewLifetimeFreeTest", "NewLifetimeAsyncTest", "NewLifetimeWillFreeTest", "NewLifetimeUseAfterFreeTest", "NewLifetimeWillFreeKwargTest", "NewLifetimeFieldEscapeTest"}
|
||||
|
||||
|
||||
def find_project_file(proj_dir):
|
||||
|
||||
Reference in new issue
Block a user