tree: 7687866f110a75ef0347db417c3c23a5bef65f5a [path history] [tgz]
  1. README.md
  2. fixtures/
  3. functional/
  4. integration/
  5. scripts/
  6. unit/
  7. utils/
tests/README.md

permalink: /docs/codebase/tests

Test Harness and Test Cases

This directory contains all tests in Teaclave including unit tests, integration tests, functional tests and some test fixtures.

Run Tests

To run all tests with our build system:

$ make run-tests

You can also run tests separately:

$ make run-unit-tests
$ make run-integration-tests
$ make run-functional-tests    # this will start all services in the background automatically

Test Coverage

To generate a coverage report for tests, you can configure cmake with -DCOV=ON. Then build the platform and run all tests. At last, you need to run make cov to aggregate coverage results.

Directory Structure

  • unit: Unit tests are small and more focused, testing one module in isolation at a time, and can test private interfaces. This directory contains a test driver to test individual units/components or private interfaces. Test cases of unit tests are placed along with source code.
  • integration: Integration tests are entirely external to libraries, using only the public interface and potentially exercising multiple modules per test. This directory contains a test driver and test cases to test public interfaces in common libraries.
  • functional: Functional testing is a type of black-box testing. In Teaclave, the test cases are usually sent through RPC channel. This directory contains a test driver and test cases for Teaclave services. To run these tests, services need to be launched.
  • fixtures: Testing fixtures are some files and sample inputs/outputs for testing only.
  • utils: Common utilities for test drivers.