My Project
Loading...
Searching...
No Matches
unit.h
1/* unit.c API unit tests driver
2 *
3 * Copyright (C) 2006-2020 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22
23#ifndef CyaSSL_UNIT_H
24#define CyaSSL_UNIT_H
25
26#include <wolfssl/ssl.h>
27#include <wolfssl/test.h> /* thread and tcp stuff */
28
29#ifdef WOLFSSL_FORCE_MALLOC_FAIL_TEST
30#define XABORT()
31#else
32#define XABORT() abort()
33#endif
34
35#ifndef WOLFSSL_PASSTHRU_ERR
36#define Fail(description, result) do { \
37 printf("\nERROR - %s line %d failed with:", __FILE__, __LINE__); \
38 printf("\n expected: "); printf description; \
39 printf("\n result: "); printf result; printf("\n\n"); \
40 XABORT(); \
41} while(0)
42#else
43#define Fail(description, result) do { \
44 printf("\nERROR - %s line %d failed with:", __FILE__, __LINE__); \
45 printf("\n expected: ");printf description; \
46 printf("\n result: "); printf result; printf("\n\n"); \
47} while (0)
48#endif
49
50#define Assert(test, description, result) if (!(test)) Fail(description, result)
51
52#define AssertTrue(x) Assert( (x), ("%s is true", #x), (#x " => FALSE"))
53#define AssertFalse(x) Assert(!(x), ("%s is false", #x), (#x " => TRUE"))
54#define AssertNotNull(x) Assert( (x), ("%s is not null", #x), (#x " => NULL"))
55
56#define AssertNull(x) do { \
57 void* _x = (void *) (x); \
58 \
59 Assert(!_x, ("%s is null", #x), (#x " => %p", _x)); \
60} while(0)
61
62#define AssertInt(x, y, op, er) do { \
63 int _x = (int)x; \
64 int _y = (int)y; \
65 \
66 Assert(_x op _y, ("%s " #op " %s", #x, #y), ("%d " #er " %d", _x, _y)); \
67} while(0)
68
69#define AssertIntEQ(x, y) AssertInt(x, y, ==, !=)
70#define AssertIntNE(x, y) AssertInt(x, y, !=, ==)
71#define AssertIntGT(x, y) AssertInt(x, y, >, <=)
72#define AssertIntLT(x, y) AssertInt(x, y, <, >=)
73#define AssertIntGE(x, y) AssertInt(x, y, >=, <)
74#define AssertIntLE(x, y) AssertInt(x, y, <=, >)
75
76#define AssertStr(x, y, op, er) do { \
77 const char* _x = x; \
78 const char* _y = y; \
79 int _z = (_x && _y) ? strcmp(_x, _y) : -1; \
80 \
81 Assert(_z op 0, ("%s " #op " %s", #x, #y), \
82 ("\"%s\" " #er " \"%s\"", _x, _y));\
83} while(0)
84
85#define AssertStrEQ(x, y) AssertStr(x, y, ==, !=)
86#define AssertStrNE(x, y) AssertStr(x, y, !=, ==)
87#define AssertStrGT(x, y) AssertStr(x, y, >, <=)
88#define AssertStrLT(x, y) AssertStr(x, y, <, >=)
89#define AssertStrGE(x, y) AssertStr(x, y, >=, <)
90#define AssertStrLE(x, y) AssertStr(x, y, <=, >)
91
92#define AssertPtr(x, y, op, er) do { \
93 void* _x = (void*)x; \
94 void* _y = (void*)y; \
95 Assert(_x op _y, ("%s " #op " %s", #x, #y), ("%p " #er " %p", _x, _y)); \
96} while(0)
97
98#define AssertPtrEq(x, y) AssertPtr(x, y, ==, !=)
99#define AssertPtrNE(x, y) AssertPtr(x, y, !=, ==)
100#define AssertPtrGT(x, y) AssertPtr(x, y, >, <=)
101#define AssertPtrLT(x, y) AssertPtr(x, y, <, >=)
102#define AssertPtrGE(x, y) AssertPtr(x, y, >=, <)
103#define AssertPtrLE(x, y) AssertPtr(x, y, <=, >)
104
105
106void ApiTest(void);
107int SuiteTest(int argc, char** argv);
108int HashTest(void);
109void SrpTest(void);
110
111
112#endif /* CyaSSL_UNIT_H */
Header file containing key wolfSSL API.