Commit Graph

617 Commits

Author SHA1 Message Date
Greg Clayton 64195a2c8b Abtracted all mach-o and ELF out of ArchSpec. This patch is a modified form
of Stephen Wilson's idea (thanks for the input Stephen!). What I ended up
doing was:
- Got rid of ArchSpec::CPU (which was a generic CPU enumeration that mimics
  the contents of llvm::Triple::ArchType). We now rely upon the llvm::Triple 
  to give us the machine type from llvm::Triple::ArchType.
- There is a new ArchSpec::Core definition which further qualifies the CPU
  core we are dealing with into a single enumeration. If you need support for
  a new Core and want to debug it in LLDB, it must be added to this list. In
  the future we can allow for dynamic core registration, but for now it is
  hard coded.
- The ArchSpec can now be initialized with a llvm::Triple or with a C string
  that represents the triple (it can just be an arch still like "i386").
- The ArchSpec can still initialize itself with a architecture type -- mach-o
  with cpu type and subtype, or ELF with e_machine + e_flags -- and this will
  then get translated into the internal llvm::Triple::ArchSpec + ArchSpec::Core.
  The mach-o cpu type and subtype can be accessed using the getter functions:
  
  uint32_t
  ArchSpec::GetMachOCPUType () const;

  uint32_t
  ArchSpec::GetMachOCPUSubType () const;
  
  But these functions are just converting out internal llvm::Triple::ArchSpec 
  + ArchSpec::Core back into mach-o. Same goes for ELF.

All code has been updated to deal with the changes.

This should abstract us until later when the llvm::TargetSpec stuff gets
finalized and we can then adopt it.

llvm-svn: 126278
2011-02-23 00:35:02 +00:00
Greg Clayton 1971900fdc Don't enable thread safe logging as it currently deadlocks logging.
llvm-svn: 126260
2011-02-22 23:08:31 +00:00
Greg Clayton 76b436e21d Make logs threadsafe (add the -t option) when logging API stuff.
llvm-svn: 126257
2011-02-22 22:59:30 +00:00
Jim Ingham 85e8b81492 - Changed all the places where CommandObjectReturn was exporting a StreamString to just exporting
a Stream, and then added GetOutputData & GetErrorData to get the accumulated data.
- Added a StreamTee that will tee output to two provided lldb::StreamSP's.
- Made the CommandObjectReturn use this so you can Tee the results immediately to
the debuggers output file, as well as saving up the results to return when the command
is done executing.
- HandleCommands now uses this so that if you have a set of commands that continue the target
you will see the commands come out as they are processed.
- The Driver now uses this to output the command results as you go, which makes the interface
more reactive seeming.

llvm-svn: 126015
2011-02-19 02:53:09 +00:00
Johnny Chen f8cd4889ec Fix clang++ warning building the executable for testing.
llvm-svn: 125682
2011-02-16 19:22:52 +00:00
Johnny Chen ffb3b51ba8 Refactored the test driver to abstract out the Python sys.path specification for
different build configurations.

llvm-svn: 125584
2011-02-15 18:50:19 +00:00
Greg Clayton c2448f6175 Added support for Xcode 4 build directories.
llvm-svn: 125522
2011-02-14 21:17:06 +00:00
Johnny Chen 259326c821 Instead of self.runCmd(), do a stronger self.expect("process status") which also
checks that the process is stopped due to breakpoint at the specified line no.

llvm-svn: 125400
2011-02-11 20:11:06 +00:00
Johnny Chen 0061ff20d8 Fix another typo.
llvm-svn: 125323
2011-02-11 00:07:26 +00:00
Johnny Chen b18528df84 Fix a typo.
llvm-svn: 125322
2011-02-11 00:06:48 +00:00
Johnny Chen b500ffe071 Add TestConstStrings.py under foundation dir for testing expression parser on objective-c strings
and constant strings.

llvm-svn: 125320
2011-02-10 23:58:37 +00:00
Sean Callanan 229ce2d5b1 Fixes for two bugs:
- Objective-C constant strings were being
  NULL-terminated erroneously.

