mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
18aa541ca2
Since configure.h is a generated header and it's missing traditional ifdefs preambule - it can be included & parsed multiple times. Normally compiler is fine when defines have same value and there is no warning - yet we don't need to parse this several times and by adding -include directive we can ensure every file in the package is rightly compile with configure.h as the first header file.
50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
#ifndef TEST_UNIT_FRAMEWORK_H
|
|
#define TEST_UNIT_FRAMEWORK_H
|
|
|
|
#include "device_mapper/all.h"
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <setjmp.h>
|
|
|
|
//-----------------------------------------------------------------
|
|
|
|
// A test suite gathers a set of tests with a common fixture together.
|
|
struct test_suite {
|
|
struct dm_list list;
|
|
|
|
void *(*fixture_init)(void);
|
|
void (*fixture_exit)(void *);
|
|
struct dm_list tests;
|
|
};
|
|
|
|
struct test_details {
|
|
struct test_suite *parent;
|
|
struct dm_list list;
|
|
|
|
const char *path;
|
|
const char *desc;
|
|
void (*fn)(void *);
|
|
};
|
|
|
|
struct test_suite *test_suite_create(void *(*fixture_init)(void),
|
|
void (*fixture_exit)(void *));
|
|
void test_suite_destroy(struct test_suite *ts);
|
|
|
|
bool register_test(struct test_suite *ts,
|
|
const char *path, const char *desc, void (*fn)(void *));
|
|
|
|
void test_fail(const char *fmt, ...)
|
|
__attribute__((noreturn, format (printf, 1, 2)));
|
|
|
|
#define T_ASSERT(e) do {if (!(e)) {test_fail("assertion failed: '%s'", # e);} } while(0)
|
|
#define T_ASSERT_EQUAL(x, y) T_ASSERT((x) == (y))
|
|
#define T_ASSERT_NOT_EQUAL(x, y) T_ASSERT((x) != (y))
|
|
|
|
extern jmp_buf test_k;
|
|
#define TEST_FAILED 1
|
|
|
|
//-----------------------------------------------------------------
|
|
|
|
#endif
|