tests: convert lib conds test to C++
[babeltrace.git] / tests / lib / conds / utils.hpp
diff --git a/tests/lib/conds/utils.hpp b/tests/lib/conds/utils.hpp
new file mode 100644 (file)
index 0000000..1a77bde
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * Copyright (C) 2020 Philippe Proulx <pproulx@efficios.com>
+ */
+
+#ifndef TESTS_LIB_CONDS_UTILS_H
+#define TESTS_LIB_CONDS_UTILS_H
+
+enum cond_trigger_func_type {
+       COND_TRIGGER_FUNC_TYPE_BASIC,
+       COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT,
+};
+
+enum cond_trigger_type {
+       COND_TRIGGER_TYPE_PRE,
+       COND_TRIGGER_TYPE_POST,
+};
+
+typedef void (* cond_trigger_basic_func)(void);
+typedef void (* cond_trigger_run_in_comp_cls_init_func)(bt_self_component *);
+
+struct cond_trigger {
+       enum cond_trigger_type type;
+       enum cond_trigger_func_type func_type;
+       const char *cond_id;
+       const char *suffix;
+       union {
+               cond_trigger_basic_func basic;
+               cond_trigger_run_in_comp_cls_init_func run_in_comp_cls_init;
+       } func;
+};
+
+#define COND_TRIGGER_PRE_BASIC(_cond_id, _suffix, _func)               \
+       {                                                               \
+               .type = COND_TRIGGER_TYPE_PRE,                          \
+               .func_type = COND_TRIGGER_FUNC_TYPE_BASIC,              \
+               .cond_id = _cond_id,                                    \
+               .suffix = _suffix,                                      \
+               .func = {                                               \
+                       .basic = _func,                                 \
+               }                                                       \
+       }
+
+#define COND_TRIGGER_POST_BASIC(_cond_id, _suffix, _func)              \
+       {                                                               \
+               .type = COND_TRIGGER_TYPE_POST,                         \
+               .func_type = COND_TRIGGER_FUNC_TYPE_BASIC,              \
+               .cond_id = _cond_id,                                    \
+               .suffix = _suffix,                                      \
+               .func = {                                               \
+                       .basic = _func,                                 \
+               }                                                       \
+       }
+
+#define COND_TRIGGER_PRE_RUN_IN_COMP_CLS_INIT(_cond_id, _suffix, _func)        \
+       {                                                               \
+               .type = COND_TRIGGER_TYPE_PRE,                          \
+               .func_type = COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT, \
+               .cond_id = _cond_id,                                    \
+               .suffix = _suffix,                                      \
+               .func = {                                               \
+                       .run_in_comp_cls_init = _func,                  \
+               }                                                       \
+       }
+
+#define COND_TRIGGER_POST_RUN_IN_COMP_CLS_INIT(_cond_id, _suffix, _func) \
+       {                                                               \
+               .type = COND_TRIGGER_TYPE_POST,                         \
+               .func_type = COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT, \
+               .cond_id = _cond_id,                                    \
+               .suffix = _suffix,                                      \
+               .func = {                                               \
+                       .run_in_comp_cls_init = _func,                  \
+               }                                                       \
+       }
+
+void cond_main(int argc, const char *argv[],
+               const struct cond_trigger triggers[],
+               size_t trigger_count);
+
+#endif /* TESTS_LIB_CONDS_UTILS_H */
This page took 0.038635 seconds and 4 git commands to generate.