1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/test/unit/framework.h
Zdenek Kabelac 18aa541ca2 configure: avoid repeative inclusion of configure.h
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.
2018-12-21 19:19:50 +01:00

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