private static final String SCEN_SESSION_WITH_SYSCALLS = "GetSessionWithSyscalls";
private static final String SCEN_LIST_SESSION_2_7_COMPAT = "ListSession2.7Compat";
+ private static final String SCEN_GET_SESSION_FILTER_EXPRESSION = "GetSessionFilterExpression";
@Override
protected ILttngControlService getControlService() {
fail(e.toString());
}
}
+
+ @Test
+ public void testGetSessionWithFilterExpression() throws ExecutionException {
+ // FIXME: Disable scheme validation for now until MI 3.0 is integrated
+ LTTngControlServiceMI service = new LTTngControlServiceMI(getShell(), null);
+
+ fShell.setScenario(SCEN_GET_SESSION_FILTER_EXPRESSION);
+ ISessionInfo session = service.getSession("mysession", new NullProgressMonitor());
+
+ // Verify Session
+ assertNotNull(session);
+ assertEquals("mysession", session.getName());
+ assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath());
+ assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
+
+ IDomainInfo[] domains = session.getDomains();
+ assertNotNull(domains);
+ assertEquals(2, domains.length);
+
+ // Verify Kernel domain
+ assertEquals("Kernel", domains[0].getName());
+ IChannelInfo[] channels = domains[0].getChannels();
+ assertNotNull(channels);
+ assertEquals(1, channels.length);
+
+ // Verify Kernel's channel0
+ assertEquals("channel0", channels[0].getName());
+ assertEquals(4, channels[0].getNumberOfSubBuffers());
+ assertEquals("splice()", channels[0].getOutputType().getInName());
+ assertEquals(TraceChannelOutputType.SPLICE, channels[0].getOutputType());
+ assertEquals(false, channels[0].isOverwriteMode());
+ assertEquals(200, channels[0].getReadTimer());
+ assertEquals(TraceEnablement.ENABLED, channels[0].getState());
+ assertEquals(262144, channels[0].getSubBufferSize());
+ assertEquals(0, channels[0].getSwitchTimer());
+
+ // Verify event info
+ IEventInfo[] channel0Events = channels[0].getEvents();
+ assertNotNull(channel0Events);
+ assertEquals(1, channel0Events.length);
+ assertEquals("block_rq_remap", channel0Events[0].getName());
+ assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[0].getLogLevel());
+ assertEquals(TraceEventType.TRACEPOINT, channel0Events[0].getEventType());
+ assertEquals(TraceEnablement.ENABLED, channel0Events[0].getState());
+ assertEquals("foo > 10", channel0Events[0].getFilterExpression());
+
+ // Verify domain UST global
+ assertEquals("UST global", domains[1].getName());
+
+ IChannelInfo[] ustChannels = domains[1].getChannels();
+
+ // Verify UST global's channel0
+ assertEquals("channel0", ustChannels[0].getName());
+ assertEquals(4, ustChannels[0].getNumberOfSubBuffers());
+ assertEquals("mmap()", ustChannels[0].getOutputType().getInName());
+ assertEquals(TraceChannelOutputType.MMAP, ustChannels[0].getOutputType());
+ assertEquals(false, ustChannels[0].isOverwriteMode());
+ assertEquals(200, ustChannels[0].getReadTimer());
+ assertEquals(TraceEnablement.ENABLED, ustChannels[0].getState());
+ assertEquals(4096, ustChannels[0].getSubBufferSize());
+ assertEquals(0, ustChannels[0].getSwitchTimer());
+
+ // Verify event info
+ IEventInfo[] ustEvents = ustChannels[0].getEvents();
+ assertEquals(1, ustEvents.length);
+
+ assertEquals("ust_tests_hello:tptest_sighandler", ustEvents[0].getName());
+ assertEquals(TraceLogLevel.TRACE_DEBUG_LINE, ustEvents[0].getLogLevel());
+ assertEquals(TraceEventType.TRACEPOINT, ustEvents[0].getEventType());
+ assertEquals(TraceEnablement.DISABLED, ustEvents[0].getState());
+ assertEquals("foo > 10", ustEvents[0].getFilterExpression());
+ }
}
</COMMAND_OUTPUT>
</SCENARIO>
+####################################################################
+# Scenario: Test lttng list <name> in the presence of filter expressions
+####################################################################
+<SCENARIO>
+GetSessionFilterExpression
+<COMMAND_INPUT>
+lttng --mi xml list mysession
+</COMMAND_INPUT>
+<COMMAND_RESULT>
+0
+</COMMAND_RESULT>
+<COMMAND_OUTPUT>
+<?xml version="1.0" encoding="UTF-8"?>
+<command>
+ <name>list</name>
+ <output>
+ <sessions>
+ <session>
+ <name>mysession</name>
+ <path>/home/user/lttng-traces/mysession-20120129-084256</path>
+ <enabled>true</enabled>
+ <snapshot_mode>0</snapshot_mode>
+ <live_timer_interval>0</live_timer_interval>
+ <domains>
+ <domain>
+ <type>KERNEL</type>
+ <buffer_type>PER_PID</buffer_type>
+ <channels>
+ <channel>
+ <name>channel0</name>
+ <enabled>true</enabled>
+ <attributes>
+ <overwrite_mode>DISCARD</overwrite_mode>
+ <subbuffer_size>262144</subbuffer_size>
+ <subbuffer_count>4</subbuffer_count>
+ <switch_timer_interval>0</switch_timer_interval>
+ <read_timer_interval>200</read_timer_interval>
+ <output_type>SPLICE</output_type>
+ <tracefile_size>0</tracefile_size>
+ <tracefile_count>0</tracefile_count>
+ <live_timer_interval>0</live_timer_interval>
+ </attributes>
+ <events>
+ <event>
+ <name>block_rq_remap</name>
+ <type>TRACEPOINT</type>
+ <enabled>true</enabled>
+ <filter_expression>foo > 10</filter_expression>
+ <loglevel>TRACE_EMERG</loglevel>
+ <loglevel_type>ALL</loglevel_type>
+ <exclusion>false</exclusion>
+ </event>
+ </events>
+ </channel>
+ </channels>
+ </domain>
+ <domain>
+ <type>UST</type>
+ <buffer_type>PER_UID</buffer_type>
+ <channels>
+ <channel>
+ <name>channel0</name>
+ <enabled>true</enabled>
+ <attributes>
+ <overwrite_mode>DISCARD</overwrite_mode>
+ <subbuffer_size>4096</subbuffer_size>
+ <subbuffer_count>4</subbuffer_count>
+ <switch_timer_interval>0</switch_timer_interval>
+ <read_timer_interval>200</read_timer_interval>
+ <output_type>MMAP</output_type>
+ <tracefile_size>0</tracefile_size>
+ <tracefile_count>0</tracefile_count>
+ <live_timer_interval>0</live_timer_interval>
+ </attributes>
+ <events>
+ <event>
+ <name>ust_tests_hello:tptest_sighandler</name>
+ <type>TRACEPOINT</type>
+ <enabled>false</enabled>
+ <filter_expression>foo > 10</filter_expression>
+ <loglevel>TRACE_DEBUG_LINE</loglevel>
+ <loglevel_type>ALL</loglevel_type>
+ <exclusion>false</exclusion>
+ </event>
+ </events>
+ </channel>
+ </channels>
+ </domain>
+ </domains>
+ </session>
+ </sessions>
+ </output>
+</command>
+</COMMAND_OUTPUT>
+</SCENARIO>
####################################################################
# Scenario: Test lttng list <name> (with live time interval)