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