mirror of
https://github.com/tailix/libkernaux.git
synced 2025-06-16 18:41:45 -04:00
Add example for return asserts
This commit is contained in:
parent
3e071577f3
commit
e3a1284aaf
5 changed files with 90 additions and 5 deletions
50
examples/assert_simple.c
Normal file
50
examples/assert_simple.c
Normal file
|
@ -0,0 +1,50 @@
|
|||
#define KERNAUX_ENABLE_ASSERT
|
||||
#include <kernaux/assert.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
static unsigned int count = 0;
|
||||
static const char *last_file = NULL;
|
||||
static int last_line = 0;
|
||||
static const char *last_str = NULL;
|
||||
|
||||
static void assert_cb(
|
||||
const char *const file,
|
||||
const int line,
|
||||
const char *const str
|
||||
) {
|
||||
++count;
|
||||
last_file = file;
|
||||
last_line = line;
|
||||
last_str = str;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
kernaux_assert_cb = assert_cb;
|
||||
|
||||
KERNAUX_ASSERT(1 == 1);
|
||||
|
||||
assert(count == 0);
|
||||
assert(last_file == NULL);
|
||||
assert(last_line == 0);
|
||||
assert(last_str == NULL);
|
||||
|
||||
KERNAUX_ASSERT(1 != 1);
|
||||
|
||||
assert(count == 1);
|
||||
assert(strcmp(last_file, __FILE__) == 0);
|
||||
assert(last_line == __LINE__ - 4);
|
||||
assert(strcmp(last_str, "1 != 1") == 0);
|
||||
|
||||
KERNAUX_ASSERT(strcmp("qwe", "rty") == 0);
|
||||
|
||||
assert(count == 2);
|
||||
assert(strcmp(last_file, __FILE__) == 0);
|
||||
assert(last_line == __LINE__ - 4);
|
||||
assert(strcmp(last_str, "strcmp(\"qwe\", \"rty\") == 0") == 0);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue