Skip to content
  1. Mar 13, 2013
  2. Mar 07, 2013
  3. Feb 27, 2013
    • Enrico Granata's avatar
      <rdar://problem/13289828> · d7ac9816
      Enrico Granata authored
      Categories were conceptually meant to be placeable on test methods as well as test classes and test directories
      However, that was broken. This checkin fixes that.
      The incantation required to put categories on individual test case methods is not exactly elegant, unfortunately:
      
      def test_case(self):
          """Test me."""
          self.do_it()
      
      def _test_case_get_categories(self):
          return ["demo"]
      
      test_case.getCategories = _test_case_get_categories
      del _test_case_get_categories
      
      llvm-svn: 176158
      d7ac9816
  4. Feb 26, 2013
    • Jim Ingham's avatar
      Fix the .categories, it had "dataformatter" not "dataformatters". · d882998e
      Jim Ingham authored
      Remove the getCategory from TestDataFormatterObjC.py, since it was superceded by the .categories file, 
      and didn't work anyway (getCategories currently has to be a method on the test class, not on the test.)
      Add a "basic_process" category, and start to find some tests for simple process running sniff tests.
      
      llvm-svn: 176061
      d882998e
  5. Feb 23, 2013
    • Enrico Granata's avatar
      <rdar://problem/12362092> · e6cedc12
      Enrico Granata authored
      The decorators @expectedFailure (plain and special-case like i386, clang, ...) are modified to optionally take a bugnumber argument
      If such an argument is specified, the failure report (or unexpected success report) will include the information passed in as part of the message
      This is mostly useful for associating failures to issue IDs in issue management systems (e.g. the LLVM bugzilla)
      
      llvm-svn: 175942
      e6cedc12
  6. Feb 20, 2013
  7. Feb 19, 2013
  8. Feb 16, 2013
  9. Feb 15, 2013
    • Daniel Malea's avatar
      Improve test harness for the buildbots · cbaef266
      Daniel Malea authored
      - Add a "parsable" mode to dotest.py that outputs test results in exactly the same format as clang's lit tests
      - Improve dosep script to output list of failing tests (output should look like clang test failure summaries)
      - Cleanup lldb/test/Makefile to remove needless parameters and environment variables
      - Switch makefile tests to use parsable-mode output; should make the buildbot results parsable
      - Switch makefile tests to use dosep to log catch crashing tests (instead of halting the test suite)
      
      llvm-svn: 175309
      cbaef266
    • Enrico Granata's avatar
      Daniel Malea caught an issue where calling dotest.py with an invalid directory... · 8628bc59
      Enrico Granata authored
      Daniel Malea caught an issue where calling dotest.py with an invalid directory would cause the progressbar init code to raise an exception
      This commit fixes it
      
      llvm-svn: 175229
      8628bc59
  10. Feb 09, 2013
    • Enrico Granata's avatar
      The new progress bar mode was losing us information compared to the old dots... · eba9e4a3
      Enrico Granata authored
      The new progress bar mode was losing us information compared to the old dots mode in that we would have no way of knowing about test failures (short of peeking into the test result directory.. and you're not supposed to peek!)
      
      Added a new line of information that reports the count of tests that pass, fail or have other things happen to them.
      
      Again no flag to have the dots back. If you care, let us know!
      
      llvm-svn: 174784
      eba9e4a3
    • Enrico Granata's avatar
      <rdar://problem/13176279> · a94ee7da
      Enrico Granata authored
      The LLDB test suite now shows a progress bar instead of dots when not in verbose mode
      If you crave the dots, make your Terminal window smaller than 10 columns :-)
      (or ask for a flag to have the dots come back on demand)
      
      llvm-svn: 174777
      a94ee7da
  11. Feb 08, 2013
  12. Feb 06, 2013
  13. Jan 05, 2013
    • Daniel Malea's avatar
      Fix lldb -P on Linux · 53430eb8
      Daniel Malea authored
      - now prints the correct PYTHONPATH
      - update dotest.py to use lldb -P result correctly
      - resolves TestPublicAPIHeaders test failure (on Linux)
      
      llvm-svn: 171558
      53430eb8
  14. Dec 21, 2012
  15. Dec 14, 2012
    • Enrico Granata's avatar
      Fixing the -f option so that one specify multiple filters, e.g. · 73f601fb
      Enrico Granata authored
      ./dotest.py  -C clang --arch x86_64 --arch i386  -v -t -f ObjCDataFormatterTestCase.test_appkit_with_dsym_and_run_command -f ObjCDataFormatterTestCase.test_appkit_with_dwarf_and_run_command -f TestObjCBuiltinTypes.test_with_dsym_and_python_api -f TestObjCBuiltinTypes.test_with_dwarf_and_python_api -f ObjCDataFormatterTestCase.test_appkit_with_dsym_and_run_command -f ObjCDataFormatterTestCase.test_appkit_with_dwarf_and_run_command -f TestObjCBuiltinTypes.test_with_dsym_and_python_api -f -TestObjCBuiltinTypes.test_with_dwarf_and_python_api
      
      The previous implementation would only remember the last filter passed, and consequently break redo.py
      
      llvm-svn: 170163
      73f601fb
  16. Nov 20, 2012
  17. Nov 01, 2012
  18. Oct 25, 2012
  19. Oct 24, 2012
  20. Oct 23, 2012
  21. Sep 26, 2012
  22. Sep 21, 2012
    • Enrico Granata's avatar
      Initial commit of a new testsuite feature: test categories. · 165f8af8
      Enrico Granata authored
      This feature allows us to group test cases into logical groups (categories), and to only run a subset of test cases based on these categories.
      
      Each test-case can have a new method getCategories(self): which returns a list of strings that are the categories to which the test case belongs.
      If a test-case does not provide its own categories, we will look for categories in the class that contains the test case.
      If that fails too, the default implementation looks for a .category file, which contains a comma separated list of strings.
      The test suite will recurse look for .categories up until the top level directory (which we guarantee will have an empty .category file).
      
      The driver dotest.py has a new --category <foo> option, which can be repeated, and specifies which categories of tests you want to run.
      (example: ./dotest.py --category objc --category expression)
      
      All tests that do not belong to any specified category will be skipped. Other filtering options still exist and should not interfere with category filtering.
      A few tests have been categorized. Feel free to categorize others, and to suggest new categories that we could want to use.
      
      All categories need to be validly defined in dotest.py, or the test suite will refuse to run when you use them as arguments to --category.
      
      In the end, failures will be reported on a per-category basis, as well as in the usual format.
      
      This is the very first stage of this feature. Feel free to chime in with ideas for improvements!
      
      llvm-svn: 164403
      165f8af8
  23. Sep 04, 2012
    • Greg Clayton's avatar
      Patch from Filipe Cabecinhas that uses argparse in dotest.py instead of a hand... · 5ec9645f
      Greg Clayton authored
      Patch from Filipe Cabecinhas that uses argparse in dotest.py instead of a hand coded option. I made a few modifications:
      
      Changed the '-A' option to also have a long option of '--arch'. This is now specified multiple times to get multiple architectures.
      
      Old: -A i386^x86_64
      New: -A i386 -A x86_64
           --arch i386 --arch x86_64
           
      Changed the '-C' option to also have a long option of '--compiler'. This is now specified multiple times to get multiple compiler.
      
      Old: -C clang^gcc
      New: -C clang -C gcc
           --compiler clang --compiler gcc
      llvm-svn: 163141
      5ec9645f
  24. Aug 22, 2012
  25. Aug 16, 2012
  26. Aug 08, 2012
  27. May 22, 2012
  28. Apr 25, 2012
  29. Apr 24, 2012
    • Johnny Chen's avatar
      Add a '-R' option, which is similar to '-r', except that the relocated... · 8f198c96
      Johnny Chen authored
      Add a '-R' option, which is similar to '-r', except that the relocated directory, if exists, will be removed entirely
      before running the test suite.  A usage example looks like this:
      
      test $ ./dotest.py -A x86_64 -R /tmp/x86_64 &
      test $ ./dotest.py -A i386 -R /tmp/i386 &
      
      where we would want to run the x86_64 and i386 archs concurrently but relocate the test suite to different directory
      hierarchies in order not to stump on each other's intermediate files.
      
      llvm-svn: 155491
      8f198c96
  30. Apr 19, 2012
    • Johnny Chen's avatar
      LLDB test suite should also output the config info string along with the stack trace. · c9cb71a0
      Johnny Chen authored
      rdar://problem/11283401
      
      Example:
      
      Collected 1 test
      
      1: test_with_dwarf (TestCallStdStringFunction.ExprCommandCallFunctionTestCase)
         Test calling std::String member function. ... FAIL
      
      ======================================================================
      FAIL: test_with_dwarf (TestCallStdStringFunction.ExprCommandCallFunctionTestCase)
         Test calling std::String member function.
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/Volumes/data/lldb/svn/ToT/test/lldbtest.py", line 427, in wrapper
          return func(self, *args, **kwargs)
        File "/Volumes/data/lldb/svn/ToT/test/expression_command/call-function/TestCallStdStringFunction.py", line 34, in test_with_dwarf
          self.call_function()
        File "/Volumes/data/lldb/svn/ToT/test/expression_command/call-function/TestCallStdStringFunction.py", line 48, in call_function
          substrs = ['Hello world'])
        File "/Volumes/data/lldb/svn/ToT/test/lldbtest.py", line 1235, in expect
          msg if msg else EXP_MSG(str, exe))
      AssertionError: False is not True : 'Hello world' returns expected result
      Config=i386-clang
      ----------------------------------------------------------------------
      Ran 1 test in 1.148s
      
      FAILED (failures=1)
      
      llvm-svn: 155157
      c9cb71a0
    • Johnny Chen's avatar
  31. Apr 16, 2012
    • Johnny Chen's avatar
      Add the capability of supplying the pre/post-flight functions to the test suite such that · 44d24971
      Johnny Chen authored
      the pre-flight code gets executed during setUp() after the debugger instance is available
      and the post-flight code gets executed during tearDown() after the debugger instance has
      done killing the inferior and deleting all the target programs.
      
      Example:
      
      [11:32:48] johnny:/Volumes/data/lldb/svn/ToT/test $ ./dotest.py -A x86_64 -v -c ../examples/test/.lldb-pre-post-flight  functionalities/watchpoint/hello_watchpoint
      config: {'pre_flight': <function pre_flight at 0x1098541b8>, 'post_flight': <function post_flight at 0x109854230>}
      LLDB build dir: /Volumes/data/lldb/svn/ToT/build/Debug
      LLDB-139
      Path: /Volumes/data/lldb/svn/ToT
      URL: https://johnny@llvm.org/svn/llvm-project/lldb/trunk
      Repository Root: https://johnny@llvm.org/svn/llvm-project
      Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
      Revision: 154753
      Node Kind: directory
      Schedule: normal
      Last Changed Author: gclayton
      Last Changed Rev: 154730
      Last Changed Date: 2012-04-13 18:42:46 -0700 (Fri, 13 Apr 2012)
      
      
      lldb.pre_flight: def pre_flight(test):
          __import__("lldb")
          __import__("lldbtest")
          print "\nRunning pre-flight function:"
          print "for test case:", test
      
      lldb.post_flight: def post_flight(test):
          __import__("lldb")
          __import__("lldbtest")
          print "\nRunning post-flight function:"
          print "for test case:", test
      
      
      Session logs for test failures/errors/unexpected successes will go into directory '2012-04-16-11_34_08'
      Command invoked: python ./dotest.py -A x86_64 -v -c ../examples/test/.lldb-pre-post-flight functionalities/watchpoint/hello_watchpoint
      compilers=['clang']
      
      Configuration: arch=x86_64 compiler=clang
      ----------------------------------------------------------------------
      Collected 2 tests
      
      1: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
         Test a simple sequence of watchpoint creation and watchpoint hit. ... 
      Running pre-flight function:
      for test case: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
      
      Running post-flight function:
      for test case: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
      ok
      2: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
         Test a simple sequence of watchpoint creation and watchpoint hit. ... 
      Running pre-flight function:
      for test case: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
      
      Running post-flight function:
      for test case: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
      ok
      
      ----------------------------------------------------------------------
      Ran 2 tests in 1.584s
      
      OK
      
      llvm-svn: 154847
      44d24971
  32. Apr 12, 2012
  33. Apr 06, 2012
    • Johnny Chen's avatar
      Add a new option to the test driver, -N dsym or -N dwarf, in order to exclude tests decorated with · f1548d4f
      Johnny Chen authored
      either @dsym_test or @dwarf_test to be executed during the testsuite run.  There are still lots of
      Test*.py files which have not been decorated with the new decorator.
      
      An example:
      
      # From TestMyFirstWatchpoint.py ->
      class HelloWatchpointTestCase(TestBase):
      
          mydir = os.path.join("functionalities", "watchpoint", "hello_watchpoint")
      
          @dsym_test
          def test_hello_watchpoint_with_dsym_using_watchpoint_set(self):
              """Test a simple sequence of watchpoint creation and watchpoint hit."""
              self.buildDsym(dictionary=self.d)
              self.setTearDownCleanup(dictionary=self.d)
              self.hello_watchpoint()
      
          @dwarf_test
          def test_hello_watchpoint_with_dwarf_using_watchpoint_set(self):
              """Test a simple sequence of watchpoint creation and watchpoint hit."""
              self.buildDwarf(dictionary=self.d)
              self.setTearDownCleanup(dictionary=self.d)
              self.hello_watchpoint()
      
      
      # Invocation ->
      [17:50:14] johnny:/Volumes/data/lldb/svn/ToT/test $ ./dotest.py -N dsym -v -p TestMyFirstWatchpoint.py
      LLDB build dir: /Volumes/data/lldb/svn/ToT/build/Debug
      LLDB-137
      Path: /Volumes/data/lldb/svn/ToT
      URL: https://johnny@llvm.org/svn/llvm-project/lldb/trunk
      Repository Root: https://johnny@llvm.org/svn/llvm-project
      Repository UUID: 91177308-0d34-0410-b5e6-96231b3b80d8
      Revision: 154133
      Node Kind: directory
      Schedule: normal
      Last Changed Author: gclayton
      Last Changed Rev: 154109
      Last Changed Date: 2012-04-05 10:43:02 -0700 (Thu, 05 Apr 2012)
      
      
      
      Session logs for test failures/errors/unexpected successes will go into directory '2012-04-05-17_50_49'
      Command invoked: python ./dotest.py -N dsym -v -p TestMyFirstWatchpoint.py
      compilers=['clang']
      
      Configuration: arch=x86_64 compiler=clang
      ----------------------------------------------------------------------
      Collected 2 tests
      
      1: test_hello_watchpoint_with_dsym_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
         Test a simple sequence of watchpoint creation and watchpoint hit. ... skipped 'dsym tests'
      2: test_hello_watchpoint_with_dwarf_using_watchpoint_set (TestMyFirstWatchpoint.HelloWatchpointTestCase)
         Test a simple sequence of watchpoint creation and watchpoint hit. ... ok
      
      ----------------------------------------------------------------------
      Ran 2 tests in 1.138s
      
      OK (skipped=1)
      Session logs for test failures/errors/unexpected successes can be found in directory '2012-04-05-17_50_49'
      [17:50:50] johnny:/Volumes/data/lldb/svn/ToT/test $ 
      
      llvm-svn: 154154
      f1548d4f
  34. Mar 20, 2012
    • Johnny Chen's avatar
      Add a '-E' option to the test driver for the purpose of specifying some extra CFLAGS · e344486e
      Johnny Chen authored
      to pass to the toolchain in order to build the inferior programs to be run/debugged
      duirng the test suite.  The architecture might dictate some special CFLAGS which are
      more easily specified in a central place (like the command line) instead of inside
      make rules.
      
      For Example,
      
      ./dotest.py -v -r /shared/phone -A armv7 -E "-isysroot your_sdk_root" functionalities/watchpoint/hello_watchpoint
      
      will relocate the particular test directory ('functionalities/watchpoint/hello_watchpoint' in this case) to a
      new directory named '/shared/phone'.  The particular incarnation of the architecture-compiler combination of the
      test support files are therefore to be found under:
      
      /shared/phone.arch=armv7-compiler=clang/functionalities/watchpoint/hello_watchpoint
      
      The building of the inferior programs under testing is now working.
      
      The actual launching/debugging of the inferior programs are not yet working,
      neither is the setting of a watchpoint on the phone.
      
      llvm-svn: 153070
      e344486e
  35. Mar 12, 2012
Loading