mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 11:50:27 +00:00
52 lines
1.7 KiB
C
52 lines
1.7 KiB
C
#ifndef __CLAY_TEST_H__
|
|
#define __CLAY_TEST_H__
|
|
|
|
#include <stdlib.h>
|
|
|
|
void clay__assert(
|
|
int condition,
|
|
const char *file,
|
|
int line,
|
|
const char *error,
|
|
const char *description,
|
|
int should_abort);
|
|
|
|
void cl_set_cleanup(void (*cleanup)(void *), void *opaque);
|
|
|
|
/**
|
|
* Assertion macros with explicit error message
|
|
*/
|
|
#define cl_must_pass_(expr, desc) clay__assert((expr) >= 0, __FILE__, __LINE__, "Function call failed: " #expr, desc, 1)
|
|
#define cl_must_fail_(expr, desc) clay__assert((expr) < 0, __FILE__, __LINE__, "Expected function call to fail: " #expr, desc, 1)
|
|
#define cl_assert_(expr, desc) clay__assert((expr) != 0, __FILE__, __LINE__, "Expression is not true: " #expr, desc, 1)
|
|
|
|
/**
|
|
* Check macros with explicit error message
|
|
*/
|
|
#define cl_check_pass_(expr, desc) clay__assert((expr) >= 0, __FILE__, __LINE__, "Function call failed: " #expr, desc, 0)
|
|
#define cl_check_fail_(expr, desc) clay__assert((expr) < 0, __FILE__, __LINE__, "Expected function call to fail: " #expr, desc, 0)
|
|
#define cl_check_(expr, desc) clay__assert((expr) != 0, __FILE__, __LINE__, "Expression is not true: " #expr, desc, 0)
|
|
|
|
/**
|
|
* Assertion macros with no error message
|
|
*/
|
|
#define cl_must_pass(expr) cl_must_pass_((expr), NULL)
|
|
#define cl_must_fail(expr) cl_must_fail_((expr), NULL)
|
|
#define cl_assert(expr) cl_assert_((expr), NULL)
|
|
|
|
/**
|
|
* Check macros with no error message
|
|
*/
|
|
#define cl_check_pass(expr) cl_check_pass_((expr), NULL)
|
|
#define cl_check_fail(expr) cl_check_fail_((expr), NULL)
|
|
#define cl_check(expr) cl_check_((expr), NULL)
|
|
|
|
|
|
/**
|
|
* Forced failure/warning
|
|
*/
|
|
#define cl_fail(desc) clay__assert(0, __FILE__, __LINE__, "Test failed.", desc, 1)
|
|
#define cl_warning(desc) clay__assert(0, __FILE__, __LINE__, "Warning during test execution:", desc, 0)
|
|
|
|
#endif
|