crocs-muni / eacirc

Automatic problem solver based on circuit-like representation and genetic programming
13 stars 8 forks source link

Create testing environment #215

Closed xtracko closed 6 years ago

xtracko commented 7 years ago

Create a environment for regression testing of eacirc's basic functionality, in order to catch silly bugs. Utilize Travis to automate the process of running the tests.

Decide whether to use Googletest or Catch framework.

Don't forget to run the tests under valgrind in Travis.

Bender250 commented 7 years ago

We really need tests. The https://github.com/crocs-muni/eacirc/issues/232 shows, we have multiple bugs in the code.

First (but not small) step should be again implement plaintext =?= decrypt(encrypt(plaintext)) for block and eSTREAM projects. The functions have decryption implemented.

Steps:

  1. Decide for test framework. I and @mitko501 have experience with GoogleCheck, so I would prefer it.
  2. Mockup the streams and state some simple tests (like counter returns 0x01, then 0x02...).
  3. Implement test classes of projects, that take all the ciphers and try decrypt(encrypt(plaintext) == plaintex.
  4. (nice to have) Try to get official test vectors at least for usable testbed (especially for SHA-3, as it is not tested by 3.) and check them.
Bender250 commented 7 years ago

How is this going? Can some progress be committed?

ghost commented 7 years ago

I am working on it, I pushed some changes, I needed to refactor streams.h and streams.cc 26b5a2