Commit a5472f05 authored by Jon Griffiths's avatar Jon Griffiths

sha256: Simplify test

We can use the iteration count in the test case to determine
whether a single call is required. This simplifies the code and
also means that we don't overstate the actual number of tests
performed by a factor of 2. Simplify a couple of expressions
while we are changing this.
parent e05d1ff2
......@@ -45,15 +45,13 @@ static struct test tests[] = {
#endif
};
static bool do_test(const struct test *t, bool single)
static bool do_test(const struct test *t)
{
struct sha256 h;
if (single) {
if (t->repetitions != 1)
return true;
if (t->repetitions == 1)
sha256(&h, t->test, strlen(t->test));
} else {
else {
struct sha256_ctx ctx = SHA256_INIT;
size_t i;
......@@ -62,7 +60,7 @@ static bool do_test(const struct test *t, bool single)
sha256_done(&ctx, &h);
}
return memcmp(&h.u, t->result, sizeof(t->result)) == 0;
return memcmp(&h, t->result, sizeof(h)) == 0;
}
int main(void)
......@@ -70,13 +68,10 @@ int main(void)
size_t i;
/* This is how many tests you plan to run */
plan_tests(sizeof(tests) / sizeof(struct test) * 2);
plan_tests(sizeof(tests) / sizeof(tests[0]));
for (i = 0; i < sizeof(tests) / sizeof(struct test); i++)
ok1(do_test(&tests[i], false));
for (i = 0; i < sizeof(tests) / sizeof(struct test); i++)
ok1(do_test(&tests[i], true));
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++)
ok1(do_test(&tests[i]));
/* This exits depending on whether all tests passed */
return exit_status();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment