My Project
Loading...
Searching...
No Matches
tests
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
106
void
ApiTest(
void
);
107
int
SuiteTest(
int
argc,
char
** argv);
108
int
HashTest(
void
);
109
void
SrpTest(
void
);
110
111
112
#endif
/* CyaSSL_UNIT_H */
ssl.h
Header file containing key wolfSSL API.