# 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.