From: Simon Marchi Date: Tue, 23 May 2023 21:45:45 +0000 (-0400) Subject: tests: make pre/post-condition assertions test use the run-in framework X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=366250bb5c11b94bbe32f7e1b1f1e85c4687891c tests: make pre/post-condition assertions test use the run-in framework Change this test to use the new "run-in" framework, instead of implementing its own "run in component class" util. Change-Id: If6c84cef632c11fabdbf386a6adabf95e5aac658 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/10061 Reviewed-by: Philippe Proulx Tested-by: jenkins --- diff --git a/tests/lib/conds/Makefile.am b/tests/lib/conds/Makefile.am index 2db2f811..b6afa6c9 100644 --- a/tests/lib/conds/Makefile.am +++ b/tests/lib/conds/Makefile.am @@ -7,6 +7,7 @@ conds_triggers_SOURCES = \ utils.cpp utils.hpp conds_triggers_LDADD = \ + $(top_builddir)/tests/lib/utils/liblib-utils.la \ $(top_builddir)/src/common/libbabeltrace2-common.la \ $(top_builddir)/src/logging/libbabeltrace2-logging.la \ $(top_builddir)/src/lib/libbabeltrace2.la diff --git a/tests/lib/conds/utils.cpp b/tests/lib/conds/utils.cpp index 2837baaf..7ee486be 100644 --- a/tests/lib/conds/utils.cpp +++ b/tests/lib/conds/utils.cpp @@ -15,79 +15,7 @@ #include "common/assert.h" #include "cpp-common/nlohmann/json.hpp" #include "utils.hpp" - -typedef void (*run_in_comp_cls_init_func)(bt_self_component *self_comp, void *user_data); - -struct comp_cls_init_method_data -{ - run_in_comp_cls_init_func func; - void *user_data; -}; - -static bt_component_class_initialize_method_status -comp_cls_init(bt_self_component_source *self_comp, bt_self_component_source_configuration *conf, - const bt_value *params, void *init_method_data) -{ - comp_cls_init_method_data *data = static_cast(init_method_data); - - /* Call user function which is expected to abort */ - data->func(bt_self_component_source_as_self_component(self_comp), data->user_data); - - /* Never reached! */ - return BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR; -} - -static bt_message_iterator_class_next_method_status -msg_iter_cls_next(bt_self_message_iterator *self_msg_iter, bt_message_array_const msgs, - uint64_t capacity, uint64_t *count) -{ - /* Not used */ - return BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR; -} - -static void run_in_comp_cls_init(run_in_comp_cls_init_func func, void *user_data) -{ - bt_message_iterator_class *msg_iter_cls; - bt_component_class_source *comp_cls; - bt_component_class_set_method_status set_method_status; - bt_graph *graph; - struct comp_cls_init_method_data init_method_data = { - .func = func, - .user_data = user_data, - }; - - /* Create component class */ - msg_iter_cls = bt_message_iterator_class_create(msg_iter_cls_next); - BT_ASSERT(msg_iter_cls); - comp_cls = bt_component_class_source_create("yo", msg_iter_cls); - BT_ASSERT(comp_cls); - set_method_status = bt_component_class_source_set_initialize_method(comp_cls, comp_cls_init); - BT_ASSERT(set_method_status == BT_COMPONENT_CLASS_SET_METHOD_STATUS_OK); - - /* Create graph */ - graph = bt_graph_create(0); - BT_ASSERT(graph); - - /* - * Add source component: this calls the initialization method, - * calling `func`. - */ - (void) bt_graph_add_source_component_with_initialize_method_data( - graph, comp_cls, "whatever", NULL, &init_method_data, BT_LOGGING_LEVEL_NONE, NULL); - - /* - * This point is not expected to be reached as func() is - * expected to abort. - */ -} - -static void run_in_comp_cls_init_defer(bt_self_component *self_comp, void *user_data) -{ - cond_trigger_run_in_comp_cls_init_func user_func = - reinterpret_cast(user_data); - - user_func(self_comp); -} +#include "../utils/run-in.hpp" static void run_trigger(const struct cond_trigger *trigger) { @@ -96,8 +24,7 @@ static void run_trigger(const struct cond_trigger *trigger) trigger->func.basic(); break; case COND_TRIGGER_FUNC_TYPE_RUN_IN_COMP_CLS_INIT: - run_in_comp_cls_init(run_in_comp_cls_init_defer, - reinterpret_cast(trigger->func.run_in_comp_cls_init)); + runInCompClsInit(trigger->func.run_in_comp_cls_init); break; default: abort();