- Empty Objective-C constant strings were not
  being generated correctly.

Also added the template for a test of these
fixes.

llvm-svn: 125314
2011-02-10 22:17:53 +00:00
Greg Clayton 000aeb89ae Patch from Kirk Beitz to make things compile on MinGW minus the putenv part.
llvm-svn: 125199
2011-02-09 17:41:27 +00:00
Johnny Chen 933fefdd6a Add new radar info for failed test.
llvm-svn: 125100
2011-02-08 18:37:49 +00:00
Johnny Chen 78bb926f9b Make the assertion message about 32-bit process address byte size more clear.
llvm-svn: 125099
2011-02-08 18:31:06 +00:00
Caroline Tice 79042b3e93 Change "breakpoint list" command to default to brief output rather than full output.
Modify test cases in test suite to either expect brief output or to pass -f for full
output as appropriate.

llvm-svn: 124905
2011-02-04 22:59:41 +00:00
Johnny Chen 7fa6c95b05 Add test_apropos_should_also_search_settings_description() to make sure that:
apropos 'environment variable'

searches all settings description and returns a topic related to:

    target.process.env-vars

llvm-svn: 124841
2011-02-04 00:50:49 +00:00
Johnny Chen d762ff1faa Modify test scripts to accomodate SBTarget.Launch() API change.
llvm-svn: 124828
2011-02-03 23:15:53 +00:00
Johnny Chen ff885ce667 Add teardown hook to clear image-search-paths after the test.
llvm-svn: 124806
2011-02-03 18:03:54 +00:00
Johnny Chen 769302a97f Parametrize make variable CC to also test with clang.
llvm-svn: 124764
2011-02-03 00:44:32 +00:00
Johnny Chen 32679314fe Parametrize make variable CC to also test with clang.
llvm-svn: 124763
2011-02-03 00:38:18 +00:00
Johnny Chen 7791b3320b Add a test case test_image_search_paths() to test lldb's ability to do image search paths
substitutions in order to achieve file mappings.

Modify CommandObjectTarget.cpp to properly set the status of the return object to make
scripting like this:

    self.runCmd("target image-search-paths add %s %s" % (os.getcwd(), new_dir))

works.

llvm-svn: 124762
2011-02-03 00:30:19 +00:00
Caroline Tice 2bf67986ef Fix breakpoint id test to work with clang as well as gcc; added a few
more test cases

Fixed minor bug in the breakpoint id range translation code.

llvm-svn: 124729
2011-02-02 17:48:16 +00:00
Johnny Chen ab62873b63 Fix test function breakpoint_command_script_parameters()'s expect-pattern so that
it passes when using clang as the compiler to build the inferior.

llvm-svn: 124707
2011-02-02 00:56:40 +00:00
Johnny Chen a1c833769e Add TestVirtual.py to go with test/cpp/virtual/main.cpp file, which tests
C++ virtual function and virtual inheritance.

llvm-svn: 124642
2011-02-01 01:23:34 +00:00
Greg Clayton c30c39982d Added a virtual C++ test case that catches some interesting cases
that you run into with inheritance.

llvm-svn: 124619
2011-01-31 23:14:35 +00:00
Caroline Tice 4dd2a3bb97 Test warning for pending breakpoints.
llvm-svn: 124600
2011-01-31 20:27:28 +00:00
Caroline Tice 1196d48842 Add test for breakpoint id ranges.
llvm-svn: 124598
2011-01-31 20:21:32 +00:00
Caroline Tice 5126986ffc Add test for help on aliased commands.
llvm-svn: 124594
2011-01-31 19:34:56 +00:00
Caroline Tice c9c235e796 Add a few more settings tests.
llvm-svn: 124589
2011-01-31 18:18:54 +00:00
Johnny Chen 74d53758c5 Added comment.
llvm-svn: 124517
2011-01-29 01:21:04 +00:00
Johnny Chen 6573818e38 Add a "-D" option to the test driver which dumps the Python sys.path variable
to be used for the test run.  Could be useful for debugging the setup of the
test environment.

