Add an initial version of an end-to-end test framework: A set of python scripts that start sslsplit in various configurations, send requests through it, checking all of client-side, server-side and resulting logs. Test case specification with script callbacks (test cases are python modules).
[ ] Make initial list of tests we'd want to be able to support, decide on minimal viable feature set
[x] Research if there is already an existing test framework that could support our use cases
[ ] Write initial set of end-to-end tests covering most frequent/important use cases, which must cover as an absolute minimum at least the tcp and ssl modes, the single-file connection log, and the single-file content log
[ ] Run the end-to-end tests as part of make test, including TravisCI builds
[ ] Manage the test dependencies in GNUmakefile
Only if using an existing framework:
[x] Learn and configure it for our purposes
Only if not using an existing framework:
[ ] Design and document basic structure of a test
[ ] Write test runner: loading all tests, setting up fixtures (e.g. server), running tests, reporting results; consider using Docker as an underlying fabric
Out of scope:
Achieving comprehensive test coverage, especially for less common features and scenarios
Add an initial version of an end-to-end test framework: A set of python scripts that start sslsplit in various configurations, send requests through it, checking all of client-side, server-side and resulting logs. Test case specification with script callbacks (test cases are python modules).
tcp
andssl
modes, the single-file connection log, and the single-file content logmake test
, including TravisCI buildsGNUmakefile
Only if using an existing framework:Learn and configure it for our purposesOnly if not using an existing framework:
Out of scope: