tests: make pre/post-condition assertions test use the run-in framework
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 23 May 2023 21:45:45 +0000 (17:45 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 31 May 2023 19:47:48 +0000 (15:47 -0400)
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 <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/10061
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
tests/lib/conds/Makefile.am
tests/lib/conds/utils.cpp

index 2db2f8111fd45fcc3759eb767aa28252456d2c03..b6afa6c9594040317ae0e0870bc94e52dc23456a 100644 (file)
@@ -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
index 2837baaff9445cdacb5a1498d6f993ab9b5866c0..7ee486be37e763649b7246f725f98bdf242b4373 100644 (file)
 #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<comp_cls_init_method_data *>(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<cond_trigger_run_in_comp_cls_init_func>(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<void *>(trigger->func.run_in_comp_cls_init));
+        runInCompClsInit(trigger->func.run_in_comp_cls_init);
         break;
     default:
         abort();
This page took 0.026247 seconds and 4 git commands to generate.