X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Fnotification%2Fnotification.c;fp=tests%2Fregression%2Ftools%2Fnotification%2Fnotification.c;h=556a0e0b1b8807618f2bd7bb02ac5a330d7f0772;hp=1b657663c9816361022e9118efde5b6bac7d967a;hb=695f70446965aeac8b1118bb08d572630c96114d;hpb=cade690d4a2d1c398be9a519295de5b959c3f8bc diff --git a/tests/regression/tools/notification/notification.c b/tests/regression/tools/notification/notification.c index 1b657663c..556a0e0b1 100644 --- a/tests/regression/tools/notification/notification.c +++ b/tests/regression/tools/notification/notification.c @@ -1453,6 +1453,18 @@ static void create_tracepoint_event_rule_trigger(const char *event_pattern, struct lttng_condition **condition, struct lttng_trigger **trigger) { + typedef struct lttng_event_rule *(*event_rule_create)(void); + typedef enum lttng_event_rule_status ( + *event_rule_set_name_pattern)( + struct lttng_event_rule *rule, + const char *pattern); + typedef enum lttng_event_rule_status (*event_rule_set_filter)( + struct lttng_event_rule *rule, + const char *expression); + typedef enum lttng_event_rule_status ( + *event_rule_add_name_pattern_exclusion)( + struct lttng_event_rule * rule, const char *exclusion); + enum lttng_event_rule_status event_rule_status; struct lttng_action *tmp_action = NULL; struct lttng_event_rule *event_rule = NULL; @@ -1460,24 +1472,45 @@ static void create_tracepoint_event_rule_trigger(const char *event_pattern, struct lttng_trigger *tmp_trigger = NULL; int ret; enum lttng_error_code ret_code; + event_rule_create create; + event_rule_set_name_pattern set_name_pattern; + event_rule_set_filter set_filter; + event_rule_add_name_pattern_exclusion add_name_pattern_exclusion; assert(event_pattern); assert(trigger_name); assert(condition); assert(trigger); - event_rule = lttng_event_rule_tracepoint_create(domain_type); + /* Set the function pointers based on the domain type. */ + switch (domain_type) { + case LTTNG_DOMAIN_UST: + create = lttng_event_rule_user_tracepoint_create; + set_name_pattern = lttng_event_rule_user_tracepoint_set_name_pattern; + set_filter = lttng_event_rule_user_tracepoint_set_filter; + add_name_pattern_exclusion = lttng_event_rule_user_tracepoint_add_name_pattern_exclusion; + break; + case LTTNG_DOMAIN_KERNEL: + create = lttng_event_rule_kernel_tracepoint_create; + set_name_pattern = lttng_event_rule_kernel_tracepoint_set_name_pattern; + set_filter = lttng_event_rule_kernel_tracepoint_set_filter; + add_name_pattern_exclusion = NULL; + break; + default: + abort(); + break; + } + + event_rule = create(); ok(event_rule, "Tracepoint event rule object creation"); - event_rule_status = lttng_event_rule_tracepoint_set_name_pattern( - event_rule, event_pattern); + event_rule_status = set_name_pattern(event_rule, event_pattern); ok(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK, "Setting tracepoint event rule pattern: '%s'", event_pattern); if (filter) { - event_rule_status = lttng_event_rule_tracepoint_set_filter( - event_rule, filter); + event_rule_status = set_filter(event_rule, filter); ok(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK, "Setting tracepoint event rule filter: '%s'", filter); @@ -1488,13 +1521,12 @@ static void create_tracepoint_event_rule_trigger(const char *event_pattern, bool success = true; assert(domain_type == LTTNG_DOMAIN_UST); + assert(add_name_pattern_exclusion != NULL); assert(exclusion_count > 0); for (i = 0; i < exclusion_count; i++) { - event_rule_status = - lttng_event_rule_tracepoint_add_name_pattern_exclusion( - event_rule, - exclusions[i]); + event_rule_status = add_name_pattern_exclusion( + event_rule, exclusions[i]); if (event_rule_status != LTTNG_EVENT_RULE_STATUS_OK) { fail("Setting tracepoint event rule exclusion '%s'.", exclusions[i]);