1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <stdlib.h>
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <stdio.h>
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <string.h>
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "unit_test.h"
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid run_tests(struct test tests[])
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	int i;
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	for (i = 0; tests[i].name; i++) {
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		printf("Test %s\n", tests[i].name);
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		memset(&tests[i].result, 0, sizeof(tests[i].result));
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		tests[i].test_func(&tests[i].result);
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		printf("Test %s (%d/%d) pass\n", tests[i].name,
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org			tests[i].result.pass, tests[i].result.test_count);
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	}
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid test_begin(struct test_result * result)
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	result->test_count++;
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid test_check(struct test_result * result, int cond)
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	printf("Subtest %u -> ", result->test_count);
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	if (cond) {
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		result->pass++;
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		printf("Pass");
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	} else {
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		result->fail++;
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		printf("Fail");
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	}
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	printf("\n");
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
36