1010from lldbsuite .test import lldbutil
1111from lldbsuite .test_event .build_exception import BuildError
1212
13- class AsanTestCase (TestBase ):
13+ class MemoryHistoryTestCase (TestBase ):
1414 @skipIfFreeBSD # llvm.org/pr21136 runtimes not yet available by default
1515 @expectedFailureNetBSD
1616 @skipUnlessAddressSanitizer
17- def test (self ):
17+ def test_compiler_rt_asan (self ):
1818 self .build (make_targets = ["compiler_rt-asan" ])
19- self .asan_tests ()
19+ self .compiler_rt_asan_tests ()
2020
2121 @skipUnlessDarwin
2222 @skipIf (bugnumber = "rdar://109913184&143590169" )
@@ -43,7 +43,7 @@ def setUp(self):
4343
4444 # Test line numbers: rdar://126237493
4545 # for libsanitizers and remove `skip_line_numbers` parameter
46- def check_traces (self , skip_line_numbers ):
46+ def check_traces (self , skip_line_numbers = False ):
4747 self .expect (
4848 "memory history 'pointer'" ,
4949 substrs = [
@@ -56,36 +56,33 @@ def check_traces(self, skip_line_numbers):
5656 ],
5757 )
5858
59- def libsanitizers_traces_tests (self ):
60- self .createTestTarget ()
59+ # Set breakpoint after free, but before bug
60+ def set_breakpoint (self ):
61+ self .runCmd (f"breakpoint set -f main.c -l { self .line_breakpoint } " )
6162
62- self .runCmd ("env SanitizersAllocationTraces=all" )
63-
64- self .runCmd ("breakpoint set -f main.c -l %d" % self .line_breakpoint )
63+ def run_to_breakpoint (self ):
64+ self .set_breakpoint ()
6565 self .runCmd ("run" )
66-
67- # Stop on breakpoint, before report
6866 self .expect (
6967 "thread list" ,
7068 STOPPED_DUE_TO_BREAKPOINT ,
7169 substrs = ["stopped" , "stop reason = breakpoint" ],
7270 )
71+
72+ def libsanitizers_traces_tests (self ):
73+ self .createTestTarget ()
74+
75+ self .runCmd ("env SanitizersAllocationTraces=all" )
76+
77+ self .run_to_breakpoint ()
7378 self .check_traces (skip_line_numbers = True )
7479
7580 def libsanitizers_asan_tests (self ):
7681 self .createTestTarget ()
7782
7883 self .runCmd ("env SanitizersAddress=1 MallocSanitizerZone=1" )
7984
80- self .runCmd ("breakpoint set -f main.c -l %d" % self .line_breakpoint )
81- self .runCmd ("run" )
82-
83- # Stop on breakpoint, before report
84- self .expect (
85- "thread list" ,
86- STOPPED_DUE_TO_BREAKPOINT ,
87- substrs = ["stopped" , "stop reason = breakpoint" ],
88- )
85+ self .run_to_breakpoint ()
8986 self .check_traces (skip_line_numbers = True )
9087
9188 self .runCmd ("continue" )
@@ -130,12 +127,12 @@ def libsanitizers_asan_tests(self):
130127 "main.c" ,
131128 )
132129
133- def asan_tests (self ):
130+ def compiler_rt_asan_tests (self ):
134131 target = self .createTestTarget ()
135132
136133 self .registerSanitizerLibrariesWithTarget (target )
137134
138- self .runCmd ( "breakpoint set -f main.c -l %d" % self . line_breakpoint )
135+ self .set_breakpoint ( )
139136
140137 # "memory history" command should not work without a process
141138 self .expect (
0 commit comments