|
| 1 | +# List of existing tests |
| 2 | + |
| 3 | +## End-to-end testing |
| 4 | + |
| 5 | +These tests are meant to be executed on a running Parsec service and using a Parsec client to |
| 6 | +communicate to it. The |
| 7 | +[`parsec/e2e_tests`](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests) crate contains |
| 8 | +a test client based on the Rust client that is used inside the tests written in |
| 9 | +[`parsec/e2e_tests/tests`](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests). |
| 10 | + |
| 11 | +The end-to-end tests contain tests to be executed: * with a Parsec service containing a single |
| 12 | +provider: |
| 13 | +[`per_provider`](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/per_provider) |
| 14 | +tests * with a Parsec service containing all providers: |
| 15 | +[`all_providers`](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/all_providers) |
| 16 | +and [`config`](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/config) tests |
| 17 | + |
| 18 | +The |
| 19 | +[`parsec/e2e_tests/provider_cfg`](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/provider_cfg) |
| 20 | +folder contain the `Dockerfile` and Parsec configuration needed to run Parsec for the corresponding |
| 21 | +tests. |
| 22 | + |
| 23 | +| Name | Description | |
| 24 | +|------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
| 25 | +| [All providers e2e tests](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/all_providers) | End-to-end tests on a service with all providers. Mostly to test core operations. | |
| 26 | +| [Cross-providers e2e tests](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/all_providers/cross.rs) | Test that the output of various operations from different providers is accepted by the other providers. | |
| 27 | +| [Configuration e2e tests](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/config) | These check if the behaviour of the service is correct before and after reloading with a different configuration. | |
| 28 | +| [Per provider normal tests](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/per_provider/normal_tests) | E2E tests checking most cryptographic operations on a single provider. Parsec results are also verified with third party software crypto implementations (ring, the rsa crate, etc...). | |
| 29 | +| [Per provider persistence tests](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/per_provider/persistent_before.rs) | E2E tests checking correct behaviour of the service around persistence of keys in the Key Info Manager. | |
| 30 | +| [Per provider stress tests](https://github.com/parallaxsecond/parsec/tree/master/e2e_tests/tests/per_provider/stress_test.rs) | Stress tests executing a large number of canonical operations at high frequency on a single provider. | |
| 31 | + |
| 32 | +## Fuzz testing |
| 33 | + |
| 34 | +| Name | Description | |
| 35 | +|---------------------------------------------------------------------------|-------------------------------------------------------------------------------| |
| 36 | +| [Fuzz testing](https://github.com/parallaxsecond/parsec/tree/master/fuzz) | Tests sending random requests to the service and waiting it to crash/timeout. | |
| 37 | + |
| 38 | +## Unit testing |
| 39 | + |
| 40 | +| Name | Description | |
| 41 | +|-------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------| |
| 42 | +| [Direct authenticator tests](https://github.com/parallaxsecond/parsec/blob/master/src/authenticators/direct_authenticator/mod.rs) | Testing the `Authenticate` trait with this authenticator. | |
| 43 | +| [On-disk key info manager tests](https://github.com/parallaxsecond/parsec/blob/master/src/key_info_managers/on_disk_manager/mod.rs) | Testing the `ManageKeyInfo` trait with various strings for application and key names. The persistence is tested in the end-to-end tests. | |
| 44 | + |
| 45 | +## In dependencies |
| 46 | + |
| 47 | +The dependencies that we maintain in the `parallaxsecond` organisation also contain their own set of |
| 48 | +integration and unit tests: `parsec-interface-rs`, `rust-psa-crypto` and `rust-tss-esapi`. |
| 49 | + |
| 50 | +*Copyright 2020 Contributors to the Parsec project.* |
0 commit comments