Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Functional test framework #198

Open
jot2re opened this issue Nov 30, 2017 · 2 comments
Open

Functional test framework #198

jot2re opened this issue Nov 30, 2017 · 2 comments
Labels
Status: Pending Issues not currently being solved. Type: Enhancement New functionality related issues.

Comments

@jot2re
Copy link
Collaborator

jot2re commented Nov 30, 2017

We need a generic, easy to use, framework for setting up functional tests of protocols. Right now it seems to be individual for each protocol with a lot of code-copy.
Basically the TestRuntime from the Mascot package is very nice, but tightly bounded to Mascot. I think the best would be to just generalise this.

@GuutBoy GuutBoy added Status: Pending Issues not currently being solved. Type: Enhancement New functionality related issues. labels Nov 30, 2017
@pffrandsen
Copy link
Collaborator

I agree the current system is inadequate. I think though it requires a bit more thought - and as nice as the TestRuntime is, I think it has it shortcomings.

There are several types of tests, the two biggest parts are:

  • Protocol suites (e.g. TestDummyArithmeticProtocolSuite) which should be a test suite created with a supplier of a (numeric) running protocol suite
  • Components which could be mascot, in which case you need a par-function - similar, but not identical to, runPerPartyTasks

A better framework would include caching of engines and allow parallel execution of tests.

I think in order to understand this issue, we should map out the needs of the persons using the tests, i.e. expand on my list and present examples.

@jot2re
Copy link
Collaborator Author

jot2re commented Jan 17, 2018

Some nice features that could be added to this hypothetical framework:

  • Easily running methods in parallel to ensure that parallel execution does in fact work.
  • A nice way of verifying exceptions are thrown, and are of the type and with message expected.
  • Easy methods for typical sanity checks (such as different from 0 checking and uniqueness).
  • Perhaps a way to test that things sent that are supposed to look random have approximately an equal amount of 0 and 1 bits. (Or some other easy randomness metric).
  • Perhaps a way to ensure that if a party sends something incorrect, then the result is either as expected or a Malicious Exception is thrown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Pending Issues not currently being solved. Type: Enhancement New functionality related issues.
Projects
None yet
Development

No branches or pull requests

3 participants