Skip to content
  1. Oct 22, 2010
  2. Oct 21, 2010
    • 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
  3. Oct 20, 2010
  4. Oct 19, 2010
    • Johnny Chen's avatar
      Add a little helper function SETTING_MSG(setting) to be used from... · 3343f04b
      Johnny Chen authored
      Add a little helper function SETTING_MSG(setting) to be used from TestSettings.test_set_output_path().
      
      llvm-svn: 116847
      3343f04b
    • Johnny Chen's avatar
      Change the environment variable name to be more descriptive from... · 430eb760
      Johnny Chen authored
      Change the environment variable name to be more descriptive from LLDB_TIME_WAIT to LLDB_TIME_WAIT_NEXT_LAUNCH.
      
      llvm-svn: 116809
      430eb760
    • Johnny Chen's avatar
      Modify the test driver and lldbtest.TestBase so that the dumping of session info · 04d2c5cb
      Johnny Chen authored
      now goes into a timestamp-specific directory instead of the previous .session-*
      files.
      
      [17:24:34] johnny:/Volumes/data/lldb/svn/trunk $ ls -l test/2010-10-18-16:56:12.935342
      total 48
      -rw-r--r--  1 johnny  admin  1695 Oct 18 16:56 TestArrayTypes.ArrayTypesTestCase.test_with_dsym_and_run_command.log
      -rw-r--r--  1 johnny  admin  1652 Oct 18 16:56 TestArrayTypes.ArrayTypesTestCase.test_with_dwarf_and_run_command.log
      -rw-r--r--  1 johnny  admin  2967 Oct 18 16:56 TestBreakpointCommand.BreakpointCommandTestCase.test_with_dsym.log
      -rw-r--r--  1 johnny  admin  1648 Oct 18 16:56 TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_run_command.log
      -rw-r--r--  1 johnny  admin  1665 Oct 18 16:56 TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase.test_with_dsym_and_python_api.log
      -rw-r--r--  1 johnny  admin  3873 Oct 18 16:58 TestFloatTypesExpr.FloatTypesTestCase.test_float_types_with_dsym.log
      [17:24:37] johnny:/Volumes/data/lldb/svn/trunk $ 
      
      Also, the dumping happens when a test errored in additioned to when it failed.
      
      llvm-svn: 116778
      04d2c5cb
  5. Oct 16, 2010
    • Johnny Chen's avatar
      Missed this spot where module.cleanup() can be passed a test instance to · 24d6ea25
      Johnny Chen authored
      facilitate session recording.  This happens inside an instance method where the
      test instance is well known.
      
      llvm-svn: 116649
      24d6ea25
    • Johnny Chen's avatar
      Some re-achitecturing of the plugins interface. The caller is now required to · 690fcef7
      Johnny Chen authored
      pass in a 'sender' arg to the buildDefault(), buildDsym(), buildDwarf(), and
      cleanup() functions.  The sender arg will be the test instance itself (i.e.,
      an instance of TestBase).  This is so that the relevant command execution can be
      recorded in the TestBase.session object if sender is available.
      
      The lldbtest.system() command has been modified to pop the 'sender' arg out of
      the keyword arguments dictionary and use it as the test instance to facilitate
      seesion recordings.  An example is in test/types/AbstractBase.py:
      
          def generic_type_tester(self, atoms, quotedDisplay=False):
              """Test that variables with basic types are displayed correctly."""
      
              # First, capture the golden output emitted by the oracle, i.e., the
              # series of printf statements.
              go = system("./a.out", sender=self)
      
      There are cases when sender is None.  This is the case when the @classmethod is
      involved in the use of these APIs.  When this happens, there is no recording
      into a session object, but printing on the sys.stderr is still honored if the
      trace flag is ON.
      
      An example is in test/settings/TestSettings.py:
      
          @classmethod
          def classCleanup(cls):
              system(["/bin/sh", "-c", "rm -f output.txt"])
              system(["/bin/sh", "-c", "rm -f stdout.txt"])
      
      llvm-svn: 116648
      690fcef7
  6. Oct 15, 2010
    • Johnny Chen's avatar
      Add a test case for exercising breakpoint conditions using the lldb command: · 27b107b8
      Johnny Chen authored
          breakpoint modify -c 'val == 3' 1
      
      after:
      
          breakpoint set -n c
      
      which sets a breakpoint on function 'c'.  The breakpoint should only stop if
      expression 'val == 3' evaluates to true.
      
      llvm-svn: 116607
      27b107b8
    • Johnny Chen's avatar
      Add a const string for assert message. Remove extra printing of newlines from · 164f1e18
      Johnny Chen authored
      the session recordings.
      
      llvm-svn: 116596
      164f1e18
    • Johnny Chen's avatar
      Add more comments. · fd64df4f
      Johnny Chen authored
      llvm-svn: 116583
      fd64df4f
    • Johnny Chen's avatar
      Be more specific about cases whenthe runCmd() check flag is False, meaning there · ab254f5d
      Johnny Chen authored
      is no need to check the return status of the command execution, and an error
      status is not deemed a failure in the test.
      
      llvm-svn: 116582
      ab254f5d
    • Johnny Chen's avatar
      56f7939c
    • Johnny Chen's avatar
      This is an initial version of test driver enhanceent to be able to dump the · 150c3cc8
      Johnny Chen authored
      session info after a test case failure, allowing more direct inspection of
      debugger session which leads to the test failure.
      
      For a simple usage scenario:
      
      [18:06:26] johnny:/Volumes/data/lldb/svn/trunk/test $ ./dotest.py -v . 2> ~/Developer/Log/lldbtest.log 
      
      ...
      
      [18:14:43] johnny:/Volumes/data/lldb/svn/trunk/test $ ls -l .session-*
      -rw-r--r--  1 johnny  admin  1359 Oct 14 18:06 .session-TestArrayTypes.ArrayTypesTestCase.test_with_dwarf_and_run_command
      -rw-r--r--  1 johnny  admin  2054 Oct 14 18:07 .session-TestClassTypes.ClassTypesTestCase.test_with_dsym_and_expr_parser
      -rw-r--r--  1 johnny  admin  2055 Oct 14 18:07 .session-TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_expr_parser
      -rw-r--r--  1 johnny  admin  1351 Oct 14 17:57 .session-TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_run_command
      [18:14:51] johnny:/Volumes/data/lldb/svn/trunk/test $ 
      
      The test case which failed will have its recorded session info dumped to a
      .session-* file in the current working directory.  For test suite using
      relocated directory, expect to find the .session-* files there.
      
      In this checkin, I also add @skip decorator to the two test methods in
      test/foundation/TestObjCMethods.py as it looks like the test suite is
      deadlocking when running the tests.  More investigations are needed.
      
      llvm-svn: 116552
      150c3cc8
  7. Oct 14, 2010
    • Johnny Chen's avatar
      Add an initial version of test that exercise the lldb commands: 'process signal' · c066ab43
      Johnny Chen authored
      and 'process handle'.  The test suite would like to control the asynch/sync
      execution of the interpreter during the middle of the test method, so the
      CommandInterpreter::SetSynchronous(bool value) is modified to allow the mode to
      be changed more than once.
      
      In practice, it would be advisable to control the process and to set the
      async/sync mode from a single thread, too.
      
      llvm-svn: 116467
      c066ab43
  8. Oct 12, 2010
    • Johnny Chen's avatar
      Avoid using hardcoded line number to break on. Use the line_number() utility · cd9b7779
      Johnny Chen authored
      function to get the line number to break on during setUp().
      
      llvm-svn: 116275
      cd9b7779
    • Johnny Chen's avatar
      Add a utility function to lldbtest.py to return the line number of a matched string · 47ceb032
      Johnny Chen authored
      within a file.  This is to be used within the test case to avoid hardcoded line number.
      
      array_types/TestArrayTypes.py is modified first to use this pattern.  Other test modules
      to follow.
      
      rdar://problem/8537816
      Testsuite: don't set breakpoints by exact file & line number
      
      llvm-svn: 116270
      47ceb032
    • Johnny Chen's avatar
      Added the capability for the test driver to relocate the tests and the intermediate · 707b3c9c
      Johnny Chen authored
      files to a different top level directory than those specified on the command line.
      
      When relocated, the test clanups normally performed afterwards after each test method
      and after each test class will not be exercised at all.  This allows for an easier
      postmortem analysis of test failures.
      
      Example:
      
      ./dotest.py -v -t -r /tmp/lldbtest types
      
      will create a /tmp/lldbtest directory which houses the types directory and its supported
      files.
      
      Files modified:
      
      o dotest.py, lldbtest.py:
      
        Add logic to process '-r dir' option to support relocating the tests to a different
        top level directory instead of exected in place.
      
      o darwin.py, test/types/Makefile:
      
        The 'make clean' should only clean the minimum .o and .d files.
      
      llvm-svn: 116255
      707b3c9c
  9. Oct 08, 2010
    • Johnny Chen's avatar
      o TestStdCXXDisassembly.py: · 65045f21
      Johnny Chen authored
        Update the expected match string.
      
      o lldbtest.py:
      
        Indicate when a command fails, even if there is nothing in the error stream.
      
      o TestHelp.py:
      
        Add a regression test case for 'help image dump symtab'.
      
      o CommandObjectHelp.cpp:
      
        Some of the logic branches with successful help command results were not tagged
        with a Success Status.  They are fixed now.  This is important for Python
        interaction.
      
      llvm-svn: 116062
      65045f21
    • Johnny Chen's avatar
      Move the enum to string utility functions from lldbtest.py to lldbuti.py and · 28ae2942
      Johnny Chen authored
      update the affected API clients.
      
      llvm-svn: 115995
      28ae2942
  10. Oct 07, 2010
    • Johnny Chen's avatar
    • Johnny Chen's avatar
      o SBtarget.cpp/.h: · 0ed37c96
      Johnny Chen authored
        Temporarily commenting out the deprecated LaunchProcess() method.
        SWIG is not able to handle the overloaded functions.
      
      o dotest.py/lldbtest.py:
      
        Add an '-w' option to insert some wait time between consecutive test cases.
      
      o TestClassTypes.py:
      
        Make the breakpoint_creation_by_filespec_python() test method more robust and
        more descriptive by printing out a more insightful assert message.
      
      o lldb.swig: Coaches swig to treat StateType as an int type, instead of a C++ class.
      
      llvm-svn: 115899
      0ed37c96
  11. Oct 05, 2010
  12. Oct 02, 2010
    • Johnny Chen's avatar
      o Added a new feature to the test framework to skip long running tests conditionally. · da88434b
      Johnny Chen authored
        To not skip long running tests, pass '-l' to the test driver (dotest.py).
      
        An example:
      
          @unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
          def test_foundation_disasm(self):
              ...
      
      o Added a long running disassemble test to the foundation directory, which iterates
        the code symbols from Foundation.framework and kicks off a disassemble command for
        for the named function symbol.  Found a crasher: rdar://problem/8504895.
      
      o Plus added/updated some comments for the TestBase class.
      
      llvm-svn: 115368
      da88434b
  13. Sep 30, 2010
  14. Sep 24, 2010
    • Johnny Chen's avatar
      Added a generic_type_tester() to the TestBasicTypes class to be used for · b052f6c5
      Johnny Chen authored
      testing various combinations of displaying variales of basic types.
      
      The generic_type_tester() works by first capturing the golden output produced
      by the printf stmts of ./a.out, creating a list of (var, value) pairs, and then
      running the a.out to a stop point, and comparing the 'frame variable var' output
      against the list of (var, value) pairs.
      
      Modified int_type() and added long_type() to use generic_type_tester().
      
      Also modified TestBase.expect() such that substring matching also return ok if
      the substring starts at the 0-th position.
      
      llvm-svn: 114708
      b052f6c5
  15. Sep 23, 2010
    • Johnny Chen's avatar
      Checked in an initial template for the types directory. Right now, it doesn't · c70b02a3
      Johnny Chen authored
      actually test-and-compare anything yet.  The lldbtest.TestBase has an added
      method setTearDownCleanup(dictionary=None) to facilitate running the cleanup
      right after each data type test is run.  The test case can pass a dictionary
      object when registering the test case cleanup.
      
      There is currently only int_type test in the repository.
      
      llvm-svn: 114600
      c70b02a3
  16. Sep 22, 2010
  17. Sep 21, 2010
    • Johnny Chen's avatar
      Added a more complex test case of breakpoint commands, which executes a sequence · ea88e943
      Johnny Chen authored
      of 'breakpoint command add/list/remove' commands to set breakpoint callbacks,
      list them, and then remove one.
      
      Modified the lldbtest.TestBase.expect() method to add two additional keyword
      arguments:
      
      o matching (default to True), which, if set to False, reverses the semantics of
        'expect' to 'expect not'
      
      o patterns (default to None), which specifies a list of regexp patterns to match
        against the output from running the command
      
      TestBreakpointCommand.py uses the matching=False and the patterns=[...] expect()
      API.
      
      llvm-svn: 114480
      ea88e943
  18. Sep 18, 2010
  19. Sep 16, 2010
    • Johnny Chen's avatar
      Added a test case for the settings command which sets process.output-path and · 2fcc0e55
      Johnny Chen authored
      checks that the launched process writes its standard output there.
      
      llvm-svn: 114102
      2fcc0e55
    • Johnny Chen's avatar
      Provided a mechanism for the test class to cleanup after itself once it's done. · 1a9f4dd5
      Johnny Chen authored
      This will remove the confusion experienced when previous test runs left some
      files (both intermediate or by-product as a result of the test).
      
      lldbtest.TestBase defines a classmethod tearDownClass(cls) which invokes the
      platform-specific cleanup() function as defined by the plugin; after that, it
      invokes a subclass-specific function classCleanup(cls) if defined; and, finally,
      it restores the old working directory.
      
      An example of classCleanup(cls) is in settings/TestSettings.py:
      
          @classmethod
          def classCleanup(cls):
              system(["/bin/sh", "-c", "rm output.txt"])
      
      where it deletes the by-product "output.txt" as a result of running a.out.
      
      llvm-svn: 114058
      1a9f4dd5
  20. Sep 15, 2010
Loading