gpg-lacre/doc/testing.md

1.3 KiB

Testing

First tests have been set up to cover GPG Mailgate with at least basic test that would be easy to run. The tests are called "end-to-end", meaning that we feed some input to GPG Mailgate and inspect the output.

Running tests

To run tests, use command make test or make unittest.

Tests produce some helpful logs, so inspect contents of test/logs directory if something goes wrong.

Key building blocks

  • Test Script (test/e2e_test.py) that orchestrates the other components. It performs test cases described in the Test Configuration. It spawns Test Mail Relay and GPG Mailgate in appropriate order.
  • Test Mail Relay (test/relay.py), a simplistic mail daemon that only supports the happy path. It accepts a mail message and prints it to stdandard output.
  • Test Configuration (test/e2e.ini) specifies test cases: their input, expected results and helpful documentation. It also specifies the port that the Test Mail Relay should listen on.

Limitations

Currently tests only check if the message has been encrypted, without verifying that the correct key has been used. That's because we don't know (yet) how to have a reproducible encrypted message. Option --faked-system-time wasn't enough to produce identical output.