FreeNOS
TestCase.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Niek Linnenbank
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef __LIBTEST_TESTCASE_H
19 #define __LIBTEST_TESTCASE_H
20 
29 #ifndef private
30 
38 #define private public
39 #endif /* private */
40 
41 /* Same for protected */
42 #ifndef protected
43 #define protected public
44 #endif
45 
46 #include <MemoryBlock.h>
47 #include <stdio.h>
48 #include <List.h>
49 #include <Macros.h>
50 #include "LocalTest.h"
51 
52 #define TestCase(name) \
53  TestResult name (void); \
54  LocalTest instance_##name (QUOTE(name), name); \
55  TestResult name (void)
56 
64 #define testAssert(expression) \
65  if(!(expression)) \
66  { \
67  char msg[256]; \
68  snprintf(msg, sizeof(msg), "%s:%d:%s testAssert failed: `%s' .. ", __FILE__, __LINE__, __FUNCTION__, QUOTE(expression)); \
69  return TestResult(TestResult::Failure, msg); \
70  }
71 
75 #define testString(s1, s2) \
76  testAssert(MemoryBlock::compare((s1), (s2)))
77 
83 #endif /* __LIBTEST_TESTCASE_H */
Macros.h
LocalTest.h
MemoryBlock.h
stdio.h
List.h