Commit | Line | Data |
---|---|---|
eb1bab5b | 1 | /********************************************************************** |
2ba3d0a1 | 2 | * Copyright (c) 2012, 2013 Ericsson |
cfdb727a | 3 | * |
eb1bab5b BH |
4 | * All rights reserved. This program and the accompanying materials are |
5 | * made available under the terms of the Eclipse Public License v1.0 which | |
6 | * accompanies this distribution, and is available at | |
7 | * http://www.eclipse.org/legal/epl-v10.html | |
cfdb727a AM |
8 | * |
9 | * Contributors: | |
eb1bab5b | 10 | * Bernd Hufmann - Initial API and implementation |
2ba3d0a1 | 11 | * Alexandre Montplaisir - Port to JUnit4 |
eb1bab5b | 12 | **********************************************************************/ |
2ba3d0a1 | 13 | |
115b4a01 | 14 | package org.eclipse.linuxtools.lttng2.ui.tests.control.service; |
eb1bab5b | 15 | |
2ba3d0a1 AM |
16 | import static org.junit.Assert.*; |
17 | ||
d132bcc7 BH |
18 | import java.io.File; |
19 | import java.net.URL; | |
20 | import java.util.ArrayList; | |
4ea599a5 | 21 | import java.util.HashSet; |
eb1bab5b | 22 | import java.util.List; |
4ea599a5 | 23 | import java.util.Set; |
eb1bab5b | 24 | |
eb1bab5b | 25 | import org.eclipse.core.commands.ExecutionException; |
d132bcc7 | 26 | import org.eclipse.core.runtime.FileLocator; |
bbb3538a | 27 | import org.eclipse.core.runtime.NullProgressMonitor; |
d132bcc7 | 28 | import org.eclipse.core.runtime.Path; |
9315aeee BH |
29 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo; |
30 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IChannelInfo; | |
31 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IDomainInfo; | |
32 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IEventInfo; | |
d4514365 | 33 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IFieldInfo; |
9315aeee BH |
34 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.ISessionInfo; |
35 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IUstProviderInfo; | |
36 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.LogLevelType; | |
37 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEnablement; | |
38 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEventType; | |
39 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel; | |
40 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceSessionState; | |
41 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.ChannelInfo; | |
115b4a01 BH |
42 | import org.eclipse.linuxtools.internal.lttng2.stubs.service.CommandShellFactory; |
43 | import org.eclipse.linuxtools.internal.lttng2.stubs.shells.LTTngToolsFileShell; | |
115b4a01 BH |
44 | import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.ILttngControlService; |
45 | import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.LTTngControlService; | |
276c17e7 | 46 | import org.eclipse.linuxtools.internal.lttng2.ui.views.control.service.LTTngControlServiceFactory; |
2ba3d0a1 AM |
47 | import org.junit.Before; |
48 | import org.junit.Test; | |
9269df72 | 49 | import org.osgi.framework.FrameworkUtil; |
2ba3d0a1 | 50 | |
eb1bab5b | 51 | /** |
2ba3d0a1 AM |
52 | * The class <code>LTTngControlServiceTest</code> contains test for the class |
53 | * <code>{@link LTTngControlService}</code>. | |
eb1bab5b | 54 | */ |
cfdb727a | 55 | @SuppressWarnings({"nls", "javadoc"}) |
2ba3d0a1 | 56 | public class LTTngControlServiceTest { |
d132bcc7 BH |
57 | |
58 | private static final String DIRECTORY = "testfiles"; | |
59 | private static final String TEST_STREAM = "LTTngServiceTest.cfg"; | |
cfdb727a | 60 | |
d132bcc7 | 61 | private static final String SCEN_LTTNG_NOT_INSTALLED = "LttngNotInstalled"; |
276c17e7 | 62 | private static final String SCEN_LTTNG_VERSION = "LttngVersion"; |
d6fc6e1b | 63 | private static final String SCEN_LTTNG_VERSION_WITH_PROMPT = "LttngVersionWithPrompt"; |
276c17e7 BH |
64 | private static final String SCEN_LTTNG_UNSUPPORTED_VERSION = "LttngUnsupportedVersion"; |
65 | private static final String SCEN_LTTNG_NO_VERSION = "LttngNoVersion"; | |
d132bcc7 BH |
66 | private static final String SCEN_NO_SESSION_AVAILABLE = "NoSessionAvailable"; |
67 | private static final String SCEN_GET_SESSION_NAMES1 = "GetSessionNames1"; | |
68 | private static final String SCEN_GET_SESSION_NAME_NOT_EXIST = "GetSessionNameNotExist"; | |
69 | private static final String SCEN_GET_SESSION_GARBAGE_OUT = "GetSessionGarbageOut"; | |
70 | private static final String SCEN_GET_SESSION1 = "GetSession1"; | |
71 | private static final String SCEN_GET_KERNEL_PROVIDER1 = "GetKernelProvider1"; | |
a07c7629 BH |
72 | private static final String SCEN_LIST_WITH_NO_KERNEL1 = "ListWithNoKernel1"; |
73 | private static final String SCEN_LIST_WITH_NO_KERNEL2 = "ListWithNoKernel2"; | |
d132bcc7 BH |
74 | private static final String SCEN_GET_UST_PROVIDER1 = "GetUstProvider1"; |
75 | private static final String SCEN_GET_UST_PROVIDER2 = "GetUstProvider2"; | |
d4514365 | 76 | private static final String SCEN_GET_UST_PROVIDER3 = "GetUstProvider3"; |
d132bcc7 | 77 | private static final String SCEN_CREATE_SESSION1 = "CreateSession1"; |
d6fc6e1b | 78 | private static final String SCEN_CREATE_SESSION_WITH_PROMPT = "CreateSessionWithPrompt"; |
d132bcc7 BH |
79 | private static final String SCEN_CREATE_SESSION_VARIANTS = "CreateSessionVariants"; |
80 | private static final String SCEN_DESTROY_SESSION1 = "DestroySession1"; | |
81 | private static final String SCEN_CHANNEL_HANDLING = "ChannelHandling"; | |
82 | private static final String SCEN_EVENT_HANDLING = "EventHandling"; | |
4ea599a5 BH |
83 | private static final String SCEN_CONTEXT_HANDLING = "ContextHandling"; |
84 | private static final String SCEN_CONTEXT_ERROR_HANDLING = "ContextErrorHandling"; | |
85 | private static final String SCEN_CALIBRATE_HANDLING = "CalibrateHandling"; | |
f3b33d40 | 86 | private static final String SCEN_CREATE_SESSION_2_1 = "CreateSessionLttng2.1"; |
d132bcc7 | 87 | |
eb1bab5b BH |
88 | // ------------------------------------------------------------------------ |
89 | // Test data | |
90 | // ------------------------------------------------------------------------ | |
2ba3d0a1 | 91 | |
d132bcc7 BH |
92 | private CommandShellFactory fShellFactory; |
93 | private String fTestfile; | |
94 | private LTTngToolsFileShell fShell; | |
95 | private ILttngControlService fService; | |
96 | ||
eb1bab5b BH |
97 | // ------------------------------------------------------------------------ |
98 | // Housekeeping | |
99 | // ------------------------------------------------------------------------ | |
2ba3d0a1 | 100 | |
eb1bab5b BH |
101 | /** |
102 | * Perform pre-test initialization. | |
103 | * | |
2ba3d0a1 AM |
104 | * @throws Exception |
105 | * if the initialization fails for some reason | |
eb1bab5b | 106 | */ |
2ba3d0a1 | 107 | @Before |
eb1bab5b | 108 | public void setUp() throws Exception { |
eb1bab5b | 109 | fShellFactory = CommandShellFactory.getInstance(); |
d132bcc7 | 110 | |
9269df72 | 111 | URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(DIRECTORY + File.separator + TEST_STREAM), null); |
d132bcc7 BH |
112 | File testfile = new File(FileLocator.toFileURL(location).toURI()); |
113 | fTestfile = testfile.getAbsolutePath(); | |
cfdb727a | 114 | |
d132bcc7 BH |
115 | fShell = fShellFactory.getFileShell(); |
116 | fShell.loadScenarioFile(fTestfile); | |
117 | fService = new LTTngControlService(fShell); | |
eb1bab5b BH |
118 | } |
119 | ||
eb1bab5b BH |
120 | // ------------------------------------------------------------------------ |
121 | // Test Cases | |
122 | // ------------------------------------------------------------------------ | |
cfdb727a | 123 | |
2ba3d0a1 | 124 | @Test |
276c17e7 BH |
125 | public void testVersion() { |
126 | try { | |
127 | fShell.setScenario(SCEN_LTTNG_VERSION); | |
cfdb727a | 128 | ILttngControlService service = LTTngControlServiceFactory.getInstance().getLttngControlService(fShell); |
276c17e7 | 129 | assertNotNull(service); |
cfe737e4 | 130 | assertEquals("2.1.0", service.getVersion()); |
276c17e7 BH |
131 | } catch (ExecutionException e) { |
132 | fail("Exeption thrown " + e); | |
133 | } | |
134 | } | |
cfdb727a | 135 | |
2ba3d0a1 | 136 | @Test |
d6fc6e1b BH |
137 | public void testVersionWithPrompt() { |
138 | try { | |
139 | fShell.setScenario(SCEN_LTTNG_VERSION_WITH_PROMPT); | |
140 | ILttngControlService service = LTTngControlServiceFactory.getInstance().getLttngControlService(fShell); | |
141 | assertNotNull(service); | |
142 | assertEquals("2.0.0", service.getVersion()); | |
143 | } catch (ExecutionException e) { | |
144 | fail("Exeption thrown " + e); | |
145 | } | |
146 | } | |
a07c7629 | 147 | |
2ba3d0a1 | 148 | @Test |
276c17e7 BH |
149 | public void testUnsupportedVersion() { |
150 | try { | |
151 | fShell.setScenario(SCEN_LTTNG_UNSUPPORTED_VERSION); | |
cfdb727a | 152 | LTTngControlServiceFactory.getInstance().getLttngControlService(fShell); |
276c17e7 BH |
153 | fail("No exeption thrown"); |
154 | } catch (ExecutionException e) { | |
155 | // success | |
156 | } | |
157 | } | |
158 | ||
2ba3d0a1 | 159 | @Test |
276c17e7 BH |
160 | public void testNoVersion() { |
161 | try { | |
162 | fShell.setScenario(SCEN_LTTNG_NO_VERSION); | |
cfdb727a | 163 | LTTngControlServiceFactory.getInstance().getLttngControlService(fShell); |
276c17e7 BH |
164 | fail("No exeption thrown"); |
165 | } catch (ExecutionException e) { | |
166 | // success | |
167 | } | |
168 | } | |
169 | ||
2ba3d0a1 | 170 | @Test |
276c17e7 | 171 | public void testLttngNotInstalled() { |
eb1bab5b | 172 | try { |
d132bcc7 BH |
173 | fShell.setScenario(SCEN_LTTNG_NOT_INSTALLED); |
174 | fService.getSessionNames(new NullProgressMonitor()); | |
eb1bab5b | 175 | fail("No exeption thrown"); |
eb1bab5b BH |
176 | } catch (ExecutionException e) { |
177 | // success | |
178 | } | |
179 | } | |
cfdb727a | 180 | |
2ba3d0a1 | 181 | @Test |
eb1bab5b BH |
182 | public void testGetSessionNames1() { |
183 | try { | |
d132bcc7 BH |
184 | fShell.setScenario(SCEN_NO_SESSION_AVAILABLE); |
185 | String[] result = fService.getSessionNames(new NullProgressMonitor()); | |
eb1bab5b BH |
186 | |
187 | assertNotNull(result); | |
188 | assertEquals(0, result.length); | |
cfdb727a | 189 | |
eb1bab5b BH |
190 | } catch (ExecutionException e) { |
191 | fail(e.toString()); | |
192 | } | |
193 | } | |
d132bcc7 | 194 | |
2ba3d0a1 | 195 | @Test |
eb1bab5b BH |
196 | public void testGetSessionNames2() { |
197 | try { | |
d132bcc7 BH |
198 | fShell.setScenario(SCEN_GET_SESSION_NAMES1); |
199 | String[] result = fService.getSessionNames(new NullProgressMonitor()); | |
eb1bab5b BH |
200 | |
201 | assertNotNull(result); | |
202 | assertEquals(2, result.length); | |
203 | assertEquals("mysession1", result[0]); | |
204 | assertEquals("mysession", result[1]); | |
cfdb727a | 205 | |
eb1bab5b BH |
206 | } catch (ExecutionException e) { |
207 | fail(e.toString()); | |
208 | } | |
209 | } | |
d132bcc7 | 210 | |
2ba3d0a1 | 211 | @Test |
eb1bab5b BH |
212 | public void testGetSessionNotExist() { |
213 | try { | |
d132bcc7 BH |
214 | fShell.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST); |
215 | fService.getSessionNames(new NullProgressMonitor()); | |
eb1bab5b | 216 | fail("No exeption thrown"); |
cfdb727a | 217 | |
eb1bab5b BH |
218 | } catch (ExecutionException e) { |
219 | // success | |
220 | } | |
221 | } | |
cfdb727a | 222 | |
2ba3d0a1 | 223 | @Test |
eb1bab5b BH |
224 | public void testGetSessionNameGarbage() { |
225 | try { | |
d132bcc7 BH |
226 | fShell.setScenario(SCEN_GET_SESSION_GARBAGE_OUT); |
227 | String[] result = fService.getSessionNames(new NullProgressMonitor()); | |
eb1bab5b BH |
228 | |
229 | assertNotNull(result); | |
230 | assertEquals(0, result.length); | |
cfdb727a | 231 | |
eb1bab5b BH |
232 | } catch (ExecutionException e) { |
233 | fail(e.toString()); | |
234 | } | |
235 | } | |
cfdb727a | 236 | |
2ba3d0a1 | 237 | @Test |
eb1bab5b BH |
238 | public void testGetSession1() { |
239 | try { | |
d132bcc7 BH |
240 | fShell.setScenario(SCEN_GET_SESSION1); |
241 | ISessionInfo session = fService.getSession("mysession", new NullProgressMonitor()); | |
eb1bab5b BH |
242 | |
243 | // Verify Session | |
244 | assertNotNull(session); | |
245 | assertEquals("mysession", session.getName()); | |
246 | assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath()); | |
247 | assertEquals(TraceSessionState.ACTIVE, session.getSessionState()); | |
cfdb727a | 248 | |
eb1bab5b BH |
249 | IDomainInfo[] domains = session.getDomains(); |
250 | assertNotNull(domains); | |
251 | assertEquals(2, domains.length); | |
cfdb727a | 252 | |
eb1bab5b BH |
253 | // Verify Kernel domain |
254 | assertEquals("Kernel", domains[0].getName()); | |
255 | IChannelInfo[] channels = domains[0].getChannels(); | |
256 | assertNotNull(channels); | |
257 | assertEquals(2, channels.length); | |
258 | ||
cfdb727a | 259 | // Verify Kernel's channel0 |
eb1bab5b BH |
260 | assertEquals("channel0", channels[0].getName()); |
261 | assertEquals(4, channels[0].getNumberOfSubBuffers()); | |
262 | assertEquals("splice()", channels[0].getOutputType()); | |
263 | assertEquals(false, channels[0].isOverwriteMode()); | |
264 | assertEquals(200, channels[0].getReadTimer()); | |
265 | assertEquals(TraceEnablement.ENABLED, channels[0].getState()); | |
266 | assertEquals(262144, channels[0].getSubBufferSize()); | |
267 | assertEquals(0, channels[0].getSwitchTimer()); | |
cfdb727a | 268 | |
eb1bab5b BH |
269 | // Verify event info |
270 | IEventInfo[] channel0Events = channels[0].getEvents(); | |
271 | assertNotNull(channel0Events); | |
272 | assertEquals(2, channel0Events.length); | |
273 | assertEquals("block_rq_remap", channel0Events[0].getName()); | |
274 | assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[0].getLogLevel()); | |
275 | assertEquals(TraceEventType.TRACEPOINT, channel0Events[0].getEventType()); | |
276 | assertEquals(TraceEnablement.ENABLED, channel0Events[0].getState()); | |
cfdb727a | 277 | |
eb1bab5b BH |
278 | assertEquals("block_bio_remap", channel0Events[1].getName()); |
279 | assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[1].getLogLevel()); | |
280 | assertEquals(TraceEventType.TRACEPOINT, channel0Events[1].getEventType()); | |
281 | assertEquals(TraceEnablement.DISABLED, channel0Events[1].getState()); | |
cfdb727a AM |
282 | |
283 | // Verify Kernel's channel1 | |
eb1bab5b BH |
284 | assertEquals("channel1", channels[1].getName()); |
285 | assertEquals(4, channels[1].getNumberOfSubBuffers()); | |
286 | assertEquals("splice()", channels[1].getOutputType()); | |
287 | assertEquals(true, channels[1].isOverwriteMode()); | |
288 | assertEquals(400, channels[1].getReadTimer()); | |
289 | assertEquals(TraceEnablement.DISABLED, channels[1].getState()); | |
290 | assertEquals(524288, channels[1].getSubBufferSize()); | |
291 | assertEquals(100, channels[1].getSwitchTimer()); | |
cfdb727a | 292 | |
eb1bab5b BH |
293 | // Verify event info |
294 | IEventInfo[] channel1Events = channels[1].getEvents(); | |
295 | assertEquals(0, channel1Events.length); | |
cfdb727a | 296 | |
eb1bab5b BH |
297 | // Verify domain UST global |
298 | assertEquals("UST global", domains[1].getName()); | |
cfdb727a | 299 | |
eb1bab5b | 300 | IChannelInfo[] ustChannels = domains[1].getChannels(); |
cfdb727a AM |
301 | |
302 | // Verify UST global's mychannel1 | |
eb1bab5b BH |
303 | assertEquals("mychannel1", ustChannels[0].getName()); |
304 | assertEquals(8, ustChannels[0].getNumberOfSubBuffers()); | |
305 | assertEquals("mmap()", ustChannels[0].getOutputType()); | |
306 | assertEquals(true, ustChannels[0].isOverwriteMode()); | |
307 | assertEquals(100, ustChannels[0].getReadTimer()); | |
308 | assertEquals(TraceEnablement.DISABLED, ustChannels[0].getState()); | |
309 | assertEquals(8192, ustChannels[0].getSubBufferSize()); | |
310 | assertEquals(200, ustChannels[0].getSwitchTimer()); | |
cfdb727a | 311 | |
eb1bab5b BH |
312 | // Verify event info |
313 | IEventInfo[] ustEvents = ustChannels[0].getEvents(); | |
314 | assertEquals(0, ustEvents.length); | |
315 | ||
cfdb727a | 316 | // Verify UST global's channel0 |
eb1bab5b BH |
317 | assertEquals("channel0", ustChannels[1].getName()); |
318 | assertEquals(4, ustChannels[1].getNumberOfSubBuffers()); | |
319 | assertEquals("mmap()", ustChannels[1].getOutputType()); | |
320 | assertEquals(false, ustChannels[1].isOverwriteMode()); | |
321 | assertEquals(200, ustChannels[1].getReadTimer()); | |
322 | assertEquals(TraceEnablement.ENABLED, ustChannels[1].getState()); | |
323 | assertEquals(4096, ustChannels[1].getSubBufferSize()); | |
324 | assertEquals(0, ustChannels[1].getSwitchTimer()); | |
cfdb727a | 325 | |
eb1bab5b BH |
326 | // Verify event info |
327 | ustEvents = ustChannels[1].getEvents(); | |
328 | assertEquals(2, ustEvents.length); | |
cfdb727a | 329 | |
eb1bab5b | 330 | assertEquals("ust_tests_hello:tptest_sighandler", ustEvents[0].getName()); |
4775bcbf | 331 | assertEquals(TraceLogLevel.TRACE_DEBUG_LINE, ustEvents[0].getLogLevel()); |
eb1bab5b BH |
332 | assertEquals(TraceEventType.TRACEPOINT, ustEvents[0].getEventType()); |
333 | assertEquals(TraceEnablement.DISABLED, ustEvents[0].getState()); | |
cfdb727a | 334 | |
eb1bab5b | 335 | assertEquals("*", ustEvents[1].getName()); |
4775bcbf | 336 | assertEquals(TraceLogLevel.LEVEL_UNKNOWN, ustEvents[1].getLogLevel()); |
eb1bab5b BH |
337 | assertEquals(TraceEventType.TRACEPOINT, ustEvents[1].getEventType()); |
338 | assertEquals(TraceEnablement.ENABLED, ustEvents[1].getState()); | |
cfdb727a | 339 | |
eb1bab5b | 340 | // next session (no detailed information available) |
d132bcc7 | 341 | session = fService.getSession("mysession1", new NullProgressMonitor()); |
eb1bab5b BH |
342 | assertNotNull(session); |
343 | assertEquals("mysession1", session.getName()); | |
344 | assertEquals("/home/user/lttng-traces/mysession1-20120203-133225", session.getSessionPath()); | |
345 | assertEquals(TraceSessionState.INACTIVE, session.getSessionState()); | |
cfdb727a | 346 | |
eb1bab5b BH |
347 | domains = session.getDomains(); |
348 | assertNotNull(domains); | |
349 | assertEquals(0, domains.length); | |
350 | } catch (ExecutionException e) { | |
351 | fail(e.toString()); | |
352 | } | |
353 | } | |
354 | ||
355 | public void testGetKernelProvider() { | |
356 | try { | |
d132bcc7 BH |
357 | fShell.setScenario(SCEN_GET_KERNEL_PROVIDER1); |
358 | List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); | |
eb1bab5b BH |
359 | |
360 | // Verify event info | |
361 | assertNotNull(events); | |
362 | assertEquals(3, events.size()); | |
cfdb727a AM |
363 | |
364 | IBaseEventInfo baseEventInfo = events.get(0); | |
eb1bab5b BH |
365 | assertNotNull(baseEventInfo); |
366 | assertEquals("sched_kthread_stop", baseEventInfo.getName()); | |
367 | assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel()); | |
368 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); | |
cfdb727a AM |
369 | |
370 | baseEventInfo = events.get(1); | |
eb1bab5b BH |
371 | assertEquals("sched_kthread_stop_ret", baseEventInfo.getName()); |
372 | assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel()); | |
373 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); | |
cfdb727a AM |
374 | |
375 | baseEventInfo = events.get(2); | |
eb1bab5b BH |
376 | assertEquals("sched_wakeup_new", baseEventInfo.getName()); |
377 | assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel()); | |
378 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); | |
379 | ||
380 | } catch (ExecutionException e) { | |
381 | fail(e.toString()); | |
382 | } | |
383 | } | |
384 | ||
2ba3d0a1 | 385 | @Test |
a07c7629 BH |
386 | public void testGetKernelProviderNoKernel1() { |
387 | try { | |
388 | fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL1); | |
389 | List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); | |
390 | ||
391 | // Verify event info | |
392 | assertNotNull(events); | |
393 | assertEquals(0, events.size()); | |
394 | ||
395 | } catch (ExecutionException e) { | |
396 | fail(e.toString()); | |
397 | } | |
398 | } | |
399 | ||
2ba3d0a1 | 400 | @Test |
a07c7629 BH |
401 | public void testGetKernelProviderNoKernel2() { |
402 | try { | |
403 | fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL2); | |
404 | List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor()); | |
405 | ||
406 | // Verify event info | |
407 | assertNotNull(events); | |
408 | assertEquals(0, events.size()); | |
409 | ||
410 | } catch (ExecutionException e) { | |
411 | fail(e.toString()); | |
412 | } | |
413 | } | |
414 | ||
2ba3d0a1 | 415 | @Test |
eb1bab5b BH |
416 | public void testGetUstProvider() { |
417 | try { | |
d132bcc7 BH |
418 | fShell.setScenario(SCEN_GET_UST_PROVIDER1); |
419 | List<IUstProviderInfo> providers = fService.getUstProvider(); | |
eb1bab5b BH |
420 | |
421 | // Check all providers | |
422 | assertNotNull(providers); | |
423 | assertEquals(2, providers.size()); | |
cfdb727a | 424 | |
eb1bab5b BH |
425 | //Verify first provider |
426 | assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(0).getName()); | |
427 | assertEquals(9379, providers.get(0).getPid()); | |
cfdb727a | 428 | |
eb1bab5b BH |
429 | // Verify event info |
430 | IBaseEventInfo[] events = providers.get(0).getEvents(); | |
431 | assertNotNull(events); | |
432 | assertEquals(2, events.length); | |
433 | ||
cfdb727a | 434 | IBaseEventInfo baseEventInfo = events[0]; |
eb1bab5b BH |
435 | assertNotNull(baseEventInfo); |
436 | assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName()); | |
4775bcbf | 437 | assertEquals(TraceLogLevel.TRACE_DEBUG_MODULE, baseEventInfo.getLogLevel()); |
eb1bab5b | 438 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
cfdb727a AM |
439 | |
440 | baseEventInfo = events[1]; | |
eb1bab5b BH |
441 | assertEquals("ust_tests_hello:tptest", baseEventInfo.getName()); |
442 | assertEquals(TraceLogLevel.TRACE_INFO, baseEventInfo.getLogLevel()); | |
443 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); | |
444 | ||
445 | //Verify second provider | |
446 | assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(1).getName()); | |
447 | assertEquals(4852, providers.get(1).getPid()); | |
cfdb727a | 448 | |
eb1bab5b BH |
449 | // Verify event info |
450 | events = providers.get(1).getEvents(); | |
451 | assertNotNull(events); | |
452 | assertEquals(2, events.length); | |
453 | ||
cfdb727a | 454 | baseEventInfo = events[0]; |
eb1bab5b BH |
455 | assertNotNull(baseEventInfo); |
456 | assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName()); | |
457 | assertEquals(TraceLogLevel.TRACE_WARNING, baseEventInfo.getLogLevel()); | |
458 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); | |
cfdb727a AM |
459 | |
460 | baseEventInfo = events[1]; | |
eb1bab5b | 461 | assertEquals("ust_tests_hello:tptest", baseEventInfo.getName()); |
4775bcbf | 462 | assertEquals(TraceLogLevel.TRACE_DEBUG_FUNCTION, baseEventInfo.getLogLevel()); |
eb1bab5b BH |
463 | assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType()); |
464 | ||
465 | } catch (ExecutionException e) { | |
466 | fail(e.toString()); | |
467 | } | |
468 | } | |
d132bcc7 | 469 | |
2ba3d0a1 | 470 | @Test |
eb1bab5b BH |
471 | public void testUstProvider2() { |
472 | try { | |
d132bcc7 BH |
473 | fShell.setScenario(SCEN_GET_UST_PROVIDER2); |
474 | List<IUstProviderInfo> providers = fService.getUstProvider(); | |
eb1bab5b BH |
475 | |
476 | assertNotNull(providers); | |
477 | assertEquals(0, providers.size()); | |
cfdb727a | 478 | |
eb1bab5b BH |
479 | } catch (ExecutionException e) { |
480 | fail(e.toString()); | |
481 | } | |
482 | } | |
d132bcc7 | 483 | |
2ba3d0a1 | 484 | @Test |
d4514365 BH |
485 | public void testGetUstProvider3() { |
486 | try { | |
487 | fShell.setScenario(SCEN_GET_UST_PROVIDER3); | |
488 | // Set version | |
489 | ((LTTngControlService)fService).setVersion("2.1.0"); | |
490 | List<IUstProviderInfo> providers = fService.getUstProvider(); | |
491 | ||
492 | // Check all providers | |
493 | assertNotNull(providers); | |
494 | assertEquals(2, providers.size()); | |
495 | ||
496 | //Verify first provider | |
497 | assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(0).getName()); | |
498 | assertEquals(9379, providers.get(0).getPid()); | |
499 | ||
500 | // Verify event info | |
501 | IBaseEventInfo[] events = providers.get(0).getEvents(); | |
502 | assertNotNull(events); | |
503 | assertEquals(2, events.length); | |
504 | ||
505 | IBaseEventInfo baseEventInfo = events[0]; | |
506 | assertNotNull(baseEventInfo); | |
507 | IFieldInfo[] fields = baseEventInfo.getFields(); | |
508 | assertNotNull(fields); | |
509 | assertEquals(0, fields.length); | |
510 | ||
511 | baseEventInfo = events[1]; | |
512 | fields = baseEventInfo.getFields(); | |
513 | assertNotNull(fields); | |
514 | assertEquals(3, fields.length); | |
515 | assertEquals("doublefield", fields[0].getName()); | |
516 | assertEquals("float", fields[0].getFieldType()); | |
517 | ||
518 | assertEquals("floatfield", fields[1].getName()); | |
519 | assertEquals("float", fields[1].getFieldType()); | |
520 | ||
521 | assertEquals("stringfield", fields[2].getName()); | |
522 | assertEquals("string", fields[2].getFieldType()); | |
523 | ||
524 | //Verify second provider | |
525 | assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(1).getName()); | |
526 | assertEquals(4852, providers.get(1).getPid()); | |
527 | ||
528 | // Verify event info | |
529 | events = providers.get(1).getEvents(); | |
530 | assertNotNull(events); | |
531 | assertEquals(2, events.length); | |
532 | ||
533 | baseEventInfo = events[0]; | |
534 | assertNotNull(baseEventInfo); | |
535 | fields = baseEventInfo.getFields(); | |
536 | assertNotNull(fields); | |
537 | assertEquals(0, fields.length); | |
538 | ||
539 | baseEventInfo = events[1]; | |
540 | fields = baseEventInfo.getFields(); | |
541 | assertNotNull(fields); | |
542 | assertEquals(3, fields.length); | |
543 | ||
544 | assertEquals("doublefield", fields[0].getName()); | |
545 | assertEquals("float", fields[0].getFieldType()); | |
546 | ||
547 | assertEquals("floatfield", fields[1].getName()); | |
548 | assertEquals("float", fields[1].getFieldType()); | |
549 | ||
550 | assertEquals("stringfield", fields[2].getName()); | |
551 | assertEquals("string", fields[2].getFieldType()); | |
552 | ||
553 | // Reset version | |
554 | ((LTTngControlService)fService).setVersion("2.0.0"); | |
555 | ||
556 | } catch (ExecutionException e) { | |
557 | fail(e.toString()); | |
558 | } | |
559 | } | |
560 | ||
2ba3d0a1 | 561 | @Test |
bbb3538a BH |
562 | public void testCreateSession() { |
563 | try { | |
d132bcc7 BH |
564 | fShell.setScenario(SCEN_CREATE_SESSION1); |
565 | ||
566 | ISessionInfo info = fService.createSession("mysession2", null, new NullProgressMonitor()); | |
bbb3538a BH |
567 | assertNotNull(info); |
568 | assertEquals("mysession2", info.getName()); | |
569 | assertNotNull(info.getSessionPath()); | |
570 | assertTrue(info.getSessionPath().contains("mysession2")); | |
571 | assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); | |
572 | } catch (ExecutionException e) { | |
573 | fail(e.toString()); | |
574 | } | |
575 | } | |
d132bcc7 | 576 | |
2ba3d0a1 | 577 | @Test |
d6fc6e1b BH |
578 | public void testCreateSessionWithPrompt() { |
579 | try { | |
a07c7629 | 580 | // First line has the shell prompt before the command output |
d6fc6e1b BH |
581 | // This can happen in a real application if the command line is not echoed by the shell. |
582 | fShell.setScenario(SCEN_CREATE_SESSION_WITH_PROMPT); | |
583 | ||
584 | // First line has no shell prompt before the output | |
585 | ISessionInfo info = fService.createSession("mysession2", null, new NullProgressMonitor()); | |
586 | assertNotNull(info); | |
587 | assertEquals("mysession2", info.getName()); | |
588 | assertNotNull(info.getSessionPath()); | |
589 | assertTrue(info.getSessionPath().contains("mysession2")); | |
590 | assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); | |
591 | } catch (ExecutionException e) { | |
592 | fail(e.toString()); | |
593 | } | |
594 | } | |
595 | ||
2ba3d0a1 | 596 | @Test |
d132bcc7 BH |
597 | public void testCreateSessionVariants() { |
598 | ||
599 | fShell.setScenario(SCEN_CREATE_SESSION_VARIANTS); | |
600 | ||
bbb3538a | 601 | try { |
d132bcc7 | 602 | fService.createSession("alreadyExist", null, new NullProgressMonitor()); |
bbb3538a BH |
603 | fail("No exeption thrown"); |
604 | } catch (ExecutionException e) { | |
605 | // success | |
606 | } | |
cfdb727a | 607 | |
bbb3538a | 608 | try { |
d132bcc7 | 609 | fService.createSession("wrongName", null, new NullProgressMonitor()); |
bbb3538a BH |
610 | fail("No exeption thrown"); |
611 | } catch (ExecutionException e) { | |
612 | // success | |
cfdb727a | 613 | } |
bbb3538a BH |
614 | |
615 | try { | |
d132bcc7 | 616 | fService.createSession("withPath", "/home/user/hallo", new NullProgressMonitor()); |
bbb3538a BH |
617 | fail("No exeption thrown"); |
618 | } catch (ExecutionException e) { | |
619 | // success | |
cfdb727a | 620 | } |
bbb3538a BH |
621 | |
622 | try { | |
d132bcc7 | 623 | ISessionInfo info = fService.createSession("session with spaces", null, new NullProgressMonitor()); |
bbb3538a BH |
624 | assertNotNull(info); |
625 | assertEquals("session with spaces", info.getName()); | |
626 | assertNotNull(info.getSessionPath()); | |
627 | assertTrue(info.getSessionPath().contains("session with spaces")); | |
628 | assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); | |
cfdb727a | 629 | |
bbb3538a BH |
630 | } catch (ExecutionException e) { |
631 | fail(e.toString()); | |
cfdb727a | 632 | } |
bbb3538a BH |
633 | |
634 | try { | |
d132bcc7 | 635 | ISessionInfo info = fService.createSession("pathWithSpaces", "/home/user/hallo user/here", new NullProgressMonitor()); |
bbb3538a BH |
636 | assertNotNull(info); |
637 | assertEquals("pathWithSpaces", info.getName()); | |
638 | assertNotNull(info.getSessionPath()); | |
639 | assertTrue(info.getSessionPath().contains("/home/user/hallo user/here")); | |
640 | assertEquals(TraceSessionState.INACTIVE, info.getSessionState()); | |
cfdb727a | 641 | |
bbb3538a BH |
642 | } catch (ExecutionException e) { |
643 | fail(e.toString()); | |
cfdb727a | 644 | } |
bbb3538a BH |
645 | } |
646 | ||
2ba3d0a1 | 647 | @Test |
9d8a90ad | 648 | public void testDestroySession() { |
bbb3538a | 649 | try { |
d132bcc7 BH |
650 | fShell.setScenario(SCEN_DESTROY_SESSION1); |
651 | fService.destroySession("mysession2", new NullProgressMonitor()); | |
bbb3538a BH |
652 | } catch (ExecutionException e) { |
653 | fail(e.toString()); | |
cfdb727a | 654 | } |
bbb3538a | 655 | } |
d132bcc7 | 656 | |
2ba3d0a1 | 657 | @Test |
d132bcc7 BH |
658 | public void testCreateChannel() { |
659 | try { | |
660 | ||
661 | String sessionName = "mysession2"; | |
662 | List<String> list = new ArrayList<String>(); | |
663 | String kernelChannel0 = "mychannel0"; | |
664 | String kernelChannel1 = "mychannel1"; | |
665 | list.add(kernelChannel0); | |
666 | list.add(kernelChannel1); | |
cfdb727a | 667 | |
d132bcc7 | 668 | fShell.setScenario(SCEN_CHANNEL_HANDLING); |
cfdb727a | 669 | |
d132bcc7 BH |
670 | // Create/enable/configure 2 kernel channels |
671 | ChannelInfo chanInfo = new ChannelInfo(""); | |
672 | chanInfo.setOverwriteMode(true); | |
673 | chanInfo.setSubBufferSize(16384); | |
674 | chanInfo.setReadTimer(100); | |
675 | chanInfo.setSwitchTimer(200); | |
676 | chanInfo.setNumberOfSubBuffers(2); | |
677 | fService.enableChannels(sessionName, list, true, chanInfo, new NullProgressMonitor()); | |
cfdb727a | 678 | |
d132bcc7 BH |
679 | // Create/enable/configure 1 UST channel |
680 | list.clear(); | |
681 | list.add("ustChannel"); | |
cfdb727a | 682 | |
d132bcc7 BH |
683 | chanInfo = new ChannelInfo(""); |
684 | chanInfo.setOverwriteMode(true); | |
685 | chanInfo.setSubBufferSize(32768); | |
686 | chanInfo.setReadTimer(200); | |
687 | chanInfo.setSwitchTimer(100); | |
688 | chanInfo.setNumberOfSubBuffers(1); | |
689 | fService.enableChannels(sessionName, list, false, chanInfo, new NullProgressMonitor()); | |
690 | ||
691 | } catch (ExecutionException e) { | |
692 | fail(e.toString()); | |
693 | } | |
694 | } | |
695 | ||
2ba3d0a1 | 696 | @Test |
d132bcc7 BH |
697 | public void testDisableChannel() { |
698 | try { | |
699 | ||
700 | String sessionName = "mysession2"; | |
701 | List<String> list = new ArrayList<String>(); | |
702 | String kernelChannel0 = "mychannel0"; | |
703 | String kernelChannel1 = "mychannel1"; | |
704 | list.add(kernelChannel0); | |
705 | list.add(kernelChannel1); | |
cfdb727a | 706 | |
d132bcc7 BH |
707 | fShell.setScenario(SCEN_CHANNEL_HANDLING); |
708 | fService.disableChannels(sessionName, list, true, new NullProgressMonitor()); | |
cfdb727a | 709 | |
d132bcc7 BH |
710 | list.clear(); |
711 | list.add("ustChannel"); | |
712 | fService.disableChannels(sessionName, list, false, new NullProgressMonitor()); | |
713 | ||
714 | } catch (ExecutionException e) { | |
715 | fail(e.toString()); | |
716 | } | |
717 | } | |
cfdb727a | 718 | |
2ba3d0a1 | 719 | @Test |
d132bcc7 BH |
720 | public void testEnableChannel() { |
721 | try { | |
722 | ||
723 | String sessionName = "mysession2"; | |
724 | List<String> list = new ArrayList<String>(); | |
725 | String kernelChannel0 = "mychannel0"; | |
726 | String kernelChannel1 = "mychannel1"; | |
727 | list.add(kernelChannel0); | |
728 | list.add(kernelChannel1); | |
cfdb727a | 729 | |
d132bcc7 BH |
730 | fShell.setScenario(SCEN_CHANNEL_HANDLING); |
731 | fService.enableChannels(sessionName, list, true, null, new NullProgressMonitor()); | |
cfdb727a | 732 | |
d132bcc7 BH |
733 | // Create/enable/configure 1 UST channel |
734 | list.clear(); | |
735 | list.add("ustChannel"); | |
cfdb727a | 736 | |
d132bcc7 BH |
737 | fService.enableChannels(sessionName, list, false, null, new NullProgressMonitor()); |
738 | ||
739 | } catch (ExecutionException e) { | |
740 | fail(e.toString()); | |
741 | } | |
742 | } | |
cfdb727a | 743 | |
d132bcc7 | 744 | // public void tesEnableChannelNoTracer() { |
bbb3538a | 745 | // try { |
d132bcc7 BH |
746 | // ILttngControlService service = new LTTngControlService(fShellFactory.getShellForChannelNoTracer()); |
747 | // service.getSessionNames(new NullProgressMonitor()); | |
748 | // fail("No exeption thrown"); | |
cfdb727a | 749 | // |
bbb3538a | 750 | // } catch (ExecutionException e) { |
d132bcc7 | 751 | // // success |
bbb3538a | 752 | // } |
cfdb727a AM |
753 | // } |
754 | ||
2ba3d0a1 | 755 | @Test |
d132bcc7 BH |
756 | public void testEnableEvents() { |
757 | try { | |
758 | // 1) session name, channel = null, 3 event names, kernel | |
759 | String sessionName = "mysession2"; | |
760 | List<String> list = new ArrayList<String>(); | |
761 | String eventName0 = "block_rq_remap"; | |
762 | String eventName1 = "block_bio_remap"; | |
763 | String eventName2 = "softirq_entry"; | |
764 | list.add(eventName0); | |
765 | list.add(eventName1); | |
766 | list.add(eventName2); | |
767 | fShell.setScenario(SCEN_EVENT_HANDLING); | |
d4514365 | 768 | fService.enableEvents(sessionName, null, list, true, null, new NullProgressMonitor()); |
cfdb727a | 769 | |
d132bcc7 BH |
770 | // 2) session name, channel=mychannel, event name= null, kernel |
771 | String channelName = "mychannel"; | |
d4514365 | 772 | fService.enableEvents(sessionName, channelName, null, true, null, new NullProgressMonitor()); |
bbb3538a | 773 | |
d4514365 | 774 | // 3) session name, channel=mychannel, 1 event name, ust, no filter |
d132bcc7 BH |
775 | String ustEventName = "ust_tests_hello:tptest_sighandler"; |
776 | list.clear(); | |
777 | list.add(ustEventName); | |
d4514365 | 778 | fService.enableEvents(sessionName, channelName, list, false, null, new NullProgressMonitor()); |
cfdb727a | 779 | |
d4514365 BH |
780 | // 4) session name, channel = mychannel, no event name, ust, with filter |
781 | fService.enableEvents(sessionName, channelName, list, false, "intfield==10", new NullProgressMonitor()); | |
782 | ||
783 | // 5) session name, channel = mychannel, no event name, ust, no filter | |
d132bcc7 | 784 | list.clear(); |
d4514365 BH |
785 | fService.enableEvents(sessionName, channelName, list, false, null, new NullProgressMonitor()); |
786 | ||
787 | // TODO add test with filters | |
cfdb727a | 788 | |
d132bcc7 BH |
789 | } catch (ExecutionException e) { |
790 | fail(e.toString()); | |
791 | } | |
792 | } | |
cfdb727a | 793 | |
2ba3d0a1 | 794 | @Test |
d132bcc7 BH |
795 | public void testEnableSyscalls() { |
796 | try { | |
797 | // 1) session name, channel = null, 3 event names, kernel | |
798 | String sessionName = "mysession2"; | |
799 | String channelName = "mychannel"; | |
cfdb727a | 800 | |
d132bcc7 BH |
801 | fShell.setScenario(SCEN_EVENT_HANDLING); |
802 | ||
cfdb727a | 803 | // 1) session name, channel = null |
d132bcc7 BH |
804 | fService.enableSyscalls(sessionName, null, new NullProgressMonitor()); |
805 | ||
806 | // 2) session name, channel = mychannel | |
807 | fService.enableSyscalls(sessionName, channelName, new NullProgressMonitor()); | |
cfdb727a | 808 | |
d132bcc7 BH |
809 | } catch (ExecutionException e) { |
810 | fail(e.toString()); | |
811 | } | |
812 | } | |
813 | ||
2ba3d0a1 | 814 | @Test |
d132bcc7 BH |
815 | public void testDynamicProbe() { |
816 | try { | |
817 | // 1) session name, channel = null, 3 event names, kernel | |
818 | String sessionName = "mysession2"; | |
819 | String channelName = "mychannel"; | |
820 | String eventName0 = "myevent0"; | |
821 | String eventName1 = "myevent1"; | |
822 | String functionProbe = "0xc0101340"; | |
823 | String dynProbe = "init_post"; | |
cfdb727a | 824 | |
d132bcc7 BH |
825 | fShell.setScenario(SCEN_EVENT_HANDLING); |
826 | ||
cfdb727a | 827 | // 1) session name, channel = null, event name, function probe, probe |
d132bcc7 BH |
828 | fService.enableProbe(sessionName, null, eventName0, true, functionProbe, new NullProgressMonitor()); |
829 | ||
830 | // 2) session name, channel = mychannel | |
831 | fService.enableProbe(sessionName, channelName, eventName1, false, dynProbe, new NullProgressMonitor()); | |
cfdb727a | 832 | |
d132bcc7 BH |
833 | } catch (ExecutionException e) { |
834 | fail(e.toString()); | |
835 | } | |
836 | } | |
837 | ||
2ba3d0a1 | 838 | @Test |
d132bcc7 BH |
839 | public void testEnableLogLevel() { |
840 | try { | |
841 | // 1) session name, channel = null, 3 event names, kernel | |
842 | String sessionName = "mysession2"; | |
843 | String channelName = "mychannel"; | |
844 | String eventName4 = "myevent4"; | |
845 | String eventName5 = "myevent5"; | |
cfdb727a | 846 | |
d132bcc7 | 847 | fShell.setScenario(SCEN_EVENT_HANDLING); |
cfdb727a | 848 | |
d132bcc7 | 849 | // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG |
d4514365 | 850 | fService.enableLogLevel(sessionName, null, eventName4, LogLevelType.LOGLEVEL_ONLY, TraceLogLevel.TRACE_DEBUG, null, new NullProgressMonitor()); |
d132bcc7 BH |
851 | |
852 | // 2) session name, channel = mychannel, null, loglevel, TRACE_DEBUG_FUNCTION | |
d4514365 BH |
853 | fService.enableLogLevel(sessionName, channelName, eventName5, LogLevelType.LOGLEVEL, TraceLogLevel.TRACE_DEBUG_FUNCTION, null, new NullProgressMonitor()); |
854 | ||
855 | // TODO add test with filters | |
d132bcc7 BH |
856 | |
857 | } catch (ExecutionException e) { | |
858 | fail(e.toString()); | |
859 | } | |
860 | } | |
cfdb727a | 861 | |
2ba3d0a1 | 862 | @Test |
4ea599a5 BH |
863 | public void testAddContext() { |
864 | try { | |
865 | // 1) session name, channel = null, 3 event names, kernel | |
866 | String sessionName = "mysession2"; | |
867 | String channelName = "mychannel"; | |
868 | String eventName = "ust_tests_hello:tptest_sighandler"; | |
869 | List<String> contexts = new ArrayList<String>(); | |
870 | contexts.add("prio"); | |
871 | contexts.add("pid"); | |
872 | ||
873 | fShell.setScenario(SCEN_CONTEXT_HANDLING); | |
874 | ||
875 | List<String> availContexts = fService.getContextList(new NullProgressMonitor()); | |
876 | assertNotNull(availContexts); | |
877 | assertEquals(12, availContexts.size()); | |
878 | ||
cfdb727a | 879 | // A very "hard-coded" way to verify but it works ... |
4ea599a5 BH |
880 | Set<String> expectedContexts = new HashSet<String>(); |
881 | expectedContexts.add("pid"); | |
882 | expectedContexts.add("procname"); | |
883 | expectedContexts.add("prio"); | |
884 | expectedContexts.add("nice"); | |
885 | expectedContexts.add("vpid"); | |
886 | expectedContexts.add("tid"); | |
887 | expectedContexts.add("pthread_id"); | |
888 | expectedContexts.add("vtid"); | |
889 | expectedContexts.add("ppid"); | |
890 | expectedContexts.add("vppid"); | |
891 | expectedContexts.add("perf:cpu-cycles"); | |
892 | expectedContexts.add("perf:cycles"); | |
cfdb727a | 893 | |
4ea599a5 | 894 | assertTrue(expectedContexts.containsAll(availContexts)); |
cfdb727a | 895 | |
4ea599a5 BH |
896 | // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG |
897 | fService.addContexts(sessionName, channelName, eventName, false, contexts, new NullProgressMonitor()); | |
898 | ||
899 | } catch (ExecutionException e) { | |
900 | fail(e.toString()); | |
901 | } | |
902 | } | |
903 | ||
2ba3d0a1 | 904 | @Test |
4ea599a5 BH |
905 | public void testAddContextFailure() { |
906 | ||
907 | // 1) session name, channel = null, 3 event names, kernel | |
908 | String sessionName = "mysession2"; | |
909 | String channelName = "mychannel"; | |
910 | String eventName = "ust_tests_hello:tptest_sighandler"; | |
911 | List<String> contexts = new ArrayList<String>(); | |
912 | contexts.add("prio"); | |
913 | contexts.add("pid"); | |
914 | fShell.setScenario(SCEN_CONTEXT_ERROR_HANDLING); | |
915 | try { | |
916 | fService.getContextList(new NullProgressMonitor()); | |
917 | fail("No exeption generated"); | |
918 | } catch (ExecutionException e) { | |
919 | // success | |
cfdb727a | 920 | } |
4ea599a5 BH |
921 | try { |
922 | // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG | |
923 | fService.addContexts(sessionName, channelName, eventName, false, contexts, new NullProgressMonitor()); | |
924 | fail("No exeption generated"); | |
925 | } catch (ExecutionException e) { | |
926 | // success | |
cfdb727a | 927 | } |
4ea599a5 BH |
928 | } |
929 | ||
2ba3d0a1 | 930 | @Test |
4ea599a5 BH |
931 | public void testCalibrate() { |
932 | try { | |
933 | fShell.setScenario(SCEN_CALIBRATE_HANDLING); | |
934 | fService.calibrate(true, new NullProgressMonitor()); | |
935 | ||
936 | } catch (ExecutionException e) { | |
937 | fail(e.toString()); | |
938 | } | |
939 | } | |
940 | ||
2ba3d0a1 | 941 | @Test |
4ea599a5 | 942 | public void testCalibrateFailure() { |
4ea599a5 BH |
943 | try { |
944 | fShell.setScenario(SCEN_CALIBRATE_HANDLING); | |
945 | fService.calibrate(false, new NullProgressMonitor()); | |
946 | fail("No exeption generated"); | |
947 | } catch (ExecutionException e) { | |
948 | // success | |
cfdb727a | 949 | } |
4ea599a5 | 950 | } |
cfdb727a | 951 | |
f3b33d40 BH |
952 | public void testCreateSession2_1() { |
953 | ||
954 | try { | |
955 | fShell.setScenario(SCEN_CREATE_SESSION_2_1); | |
956 | ||
957 | ISessionInfo info = fService.createSession("mysession", null, true, false, new NullProgressMonitor()); | |
958 | assertNotNull(info); | |
959 | assertEquals("mysession", info.getName()); | |
960 | assertEquals("", info.getSessionPath()); | |
961 | fService.destroySession("mysession", new NullProgressMonitor()); | |
962 | ||
963 | info = fService.createSession("mysession", "file:///tmp", null, null, true, false, new NullProgressMonitor()); | |
964 | assertNotNull(info); | |
965 | assertEquals("mysession", info.getName()); | |
966 | assertEquals("", info.getSessionPath()); | |
967 | assertTrue(info.isStreamedTrace()); | |
968 | fService.destroySession("mysession", new NullProgressMonitor()); | |
969 | ||
970 | info = fService.createSession("mysession", "net://172.0.0.1", null, null, false, true, new NullProgressMonitor()); | |
971 | assertNotNull(info); | |
972 | assertEquals("mysession", info.getName()); | |
973 | assertEquals("net://172.0.0.1", info.getSessionPath()); | |
974 | assertTrue(info.isStreamedTrace()); | |
975 | fService.destroySession("mysession", new NullProgressMonitor()); | |
976 | ||
977 | info = fService.createSession("mysession", null, false, true, new NullProgressMonitor()); | |
978 | assertNotNull(info); | |
979 | assertEquals("mysession", info.getName()); | |
980 | // >>> no way to verify provided by tracer!!! | |
981 | fService.destroySession("mysession", new NullProgressMonitor()); | |
982 | ||
983 | info = fService.createSession("mysession", "file:///tmp", null, null, false, false, new NullProgressMonitor()); | |
984 | assertNotNull(info); | |
985 | assertEquals("mysession", info.getName()); | |
986 | assertEquals("file:///tmp", info.getSessionPath()); | |
987 | assertTrue(info.isStreamedTrace()); | |
988 | fService.destroySession("mysession", new NullProgressMonitor()); | |
989 | ||
990 | info = fService.createSession("mysession", "file:///tmp", null, null, false, false, new NullProgressMonitor()); | |
991 | assertNotNull(info); | |
992 | assertEquals("mysession", info.getName()); | |
993 | assertEquals("file:///tmp", info.getSessionPath()); | |
994 | assertTrue(info.isStreamedTrace()); | |
995 | fService.destroySession("mysession", new NullProgressMonitor()); | |
996 | ||
997 | info = fService.createSession("mysession", null, "tcp://172.0.0.1", "tcp://172.0.0.1:5343", false, false, new NullProgressMonitor()); | |
998 | assertNotNull(info); | |
999 | assertEquals("mysession", info.getName()); | |
1000 | assertEquals("", info.getSessionPath()); // TODO: currently there is a bug in LTTng tracer and it returns string null | |
1001 | assertTrue(info.isStreamedTrace()); | |
1002 | fService.destroySession("mysession", new NullProgressMonitor()); | |
1003 | ||
1004 | info = fService.createSession("mysession", "net://172.0.0.1:1234:2345", null, null, false, false, new NullProgressMonitor()); | |
1005 | assertNotNull(info); | |
1006 | assertEquals("mysession", info.getName()); | |
1007 | assertEquals("net://172.0.0.1:1234:2345", info.getSessionPath()); | |
1008 | assertTrue(info.isStreamedTrace()); | |
1009 | fService.destroySession("mysession", new NullProgressMonitor()); | |
1010 | ||
1011 | } catch (ExecutionException e) { | |
1012 | fail(e.toString()); | |
1013 | } | |
1014 | } | |
eb1bab5b | 1015 | } |