# 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.
Last Updated: 6/18/2020, 11:53:28 PM