[lldb/test] Make "inline" tests handle multiple statements at the same location
authorPavel Labath <pavel@labath.sk>
Thu, 7 May 2020 11:06:02 +0000 (13:06 +0200)
committerPavel Labath <pavel@labath.sk>
Mon, 11 May 2020 14:37:34 +0000 (16:37 +0200)
commitba898282bc204f78016c2e7779dc5cde37e10fd1
treeeda24928ced6efae625ac602cc63ee6ef1c69506
parenta5c23179826a6dc4f26a4f3fcda66290bc04a201
[lldb/test] Make "inline" tests handle multiple statements at the same location

Summary:
The test machinery translates each continuous block of "//%" comments
into a single breakpoint. If there's no code between the blocks the
breakpoints will end up at the same location in the program. When the
process stops at a breakpoint lldb correctly reports all breakpoint IDs,
but the test machinery only looks at the first one. This results in a
very dangerous situation as it means some checks can be silently
stopped.

This patch fixes that by making the test machinery iterate through all
breakpoints at a given location and execute all commands.

Reviewers: vsk, JDevlieghere

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D79563
lldb/packages/Python/lldbsuite/test/lldbinline.py
lldb/test/API/commands/expression/dollar-in-variable/main.c