Skip to content
  1. Mar 11, 2011
  2. Mar 04, 2011
    • Johnny Chen's avatar
      Add the ability for the test suite to specify a list of compilers and a list of architectures · e0ec9ea5
      Johnny Chen authored
      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
      e0ec9ea5
  3. Feb 23, 2011
    • Greg Clayton's avatar
      Abtracted all mach-o and ELF out of ArchSpec. This patch is a modified form · 64195a2c
      Greg Clayton authored
      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
      64195a2c
    • Greg Clayton's avatar
      Don't enable thread safe logging as it currently deadlocks logging. · 1971900f
      Greg Clayton authored
      llvm-svn: 126260
      1971900f
  4. Feb 22, 2011
  5. Feb 15, 2011
  6. Feb 14, 2011
  7. Jan 29, 2011
  8. Jan 26, 2011
  9. Jan 19, 2011
  10. Jan 05, 2011
  11. Dec 10, 2010
  12. Dec 08, 2010
  13. Dec 03, 2010
  14. Dec 02, 2010
  15. Dec 01, 2010
    • Johnny Chen's avatar
      Add a '-b blacklistFile' option to the test driver to take a file specifying the · 75739045
      Johnny Chen authored
      test classes or test cases to be excludued from the test suite.
      
      Check in an example blacklist file: blacklist.py:
      
      """
      'blacklist' is a Python dictionary, it stores the mapping of a string describing
      either a testclass or a testcase, i.e, testclass.testmethod, to the reason (a
      string) it is blacklisted.
      
      Following is an example which states that test class IntegerTypesExprTestCase
      should be skipped because 'This test class crashed' and the test case
      FoundationTestCase.test_data_type_and_expr_with_dsym should be skipped because
      it is 'Temporarily disabled'.
      
      blacklist = {'IntegerTypesExprTestCase': 'This test class crashed',
                   'FoundationTestCase.test_data_type_and_expr_with_dsym': 'Temporarily disabled'
                   }
      """
      
      blacklist = {}
      
      An example of invoking the test driver and specifying a blacklist file:
      
      ./dotest.py -b blacklist.py -v types
      
      This runs the tests under 'types' directory but excludes the tests specified in
      balcklist.py.
      
      llvm-svn: 120620
      75739045
  16. Nov 29, 2010
  17. Nov 16, 2010
  18. Nov 11, 2010
  19. Nov 10, 2010
  20. Nov 08, 2010
  21. Nov 05, 2010
  22. Nov 03, 2010
    • Johnny Chen's avatar
      Now that the test suite has very few expected failures remaining (2), it is a good · 110bd0f8
      Johnny Chen authored
      idea to also dump the session information for expected failures in addition to
      failures and errors (tests with unexpected exceptions).
      
      Modify the LLDBTestResult class which derives from unittest2.TextTestResult to
      intercept the addExpectedFailure() method in order to mark the test instance as
      needing its session information dumped.
      
      llvm-svn: 118185
      110bd0f8
  23. Oct 30, 2010
  24. Oct 28, 2010
  25. Oct 22, 2010
  26. Oct 21, 2010
    • Johnny Chen's avatar
      Rewording of output message. · c14e08f4
      Johnny Chen authored
      llvm-svn: 117030
      c14e08f4
    • Johnny Chen's avatar
      Add an option '-s session-dir-name' to overwrite the default timestamp-named · 096011ee
      Johnny Chen authored
      directory used to dump the session info for test failures/errors.
      
      Example:
      
      /Volumes/data/lldb/svn/trunk/test $ ./dotest.py -s jason -v array_types
      
      Session info for test errors or failures will go into directory jason
      ----------------------------------------------------------------------
      Collected 4 tests
      
      test_with_dsym_and_python_api (TestArrayTypes.ArrayTypesTestCase)
      Use Python APIs to inspect variables with array types. ... ok
      test_with_dsym_and_run_command (TestArrayTypes.ArrayTypesTestCase)
      Test 'frame variable var_name' on some variables with array types. ... ok
      test_with_dwarf_and_python_api (TestArrayTypes.ArrayTypesTestCase)
      Use Python APIs to inspect variables with array types. ... ok
      test_with_dwarf_and_run_command (TestArrayTypes.ArrayTypesTestCase)
      Test 'frame variable var_name' on some variables with array types. ... FAIL
      
      ======================================================================
      FAIL: test_with_dwarf_and_run_command (TestArrayTypes.ArrayTypesTestCase)
      Test 'frame variable var_name' on some variables with array types.
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/Volumes/data/lldb/svn/trunk/test/array_types/TestArrayTypes.py", line 27, in test_with_dwarf_and_run_command
          self.array_types()
        File "/Volumes/data/lldb/svn/trunk/test/array_types/TestArrayTypes.py", line 62, in array_types
          'stop reason = breakpoint'])
        File "/Volumes/data/lldb/svn/trunk/test/lldbtest.py", line 594, in expect
          self.runCmd(str, trace = (True if trace else False), check = not error)
        File "/Volumes/data/lldb/svn/trunk/test/lldbtest.py", line 564, in runCmd
          msg if msg else CMD_MSG(cmd, True))
      AssertionError: False is not True : Command 'thread list' returns successfully
      
      ----------------------------------------------------------------------
      Ran 4 tests in 3.086s
      
      FAILED (failures=1)
      /Volumes/data/lldb/svn/trunk/test $ ls jason
      TestArrayTypes.ArrayTypesTestCase.test_with_dwarf_and_run_command.log
      /Volumes/data/lldb/svn/trunk/test $ head -10 jason/TestArrayTypes.ArrayTypesTestCase.test_with_dwarf_and_run_command.log 
      Session info generated @ Thu Oct 21 09:54:15 2010
      
      os command: [['/bin/sh', '-c', 'make clean; make MAKE_DSYM=NO']]
      stdout: rm -rf "a.out" "a.out.dSYM"  main.o main.d
      cc -arch x86_64 -gdwarf-2 -O0   -c -o main.o main.c
      cc -arch x86_64 -gdwarf-2 -O0  main.o -o "a.out"
      
      stderr: None
      retcode: 0
      
      /Volumes/data/lldb/svn/trunk/test $ 
      
      llvm-svn: 117028
      096011ee
Loading