summaryrefslogtreecommitdiff
path: root/tests/common.h
blob: db57d405d2bbdf896994af62117431dc65797e2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdlib.h>

#include <check.h>

#include "pipeline.h"

#define TEST_CASE(suite, test, name)                                          \
  do {                                                                        \
    TCase *t = tcase_create (#name);                                          \
    tcase_add_test (t, test_##test##_##name);                                 \
    suite_add_tcase (suite, t);                                               \
  } while (0)

#define TEST_CASE_WITH_FIXTURE(suite, test, name, setup, teardown)            \
  do {                                                                        \
    TCase *t = tcase_create (#name);                                          \
    tcase_add_checked_fixture (t, setup, teardown);                           \
    tcase_add_test (t, test_##test##_##name);                                 \
    suite_add_tcase (suite, t);                                               \
  } while (0)

#define MAIN(test)                                                            \
  int main (int argc _GL_UNUSED, char **argv _GL_UNUSED)                      \
  {                                                                           \
    int failed;                                                               \
    Suite *s = test##_suite ();                                               \
    SRunner *sr = srunner_create (s);                                         \
                                                                              \
    srunner_run_all (sr, CK_ENV);                                             \
    failed = srunner_ntests_failed (sr);                                      \
    srunner_free (sr);                                                        \
    return (failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;                       \
  }

extern char *temp_dir;

void temp_dir_setup (void);
void temp_dir_teardown (void);