CLibs
Loading...
Searching...
No Matches
assert_that.h
Go to the documentation of this file.
1/*
2 * Assert with a message
3 *
4 * Created by MacBook on 25.12.2024.
5 */
6
7#ifndef CLIBS_ASSERT_THAT_H
8#define CLIBS_ASSERT_THAT_H
9
10/* for this header */
11#include "errors.h" /* warn */
12
13#include <stdlib.h> /* exit */
14
15/* includes */
16#include <assert.h>
17
18#ifndef NDEBUG
19
20#ifndef CLIBS_ASSERT_THAT_EXIT_VAL
21#define CLIBS_ASSERT_THAT_EXIT_VAL RV_EXCEPTION
22#endif // CLIBS_ASSERT_THAT_EXIT_VAL
23
24
55#define assert_that( EXPRESSION, ... ) \
56 do \
57 { \
58 if ( !( EXPRESSION ) ) \
59 exit( ( int ) fflwarnx_ret( \
60 CLIBS_ASSERT_THAT_EXIT_VAL, \
61 "Assertion error: " COLOR_DEFAULT #EXPRESSION COLOR_WARNING \
62 ": " __VA_ARGS__ ) ); \
63 } \
64 while ( 0 )
65
66#else
67
68#define assert_that( EXPRESSION, ... )
69
70#endif //NDEBUG
71
72#endif //CLIBS_ASSERT_THAT_H