Skip to content
  1. Oct 12, 2010
    • 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
  2. 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
  3. 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
  4. Oct 05, 2010
  5. 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
  6. Sep 30, 2010
  7. 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
  8. 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
  9. Sep 22, 2010
  10. 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
  11. Sep 18, 2010
  12. 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
  13. Sep 15, 2010
  14. Sep 13, 2010
    • Johnny Chen's avatar
      Extend the build mechanism to allow for specifying the compiler used to build · 1394a4b7
      Johnny Chen authored
      the binaries.
      
      If the build* function is passed the compiler argument, for example, 'llvm-gcc',
      it is passed as a make variable to the make command.  Otherwise, we check the
      LLDB_CC environment variable; if it is defined, it is passed as a make variable
      to the make command.
      
      If neither the compiler keyword argument nor the LLDB_CC environment variable is
      specified, no CC make variable is passed to the make command.  The Makefile gets
      to define the default CC being used.
      
      --------------------------------------------------------------------------------
      Example usage follows:
      
      o Via the keyword argument:
      
      class ArrayTypesTestCase(TestBase):
      
          mydir = "array_types"
      
          @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
          def test_with_dsym_and_run_command(self):
              """Test 'frame variable var_name' on some variables with array types."""
              self.buildDsym(compiler='llvm-gcc')
              self.array_types()
      ...
      
      o Via LLDB_CC environment variable:
      
      $ LLDB_CC=llvm-gcc ./dotest.py -v -t array_types
      ----------------------------------------------------------------------
      Collected 4 tests
      
      test_with_dsym_and_python_api (TestArrayTypes.ArrayTypesTestCase)
      Use Python APIs to inspect variables with array types. ... 
      os command: [['/bin/sh', '-c', 'make clean; make MAKE_DSYM=YES CC=llvm-gcc']]
      output: rm -rf "a.out" "a.out.dSYM"  main.o main.d
      llvm-gcc -arch x86_64 -gdwarf-2 -O0 -arch x86_64 -gdwarf-2 -O0  -c -o main.o main.c
      llvm-gcc -arch x86_64 -gdwarf-2 -O0  main.o -o "a.out"
      /usr/bin/dsymutil  -o "a.out.dSYM" "a.out"
      
      ...
      
      llvm-svn: 113781
      1394a4b7
  15. Sep 07, 2010
  16. Sep 04, 2010
  17. Sep 03, 2010
  18. Sep 02, 2010
  19. Sep 01, 2010
  20. Aug 31, 2010
  21. Aug 30, 2010
    • Johnny Chen's avatar
      Added a system() method to the TestBase class of lldbtest.py, which is actually · 8952a2d5
      Johnny Chen authored
      taken from Python 2.7's subprocess.check_output() convenience function.  The
      purpose of this method is to run the os command with arguments and return its
      output as a byte string.
      
      Modified hello_world/TestHelloWorld.py to have two test cases:
      
      o test_with_dsym_and_run_command
      o test_with_dwarf_and_process_launch_api
      
      with the dsym case conditioned on sys.platform.startswith("darwin") being true.
      The two cases utilize the system() method to invoke "make clean; make MAKE_DYSM=YES/NO"
      to prepare for the appropriate debugging format before running the test logic.
      
      llvm-svn: 112530
      8952a2d5
  22. Aug 28, 2010
  23. Aug 27, 2010
Loading