llvm-svn: 124516
2011-01-29 01:16:52 +00:00
Johnny Chen ec1ccca61a Use different log files for the two test cases in order not to confuse the logging subsystem.
llvm-svn: 124513
2011-01-29 00:52:54 +00:00
Caroline Tice 836e3aba16 Add a test case to verify that the frame and breakpoint location
are being properly passed down to script breakpoint commands.

llvm-svn: 124511
2011-01-29 00:20:56 +00:00
Caroline Tice 8607f03af1 Add a test case to check logging of command processing.
Currently this test case works fine run by itself, but fails when
run in the entire test suite; Johnny requested that I check it in
so that he can look at it.

llvm-svn: 124510
2011-01-29 00:19:53 +00:00
Johnny Chen 6bcb81a773 Add "import sys" for sys.stdout.
llvm-svn: 124504
2011-01-28 20:59:39 +00:00
Johnny Chen 49c2245354 The restoring of sys.stdout should happen right after:
self.runCmd("script my.date()")

In case the self.expect() fails, the restore would not be executed.

llvm-svn: 124500
2011-01-28 19:39:06 +00:00
Johnny Chen c03a362b16 Hardened the test_command_source() test case by actually capturing the output
from running the "script my.date()" lldb command and comparing it against our
expected result.

llvm-svn: 124499
2011-01-28 19:30:12 +00:00
Caroline Tice 163ae0986b Add comment.
llvm-svn: 124495
2011-01-28 18:31:34 +00:00
Caroline Tice c3cc59c119 Remove comments I accidentally left in before.
llvm-svn: 124490
2011-01-28 17:34:54 +00:00
Caroline Tice 29329ada20 Add tests for 'process launch' I/O flags.
llvm-svn: 124489
2011-01-28 17:31:28 +00:00
Johnny Chen 8b2c3217fd Minor comment change.
llvm-svn: 124488
2011-01-28 17:22:29 +00:00
Johnny Chen 3ff8e96cf7 Some cleanup to plugins/darwin.py after the recent additions of '-A arch' and '-C compiler'
command line options to the test driver.  Replace TestBase.getRunSpec() with TestBase.getRunOptions().

llvm-svn: 124353
2011-01-27 02:58:54 +00:00
Johnny Chen 4f7370f7ae Add "-A arch_spec" and "-C compiler_spec" options to the test driver. Example:
$ ./dotest.py -A i386 -C clang -v -w -t -p TestObjCMethods.py
$ ./dotest.py -A x86_64 -C gcc -v -w types

llvm-svn: 124303
2011-01-26 19:07:42 +00:00
Johnny Chen 93b0c8b2aa Remove the expectedFailure decorator for the fixed bug:
rdar://problem/8435794
    settings set target.process.output-path does not seem to work

Also change the test case from test_set_output_path to test_set_error_output_path
as it now exercises both setting target.process.error-path and target.process.output-path.

llvm-svn: 124198
2011-01-25 17:39:43 +00:00
Johnny Chen 109941b078 Fix wrong order of "import lldbutil" statement and its usage in the failure case.
llvm-svn: 124196
2011-01-25 17:17:45 +00:00
Greg Clayton 6f907e69e9 Deprecated old forms of SBTarget::Launch. There is not just one and no
SWIG renaming done to work around deprecated APIs.

llvm-svn: 124075
2011-01-23 17:46:22 +00:00
Johnny Chen 661ba65dd8 Add test cases for the scenario of selecting a frame index while stopped, and
then doing a thread step-out.  This should lead us to the caller frame of the
frame we just selected.

llvm-svn: 123984
2011-01-21 18:23:16 +00:00
Johnny Chen af5fe69860 Remove the expectedFailure decorators. The bug:
rdar://problem/8875425 Found mySource->isa local variable assertion failed

has been fixed.

llvm-svn: 123924
2011-01-20 17:40:51 +00:00
Johnny Chen 2a67aa721f Add the cmdline to invoke the Python profile reporting module.
llvm-svn: 123844
2011-01-19 19:48:29 +00:00