summaryrefslogtreecommitdiffstats
path: root/lldb/test/source-manager/TestSourceManager.py
Commit message (Collapse)AuthorAgeFilesLines
* Work in progress for:Johnny Chen2011-12-201-1/+5
| | | | | | | | | rdar://problem/10577182 Audit lldb API impl for places where we need to perform a NULL check Add NULL checks for SBStream APIs. llvm-svn: 146934
* rdar://problem/10227672Johnny Chen2011-12-121-0/+33
| | | | | | | | | | | | | | | | | | There were two problems associated with this radar: 1. "settings show target.source-map" failed to show the source-map after, for example, "settings set target.source-map /Volumes/data/lldb/svn/trunk/test/source-manager /Volumes/data/lldb/svn/trunk/test/source-manager/hidden" has been executed to set the source-map. 2. "list -n main" failed to display the source of the main() function after we properly set the source-map. The first was fixed by adding the missing functionality to TargetInstanceSettings::GetInstanceSettingsValue (Target.cpp) and updating the support files PathMappingList.h/.cpp; the second by modifying SourceManager.cpp to fix several places with incorrect logic. Also added a test case test_move_and_then_display_source() to TestSourceManager.py, which moves main.c to hidden/main.c, sets target.source-map to perform the directory mapping, and then verifies that "list -n main" can still show the main() function. llvm-svn: 146422
* Passing in os.ctermid() as the arg for SBTarget.Launch(...) for stdin_path, ↵Johnny Chen2011-07-111-2/+1
| | | | | | | | | | | | stdout_path, and stderr_path is just wrong and resulted in the inferior's output getting mixed into the GDB remote communication's log file. Change all test cases to not pass os.ctermid() and either use SBTarget.LaunchSimple() or SBTarget.Launch() and pass None as stdin_path/stdout_path/srderr_path to use a pseudo terminal. rdar://problem/9716499 program output is getting mixed into the GDB remote communications llvm-svn: 134940
* Now that we have added a post-processing step for adding truth value testing toJohnny Chen2011-05-241-1/+1
| | | | | | | those lldb objects which implement the IsValid() method, let's change the rest of the test suite to use the more compact truth value testing pattern (the Python way). llvm-svn: 131970
* Add a test scenario for 'source list -b' which shows the line table ↵Johnny Chen2011-04-201-1/+16
| | | | | | | | locations from the debug information which indicates valid places to set source level breakpoints. llvm-svn: 129871
* Use self.TraceOn() API.Johnny Chen2011-04-191-6/+10
| | | | llvm-svn: 129825
* Centralized a lot of the status information for processes,Greg Clayton2011-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | threads, and stack frame down in the lldb_private::Process, lldb_private::Thread, lldb_private::StackFrameList and the lldb_private::StackFrame classes. We had some command line commands that had duplicate versions of the process status output ("thread list" and "process status" for example). Removed the "file" command and placed it where it should have been: "target create". Made an alias for "file" to "target create" so we stay compatible with GDB commands. We can now have multple usable targets in lldb at the same time. This is nice for comparing two runs of a program or debugging more than one binary at the same time. The new command is "target select <target-idx>" and also to see a list of the current targets you can use the new "target list" command. The flow in a debug session can be: (lldb) target create /path/to/exe/a.out (lldb) breakpoint set --name main (lldb) run ... hit breakpoint (lldb) target create /bin/ls (lldb) run /tmp Process 36001 exited with status = 0 (0x00000000) (lldb) target list Current targets: target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) * target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) target select 0 Current targets: * target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) bt * thread #1: tid = 0x2d03, 0x0000000100000b9a a.out`main + 42 at main.c:16, stop reason = breakpoint 1.1 frame #0: 0x0000000100000b9a a.out`main + 42 at main.c:16 frame #1: 0x0000000100000b64 a.out`start + 52 Above we created a target for "a.out" and ran and hit a breakpoint at "main". Then we created a new target for /bin/ls and ran it. Then we listed the targest and selected our original "a.out" program, so we showed two concurent debug sessions going on at the same time. llvm-svn: 129695
* Modify self.expect() patterns to react to API change for ↵Johnny Chen2011-03-301-6/+6
| | | | | | SourceManager.DisplaySourceLinesWithLineNumbers(). llvm-svn: 128581
* Add the ability for the test suite to specify a list of compilers and a list ↵Johnny Chen2011-03-041-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of architectures on the command line. For example, use '-A x86_64^i386' to launch the inferior use both x86_64 and i386. This is an example of building the debuggee using both clang and gcc compiers: [17:30:46] johnny:/Volumes/data/lldb/svn/trunk/test $ ./dotest.py -C clang^gcc -v -f SourceManagerTestCase.test_modify_source_file_while_debugging Session logs for test failures/errors will go into directory '2011-03-03-17_31_39' Command invoked: python ./dotest.py -C clang^gcc -v -f SourceManagerTestCase.test_modify_source_file_while_debugging Configuration: compiler=clang ---------------------------------------------------------------------- Collected 1 test 1: test_modify_source_file_while_debugging (TestSourceManager.SourceManagerTestCase) Modify a source file while debugging the executable. ... Command 'run' failed! original content: #include <stdio.h> int main(int argc, char const *argv[]) { printf("Hello world.\n"); // Set break point at this line. return 0; } new content: #include <stdio.h> int main(int argc, char const *argv[]) { printf("Hello lldb.\n"); // Set break point at this line. return 0; } os.path.getmtime() after writing new content: 1299202305.0 content restored to: #include <stdio.h> int main(int argc, char const *argv[]) { printf("Hello world.\n"); // Set break point at this line. return 0; } os.path.getmtime() after restore: 1299202307.0 ok ---------------------------------------------------------------------- Ran 1 test in 8.259s OK Configuration: compiler=gcc ---------------------------------------------------------------------- Collected 1 test 1: test_modify_source_file_while_debugging (TestSourceManager.SourceManagerTestCase) Modify a source file while debugging the executable. ... original content: #include <stdio.h> int main(int argc, char const *argv[]) { printf("Hello world.\n"); // Set break point at this line. return 0; } new content: #include <stdio.h> int main(int argc, char const *argv[]) { printf("Hello lldb.\n"); // Set break point at this line. return 0; } os.path.getmtime() after writing new content: 1299202307.0 content restored to: #include <stdio.h> int main(int argc, char const *argv[]) { printf("Hello world.\n"); // Set break point at this line. return 0; } os.path.getmtime() after restore: 1299202309.0 ok ---------------------------------------------------------------------- Ran 1 test in 2.301s OK [17:31:49] johnny:/Volumes/data/lldb/svn/trunk/test $ llvm-svn: 126979
* Modify test scripts to accomodate SBTarget.Launch() API change.Johnny Chen2011-02-031-1/+1
| | | | llvm-svn: 124828
* Deprecated old forms of SBTarget::Launch. There is not just one and noGreg Clayton2011-01-231-1/+2
| | | | | | SWIG renaming done to work around deprecated APIs. llvm-svn: 124075
* Make the test case SourceManagerTestCase.display_source_python stronger by alsoJohnny Chen2010-12-131-1/+1
| | | | | | matching the source line number displayed. llvm-svn: 121706
* Add test_display_source_python() test case to TestSourceManager.py which usesJohnny Chen2010-12-111-0/+44
| | | | | | | | | | the lldb PyThon API SBSourceManager to display source files. To accomodate this, the C++ SBSourceManager API has been changed to take an lldb::SBStream as the destination for display of source lines. Modify SBStream::ctor() so that its opaque pointer is initialized with an StreamString instance. llvm-svn: 121605
* Minor docstring change.Johnny Chen2010-12-091-2/+3
| | | | llvm-svn: 121419
* Remove unnecessary imports.Johnny Chen2010-12-091-3/+1
| | | | llvm-svn: 121393
* Add a test/source-manager directory for testing lldb core component ↵Johnny Chen2010-12-091-0/+83
SourceManager. Initial test case test_modify_source_file_while_debugging() in TestSourceManager.py tests the caching mechanism of the source manager. llvm-svn: 121389
OpenPOWER on IntegriCloud