| |
| Summary |
| ======= |
| This directory contains integration tests for debug information in libbcc. |
| |
| The tests come in two flavours: host and target. Host tests are run on the |
| build machine (currently, only Linux has been tested extensively) and target |
| tests run on a live Android system (emulator or device.) |
| |
| Host tests use clang to build bytecode (bc) files, which are then executed |
| by the libbcc driver utility (bcc) on the host through GDB. The debugger |
| output is verified against expected output by the llvm tool FileCheck. |
| Both the debugger commands and the expected output are embedded in the |
| original sources as comments of the form "DEBUGGER: " and "CHECK: ". |
| |
| Target tests are similar, but instead of using clang, they use ant and |
| llvm-rs-cc from the Android SDK to build a test binary package (apk) |
| that is uploaded to the device (or emulator) and run with GDB attached. |
| The output is verified in the same way as host side tests, and the format |
| of the tests is the same. |
| |
| *** If you are running target-side tests, you must disable parallel |
| *** execution with the "-j1" flag to llvm-lit |
| |
| |
| Prerequisites |
| ============= |
| To run the tests, you must have built the android source tree and have |
| the build environment variables set (i.e. ANDROID_BUILD_TOP) |
| |
| You need the following tools (not built by the android build system) on |
| your PATH: |
| - gdb (Tested with gdb 7.3 from Ubuntu 11.10) |
| |
| In addition, you need a build of gdbserver available in the prebuilt directory. |
| |
| Customizing |
| =========== |
| By default, llvm-lit will use the clang and bcc driver built in the android |
| output directory. If you wish to use different versions of these tools, |
| set the following environment variables: |
| CLANG - path to clang |
| BCC_DRIVER - path to bcc |
| FILECHECK - path to FileCheck |
| GDB - path to GDB |
| |
| Further customization is possible by modifying the lit.cfg file. |
| |
| |
| Running |
| ======= |
| To execute all the tests from this directory, use the llvm-lit tool: |
| $ ./llvm-lit host-tests |
| $ ./llvm-lit target-tests -j 1 |
| |
| The tool can be run from any directory. |
| -j controls the number of tests to run in parallel |
| -v enables additional verbosity (useful when examining unexpected failures) |
| |
| Adding new tests |
| ================ |
| To add new tests, just add a .c, .cpp, or .rs file to a test directory with |
| similar RUN/DEBUGGER/CHECK directives in comments as the existing tests. |