+
+ /**
+ * Enable the same event multiple times with different filter strings.
+ */
+ @Test
+ public void testEnableEventsDiffFilters() {
+ final String filter1 = "filter1";
+ final String filter2 = "filter2";
+
+ session.enableEvent(EVENT_NAME_A, null, false, null);
+ session.enableEvent(EVENT_NAME_A, null, false, filter1);
+ session.enableEvent(EVENT_NAME_A, null, false, filter2);
+
+ List<EventRule> expectedCommands = Arrays.asList(
+ EventRuleFactory.createRule(EVENT_NAME_A),
+ EventRuleFactory.createRule(EVENT_NAME_A, EventRuleFactory.LOG_LEVEL_UNSPECIFIED, filter1),
+ EventRuleFactory.createRule(EVENT_NAME_A, EventRuleFactory.LOG_LEVEL_UNSPECIFIED, filter2));
+ List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
+
+ assertEquals(expectedCommands, actualCommands);
+ }
+
+ /**
+ * Enable the same event multiple times with different log levels and
+ * filters.
+ */
+ @Test
+ public void testEnableEventsLogLevelAndFilters() {
+ final LogLevelSelector lls = new LogLevelSelector(getLogLevelStrings().warningInt(), LogLevelType.LTTNG_EVENT_LOGLEVEL_RANGE);
+ final String filter = "filter1";
+
+ session.enableEvent(EVENT_NAME_A, null, false, null);
+ session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, null);
+ session.enableEvent(EVENT_NAME_A, null, false, filter);
+ session.enableEvent(EVENT_NAME_A, getLogLevelStrings().warningName(), false, filter);
+
+ List<EventRule> expectedCommands = Arrays.asList(
+ EventRuleFactory.createRule(EVENT_NAME_A),
+ EventRuleFactory.createRule(EVENT_NAME_A, lls),
+ EventRuleFactory.createRule(EVENT_NAME_A, EventRuleFactory.LOG_LEVEL_UNSPECIFIED, filter),
+ EventRuleFactory.createRule(EVENT_NAME_A, lls, filter));
+ List<EventRule> actualCommands = clientListener.getEnabledEventCommands();
+
+ assertEquals(expectedCommands, actualCommands);
+ }