| from lldbsuite.test.lldbinline import CommandParser |
| from lldbsuite.test.lldbtest import Base |
| import textwrap |
| |
| |
| class TestCommandParser(Base): |
| def test_indentation(self): |
| """Test indentation handling""" |
| filename = self.getBuildArtifact("test_file.cpp") |
| with open(filename, "w") as f: |
| f.write( |
| textwrap.dedent( |
| """\ |
| int q; |
| int w; //% first break |
| int e; |
| int r; //% second break |
| //% continue second |
| //% continuing indented |
| //% not indented |
| int t; //% third break |
| """ |
| ) |
| ) |
| p = CommandParser() |
| p.parse_source_files([filename]) |
| |
| def bkpt(line, cmd): |
| return {"file_name": filename, "line_number": line, "command": cmd} |
| |
| self.assertEqual( |
| p.breakpoints, |
| [ |
| bkpt(2, "first break"), |
| bkpt( |
| 4, |
| "second break\ncontinue second\n continuing indented\nnot indented", |
| ), |
| bkpt(8, "third break"), |
| ], |
| ) |