0
6
Login
Code
Issues
1
Pull requests
Events
Packages
ccea5b58b4e4f32574a6d8ce41f114ed08e5fd5a
ccea5b58b4e4f32574a6d8ce41f114ed08e5fd5a

Summary

This directory contains tests for Slang that use the 'llvm-lit' testing tool. Each testcase is a separate .rs file, and comments inside the testcase are used to verify certain strings are present in the output bitcode files.

Prerequisites

To run the tests, you must have the android build environment variables set (i.e. source build/envsetup.sh; lunch). You must also have on your path:

  • Android version of llvm-lit (currently in libbcc/tests/debuginfo)
  • FileCheck (utility from llvm)
  • llvm-rs-cc (slang frontend compiler)

If you are unable to run the tests, try using the "--debug" option to llvm-lit.

When debugging failures, the "-v" option will print to stdout the details of the failure. Note that tests marked as "Expected Fail" (XFAIL) will not print failure information, even with -v.

Customizing

The tools lit and FileCheck are fairly flexible, and could be used to validate more than just emitted bitcode. For example, with some changes to the testcases and the helper shell-script rs-filecheck-wrapper.sh, it should be possible to write tests that verify the emitted Java code.

Running

To execute all the tests from this directory, use the Android llvm-lit tool from libbcc: $ ../../libbcc/tests/debuginfo/llvm-lit .

The tool can be run from any directory. -j controls the number of parallel test executions -v enables additional verbosity (useful when examining unexpected failures)

Adding new tests

To add new tests, just add .rs files to a test directory with similar RUN/CHECK directives in comments as the existing tests.