[lldb][tests] Automatically call compute_mydir (NFC)Eliminate boilerplate of having each test manually assign to `mydir` by calling`compute_mydir` in lldbtest.py.Differential Revision: https://r
[lldb][tests] Automatically call compute_mydir (NFC)Eliminate boilerplate of having each test manually assign to `mydir` by calling`compute_mydir` in lldbtest.py.Differential Revision: https://reviews.llvm.org/D128077
show more ...
[lldb] Add assertState function to the API test suiteAdd a function to make it easier to debug a test failure caused by anunexpected state.Currently, tests are using assertEqual which results in
[lldb] Add assertState function to the API test suiteAdd a function to make it easier to debug a test failure caused by anunexpected state.Currently, tests are using assertEqual which results in a cryptic errormessage: "AssertionError: 5 != 10". Even when a test provides a messageto make it clear why a particular state is expected, you still have tofigure out which of the two was the expected state, and what the othervalue corresponds to.We have a function in lldbutil that helps you convert the state numberinto a user readable string. This patch adds a wrapper aroundassertEqual specifically for comparing states and reporting better errormessages.The aforementioned error message now looks like this: "AssertionError:stopped (5) != exited (10)". If the user provided a message, thatcontinues to get printed as well.Differential revision: https://reviews.llvm.org/D127355
[lldb] Introduce createTestTarget for creating a valid target in API testsAt the moment nearly every test calls something similar to`self.dbg.CreateTarget(self.getBuildArtifact("a.out"))` and them
[lldb] Introduce createTestTarget for creating a valid target in API testsAt the moment nearly every test calls something similar to`self.dbg.CreateTarget(self.getBuildArtifact("a.out"))` and them sometimeschecks if the created target is actually valid with something like`self.assertTrue(target.IsValid(), "some useless text")`.Beside being really verbose the error messages generated by this pattern arealways just indicating that the target failed to be created but now why.This patch introduces a helper function `createTestTarget` to our Test classthat creates the target with the much more verbose `CreateTarget` overload thatgives us back an SBError (with a fancy error). If the target couldn't be createdthe function prints out the SBError that LLDB returned and asserts for us. Italso defaults to the "a.out" build artifact path that nearly all tests are usingto avoid to hardcode "a.out" in every test.I converted a bunch of tests to the new function but I'll do the rest of thetest suite as follow ups.Reviewed By: JDevlieghereDifferential Revision: https://reviews.llvm.org/D102771
[lldb] Convert more assertTrue to assertEqual (NFC)Follow up to D95813, this converts multiline assertTrue to assertEqual.Differential Revision: https://reviews.llvm.org/D95899
[lldb] [test] Link FreeBSD test failures to bugsDifferential Revision: https://reviews.llvm.org/D92740
[lldb] Add expect_var_path to test variable path resultsThis adds `expect_var_path` to test variable paths so we no longer have touse `frame var` and find substrs in the command output. The behavi
[lldb] Add expect_var_path to test variable path resultsThis adds `expect_var_path` to test variable paths so we no longer have touse `frame var` and find substrs in the command output. The behaviouris identical with `expect_expr` (and it also uses the same checking backend),but it instead calls `GetValueForVariablePath` to evaluate the string as a variablepath.Also rewrites a few of the tests that previously used `frame variable` to use`expect_var_path`.Reviewed By: labathDifferential Revision: https://reviews.llvm.org/D90450
[lldb] Replace assertTrue(a == b, "msg") with assertEquals(a, b, "msg") in the test suiteSummary:The error message from the construct `assertTrue(a == b, "msg") ` are nearly always completely usel
[lldb] Replace assertTrue(a == b, "msg") with assertEquals(a, b, "msg") in the test suiteSummary:The error message from the construct `assertTrue(a == b, "msg") ` are nearly always completely useless for actually debugging the issue.This patch is just replacing this construct (and similar ones like `assertTrue(a != b, ...)` with the proper call to assertEqual or assertNotEquals.This patch was mostly written by a shell script with some manual verification afterwards:```lang=pythonimport sysdef sanitize_line(line): if line.strip().startswith("self.assertTrue(") and " == " in line: line = line.replace("self.assertTrue(", "self.assertEquals(") line = line.replace(" == ", ", ", 1) if line.strip().startswith("self.assertTrue(") and " != " in line: line = line.replace("self.assertTrue(", "self.assertNotEqual(") line = line.replace(" != ", ", ", 1) return linefor a in sys.argv[1:]: with open(a, "r") as f: lines = f.readlines() with open(a, "w") as f: for line in lines: f.write(sanitize_line(line))```Reviewers: labath, JDevlieghereReviewed By: labathSubscribers: abidh, lldb-commitsTags: #lldbDifferential Revision: https://reviews.llvm.org/D74475
[lldb][test] Remove symlink for API tests.Summary: Moves lldbsuite tests to lldb/test/API.This is a largely mechanical change, moved with the following steps:```rm lldb/test/API/testcasesmkdi
[lldb][test] Remove symlink for API tests.Summary: Moves lldbsuite tests to lldb/test/API.This is a largely mechanical change, moved with the following steps:```rm lldb/test/API/testcasesmkdir -p lldb/test/API/{test_runner/test,tools/lldb-{server,vscode}}mv lldb/packages/Python/lldbsuite/test/test_runner/test lldb/test/API/test_runnerfor d in $(find lldb/packages/Python/lldbsuite/test/* -maxdepth 0 -type d | egrep -v "make|plugins|test_runner|tools"); do mv $d lldb/test/API; donefor d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-vscode -maxdepth 1 -mindepth 1 | grep -v ".py"); do mv $d lldb/test/API/tools/lldb-vscode; donefor d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-server -maxdepth 1 -mindepth 1 | egrep -v "gdbremote_testcase.py|lldbgdbserverutils.py|socket_packet_pump.py"); do mv $d lldb/test/API/tools/lldb-server; done```lldb/packages/Python/lldbsuite/__init__.py and lldb/test/API/lit.cfg.py were also updated with the new directory structure.Reviewers: labath, JDevlieghereTags: #lldbDifferential Revision: https://reviews.llvm.org/D71151