tests/lib/conds: store triggers in a vector
[babeltrace.git] / tests / lib / conds / conds-triggers.cpp
index 1a463511b0fcff540748ff98ea82882ee41cdb1b..26603cdcbd1d7b096320235e21f9852ef718e7ac 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "cpp-common/bt2/graph.hpp"
 #include "cpp-common/bt2c/c-string-view.hpp"
+#include "cpp-common/bt2s/make-unique.hpp"
 
 #include "utils.hpp"
 
@@ -19,10 +20,12 @@ namespace {
  * Creates a simple condition trigger, calling `func`.
  */
 template <typename FuncT>
-CondTrigger *makeSimpleTrigger(FuncT&& func, const CondTrigger::Type type,
-                               const std::string& condId, const bt2c::CStringView nameSuffix = {})
+CondTrigger::UP makeSimpleTrigger(FuncT&& func, const CondTrigger::Type type,
+                                  const std::string& condId,
+                                  const bt2c::CStringView nameSuffix = {})
 {
-    return new SimpleCondTrigger {std::forward<FuncT>(func), type, condId, nameSuffix};
+    return bt2s::make_unique<SimpleCondTrigger>(std::forward<FuncT>(func), type, condId,
+                                                nameSuffix);
 }
 
 using OnCompInitFunc = std::function<void(bt2::SelfComponent)>;
@@ -60,12 +63,12 @@ private:
  * Creates a condition trigger, calling `func` in a component
  * initialization context.
  */
-CondTrigger *makeRunInCompInitTrigger(OnCompInitFunc func, const CondTrigger::Type type,
-                                      const std::string& condId,
-                                      const bt2c::CStringView nameSuffix = {})
+CondTrigger::UP makeRunInCompInitTrigger(OnCompInitFunc func, const CondTrigger::Type type,
+                                         const std::string& condId,
+                                         const bt2c::CStringView nameSuffix = {})
 {
-    return new RunInCondTrigger<RunInDelegator> {RunInDelegator::makeOnCompInit(std::move(func)),
-                                                 type, condId, nameSuffix};
+    return bt2s::make_unique<RunInCondTrigger<RunInDelegator>>(
+        RunInDelegator::makeOnCompInit(std::move(func)), type, condId, nameSuffix);
 }
 
 bt2::IntegerFieldClass::Shared createUIntFc(const bt2::SelfComponent self)
@@ -73,36 +76,35 @@ bt2::IntegerFieldClass::Shared createUIntFc(const bt2::SelfComponent self)
     return self.createTraceClass()->createUnsignedIntegerFieldClass();
 }
 
-/* Our condition triggers */
-CondTrigger * const triggers[] = {
-    makeSimpleTrigger(
+} /* namespace */
+
+int main(const int argc, const char ** const argv)
+{
+    CondTriggers triggers;
+
+    triggers.emplace_back(makeSimpleTrigger(
         [] {
             bt2::Graph::create(292);
         },
-        CondTrigger::Type::PRE, "graph-create:valid-mip-version"),
+        CondTrigger::Type::PRE, "graph-create:valid-mip-version"));
 
-    makeRunInCompInitTrigger(
+    triggers.emplace_back(makeRunInCompInitTrigger(
         [](const bt2::SelfComponent self) {
             createUIntFc(self)->fieldValueRange(0);
         },
-        CondTrigger::Type::PRE, "field-class-integer-set-field-value-range:valid-n", "0"),
+        CondTrigger::Type::PRE, "field-class-integer-set-field-value-range:valid-n", "0"));
 
-    makeRunInCompInitTrigger(
+    triggers.emplace_back(makeRunInCompInitTrigger(
         [](const bt2::SelfComponent self) {
             createUIntFc(self)->fieldValueRange(65);
         },
-        CondTrigger::Type::PRE, "field-class-integer-set-field-value-range:valid-n", "gt-64"),
+        CondTrigger::Type::PRE, "field-class-integer-set-field-value-range:valid-n", "gt-64"));
 
-    makeSimpleTrigger(
+    triggers.emplace_back(makeSimpleTrigger(
         [] {
             bt_field_class_integer_set_field_value_range(nullptr, 23);
         },
-        CondTrigger::Type::PRE, "field-class-integer-set-field-value-range:not-null:field-class"),
-};
-
-} /* namespace */
+        CondTrigger::Type::PRE, "field-class-integer-set-field-value-range:not-null:field-class"));
 
-int main(const int argc, const char ** const argv)
-{
     condMain(argc, argv, triggers);
 }
This page took 0.023691 seconds and 4 git commands to generate.