1 /* Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file.
4 *
5 * Common functions used by tests.
6 */
7
8 #include "test_common.h"
9
10 #include <stdint.h>
11 #include <stdio.h>
12 #include <string.h>
13
14 #include "cryptolib.h"
15 #include "file_keys.h"
16 #include "utility.h"
17
18 /* Global test success flag. */
19 int gTestSuccess = 1;
20
TEST_EQ(int result,int expected_result,const char * testname)21 int TEST_EQ(int result, int expected_result, const char* testname) {
22 if (result == expected_result) {
23 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
24 return 1;
25 } else {
26 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
27 fprintf(stderr, " Expected: 0x%x (%d), got: 0x%x (%d)\n",
28 expected_result, expected_result, result, result);
29 gTestSuccess = 0;
30 return 0;
31 }
32 }
33
TEST_NEQ(int result,int not_expected_result,const char * testname)34 int TEST_NEQ(int result, int not_expected_result, const char* testname) {
35 if (result != not_expected_result) {
36 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
37 return 1;
38 } else {
39 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
40 fprintf(stderr, " Didn't expect 0x%x (%d), but got it.\n",
41 not_expected_result, not_expected_result);
42 gTestSuccess = 0;
43 return 0;
44 }
45 }
46
TEST_PTR_EQ(const void * result,const void * expected_result,const char * testname)47 int TEST_PTR_EQ(const void* result, const void* expected_result,
48 const char* testname) {
49 if (result == expected_result) {
50 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
51 return 1;
52 } else {
53 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
54 fprintf(stderr, " Expected: 0x%lx, got: 0x%lx\n", (long)expected_result,
55 (long)result);
56 gTestSuccess = 0;
57 return 0;
58 }
59 }
60
TEST_PTR_NEQ(const void * result,const void * not_expected_result,const char * testname)61 int TEST_PTR_NEQ(const void* result, const void* not_expected_result,
62 const char* testname) {
63 if (result != not_expected_result) {
64 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
65 return 1;
66 } else {
67 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
68 fprintf(stderr, " Didn't expect 0x%lx, but got it\n",
69 (long)not_expected_result);
70 gTestSuccess = 0;
71 return 0;
72 }
73 }
74
TEST_STR_EQ(const char * result,const char * expected_result,const char * testname)75 int TEST_STR_EQ(const char* result, const char* expected_result,
76 const char* testname) {
77
78 if (!result || !expected_result) {
79 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
80 fprintf(stderr, " String compare with NULL\n");
81 gTestSuccess = 0;
82 return 0;
83 } else if (!strcmp(result, expected_result)) {
84 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
85 return 1;
86 } else {
87 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
88 fprintf(stderr, " Expected: \"%s\", got: \"%s\"\n", expected_result,
89 result);
90 gTestSuccess = 0;
91 return 0;
92 }
93
94 }
95
TEST_SUCC(int result,const char * testname)96 int TEST_SUCC(int result, const char* testname) {
97 if (result == 0) {
98 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
99 } else {
100 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
101 fprintf(stderr, " Expected SUCCESS, got: 0x%lx\n", (long)result);
102 gTestSuccess = 0;
103 }
104 return !result;
105 }
106
TEST_TRUE(int result,const char * testname)107 int TEST_TRUE(int result, const char* testname) {
108 if (result) {
109 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
110 } else {
111 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
112 fprintf(stderr, " Expected TRUE, got 0\n");
113 gTestSuccess = 0;
114 }
115 return result;
116 }
117
TEST_FALSE(int result,const char * testname)118 int TEST_FALSE(int result, const char* testname) {
119 if (!result) {
120 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
121 } else {
122 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
123 fprintf(stderr, " Expected FALSE, got: 0x%lx\n", (long)result);
124 gTestSuccess = 0;
125 }
126 return !result;
127 }
128