@@ -217,31 +217,21 @@ def test_stackTrace(self):
217217 frameCount ,
218218 "verify total frames returns a speculative page size" ,
219219 )
220- expectedFrames = [
221- {
222- "name" : "comp" ,
223- "line" : 14 ,
224- "sourceName" : "main.c" ,
225- "containsSourceReference" : False ,
226- },
227- {"name" : "qsort" , "sourceName" : "qsort" , "containsSourceReference" : True },
228- {
229- "name" : "main" ,
230- "line" : 25 ,
231- "sourceName" : "main.c" ,
232- "containsSourceReference" : False ,
233- },
234- ]
235- for idx , expected in enumerate (expectedFrames ):
236- frame = stackFrames [idx ]
237- frame_name = self .get_dict_value (frame , ["name" ])
238- self .assertRegex (frame_name , expected ["name" ])
239- source_name = self .get_dict_value (frame , ["source" , "name" ])
240- self .assertRegex (source_name , expected ["sourceName" ])
241- if expected ["containsSourceReference" ]:
242- self .assertIn ("sourceReference" , frame ["source" ])
243- else :
244- self .assertNotIn ("sourceReference" , frame ["source" ])
220+
221+ frame = stackFrames .pop (0 )
222+ frame_name = self .get_dict_value (frame , ["name" ])
223+ self .assertRegex (frame_name , 'comp' )
224+ self .assertEqual (self .get_dict_value (frame , ['line' ]), 14 )
225+ self .assertNotIn ('sourceReference' , frame ['source' ])
226+
227+ # libc`qsort may not be the first frame below comp, search upwards
228+ found_qsort = False
229+ for frame in stackFrames :
230+ if 'qsort' not in frame ['name' ]:
231+ continue
232+ found_qsort = True
233+ self .assertIn ("sourceReference" , frame ["source" ])
234+ self .assertTrue (found_qsort , 'verify we found the qsort frame' )
245235
246236 @skipIfWindows
247237 def test_functionNameWithArgs (self ):
0 commit comments