1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-27 10:25:13 +03:00
lvm2/test/unit/framework.h
2018-04-27 16:55:07 +01:00

50 lines
1.2 KiB
C

#ifndef TEST_UNIT_FRAMEWORK_H
#define TEST_UNIT_FRAMEWORK_H
#include "libdevmapper.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