From 4cd71260c253d59e7347d8b3398eb31b88c4bffa Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Wed, 25 Sep 2019 00:58:39 +0000 Subject: [PATCH] [Documentation] Expand on testing variants. The testing documentation appears to be from an era when the only kind of tests were the lldbsuite python tests. This patch adds a short description of the unittests and LIT tests and how to run them. Patch by: Lawrence D'Anna Differential revision: https://reviews.llvm.org/D67943 llvm-svn: 372797 --- lldb/docs/resources/test.rst | 61 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/lldb/docs/resources/test.rst b/lldb/docs/resources/test.rst index d77941a..3a4f210 100644 --- a/lldb/docs/resources/test.rst +++ b/lldb/docs/resources/test.rst @@ -1,11 +1,20 @@ Testing ======= -The LLDB test suite consists of Python scripts located under the test -directory. Each script contains a number of test cases and is usually -accompanied by a C (C++, ObjC, etc.) source file. Each test first compiles the -source file and then uses LLDB to debug the resulting executable. The tests -verify both the LLDB command line interface and the scripting API. +The LLDB test suite consists of three different kinds of test: + +* Python scripts located under ``lldb/packages/Python/lldbsuite``. + These are written using python's unittest2 testing framework. + +* Unit tests, located under ``lldb/unittests``. These are written in C++, + using googletest. + +* LIT tests, located under ``lldb/lit``. These use the LLVM Integrated Tester. + +Many of the tests are accompanied by a C (C++, ObjC, etc.) source file. Each test +first compiles the source file and then uses LLDB to debug the resulting executable. + +The tests verify both the LLDB command line interface and the scripting API. .. contents:: :local: @@ -46,8 +55,8 @@ Note that multiple ``-A`` and ``-C`` flags can be specified to ``LLDB_TEST_USER_ARGS``. -Running a Specific Test or Set of Tests ---------------------------------------- +Running a Specific Test or Set of Tests: Python +----------------------------------------------- In addition to running all the LLDB test suites with the ``check-lldb`` CMake target above, it is possible to run individual LLDB tests. If you have a CMake @@ -86,6 +95,44 @@ Many more options that are available. To see a list of all of them, run: > python dotest.py -h + +Running a Specific Test or Set of Tests: Unit Tests +--------------------------------------------------- + +The unit tests are simple executables, located in the build directory under ``tools/lldb/unittests``. + +To run them, just run the test binary, for example, to run all the Host tests: + +:: + + > ./tools/lldb/unittests/Host/HostTests + + +To run a specific test, pass a filter, for example: + +:: + + > ./tools/lldb/unittests/Host/HostTests --gtest_filter=SocketTest.DomainListenConnectAccept + + +Running a Specific Test or Set of Tests: LIT +-------------------------------------------- + +LIT automatically scans a directory for tests. To run a subset of the LIT tests, pass it a +subdirectory, for example: + +:: + + > ./bin/llvm-lit -sv tools/lldb/lit/Commands/CommandScriptImmediateOutput + + +LIT can also filter based on test name. + +:: + + > ./bin/llvm-lit -sv tools/lldb/lit --filter CommandScriptImmediateOutput + + Running the Test Suite Remotely ------------------------------- -- 2.7.4