control: add service test cases for load and save commands
[deliverable/tracecompass.git] / lttng / org.eclipse.tracecompass.lttng2.control.ui.tests / src / org / eclipse / tracecompass / lttng2 / control / ui / tests / service / LTTngControlServiceTest.java
CommitLineData
eb1bab5b 1/**********************************************************************
11b78e10 2 * Copyright (c) 2012, 2015 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
81d5dc3a 12 * Marc-Andre Laperle - Support for creating a live session
eb1bab5b 13 **********************************************************************/
2ba3d0a1 14
9bc60be7 15package org.eclipse.tracecompass.lttng2.control.ui.tests.service;
eb1bab5b 16
d128c979 17import static org.junit.Assert.assertEquals;
e5237dc5 18import static org.junit.Assert.assertFalse;
d128c979
BH
19import static org.junit.Assert.assertNotNull;
20import static org.junit.Assert.assertTrue;
21import static org.junit.Assert.fail;
2ba3d0a1 22
d132bcc7
BH
23import java.io.File;
24import java.net.URL;
25import java.util.ArrayList;
4ea599a5 26import java.util.HashSet;
eb1bab5b 27import java.util.List;
4ea599a5 28import java.util.Set;
eb1bab5b 29
eb1bab5b 30import org.eclipse.core.commands.ExecutionException;
d132bcc7 31import org.eclipse.core.runtime.FileLocator;
bbb3538a 32import org.eclipse.core.runtime.NullProgressMonitor;
d132bcc7 33import org.eclipse.core.runtime.Path;
13729cbc 34import org.eclipse.jdt.annotation.NonNull;
9bc60be7
AM
35import org.eclipse.tracecompass.internal.lttng2.control.core.model.IBaseEventInfo;
36import org.eclipse.tracecompass.internal.lttng2.control.core.model.IChannelInfo;
37import org.eclipse.tracecompass.internal.lttng2.control.core.model.IDomainInfo;
38import org.eclipse.tracecompass.internal.lttng2.control.core.model.IEventInfo;
39import org.eclipse.tracecompass.internal.lttng2.control.core.model.IFieldInfo;
40import org.eclipse.tracecompass.internal.lttng2.control.core.model.ISessionInfo;
41import org.eclipse.tracecompass.internal.lttng2.control.core.model.ISnapshotInfo;
42import org.eclipse.tracecompass.internal.lttng2.control.core.model.IUstProviderInfo;
43import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
44import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
45import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement;
46import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEventType;
47import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceLogLevel;
48import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceSessionState;
49import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.BufferType;
50import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.ChannelInfo;
51import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.SessionInfo;
9bc60be7
AM
52import org.eclipse.tracecompass.internal.lttng2.control.stubs.shells.LTTngToolsFileShell;
53import org.eclipse.tracecompass.internal.lttng2.control.ui.Activator;
54import org.eclipse.tracecompass.internal.lttng2.control.ui.views.logging.ControlCommandLogger;
55import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.ControlPreferences;
56import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
57import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlService;
58import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlServiceFactory;
d128c979 59import org.junit.After;
2ba3d0a1
AM
60import org.junit.Before;
61import org.junit.Test;
9269df72 62import org.osgi.framework.FrameworkUtil;
2ba3d0a1 63
eb1bab5b 64/**
2ba3d0a1
AM
65 * The class <code>LTTngControlServiceTest</code> contains test for the class
66 * <code>{@link LTTngControlService}</code>.
eb1bab5b 67 */
4e0b52e0 68@SuppressWarnings("javadoc")
2ba3d0a1 69public class LTTngControlServiceTest {
d132bcc7
BH
70
71 private static final String DIRECTORY = "testfiles";
72 private static final String TEST_STREAM = "LTTngServiceTest.cfg";
cfdb727a 73
d132bcc7 74 private static final String SCEN_LTTNG_NOT_INSTALLED = "LttngNotInstalled";
276c17e7 75 private static final String SCEN_LTTNG_VERSION = "LttngVersion";
d6fc6e1b 76 private static final String SCEN_LTTNG_VERSION_WITH_PROMPT = "LttngVersionWithPrompt";
276c17e7
BH
77 private static final String SCEN_LTTNG_UNSUPPORTED_VERSION = "LttngUnsupportedVersion";
78 private static final String SCEN_LTTNG_NO_VERSION = "LttngNoVersion";
c541f121 79 private static final String SCEN_LTTNG_COMPILED_VERSION = "LttngVersionCompiled";
d132bcc7
BH
80 private static final String SCEN_NO_SESSION_AVAILABLE = "NoSessionAvailable";
81 private static final String SCEN_GET_SESSION_NAMES1 = "GetSessionNames1";
11b78e10 82 private static final String SCEN_GET_SESSION_WITH_GROUP = "GetSessionWithTracingGroup";
d132bcc7 83 private static final String SCEN_GET_SESSION_NAME_NOT_EXIST = "GetSessionNameNotExist";
d128c979 84 private static final String SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE = "GetSessionNameNotExistVerbose";
e5e5b3db 85 protected static final String SCEN_GET_SESSION_GARBAGE_OUT = "GetSessionGarbageOut";
d132bcc7 86 private static final String SCEN_GET_SESSION1 = "GetSession1";
e5237dc5 87 private static final String SCEN_GET_SESSION_WITH_LIVE = "GetSessionWithLiveInterval";
d132bcc7 88 private static final String SCEN_GET_KERNEL_PROVIDER1 = "GetKernelProvider1";
a07c7629
BH
89 private static final String SCEN_LIST_WITH_NO_KERNEL1 = "ListWithNoKernel1";
90 private static final String SCEN_LIST_WITH_NO_KERNEL2 = "ListWithNoKernel2";
d128c979 91 private static final String SCEN_LIST_WITH_NO_KERNEL_VERBOSE = "ListWithNoKernelVerbose";
d132bcc7
BH
92 private static final String SCEN_GET_UST_PROVIDER1 = "GetUstProvider1";
93 private static final String SCEN_GET_UST_PROVIDER2 = "GetUstProvider2";
d4514365 94 private static final String SCEN_GET_UST_PROVIDER3 = "GetUstProvider3";
f3e2f354
BH
95 private static final String SCEN_LIST_WITH_NO_UST1 = "ListWithNoUst1";
96 private static final String SCEN_LIST_WITH_NO_UST2 = "ListWithNoUst2";
97 private static final String SCEN_LIST_WITH_NO_UST3 = "ListWithNoUst3";
98 private static final String SCEN_LIST_WITH_NO_UST_VERBOSE = "ListWithNoUstVerbose";
d132bcc7 99 private static final String SCEN_CREATE_SESSION1 = "CreateSession1";
d6fc6e1b 100 private static final String SCEN_CREATE_SESSION_WITH_PROMPT = "CreateSessionWithPrompt";
d132bcc7
BH
101 private static final String SCEN_CREATE_SESSION_VARIANTS = "CreateSessionVariants";
102 private static final String SCEN_DESTROY_SESSION1 = "DestroySession1";
d128c979 103 private static final String SCEN_DESTROY_SESSION_VERBOSE = "DestroySessionVerbose";
d132bcc7
BH
104 private static final String SCEN_CHANNEL_HANDLING = "ChannelHandling";
105 private static final String SCEN_EVENT_HANDLING = "EventHandling";
4ea599a5
BH
106 private static final String SCEN_CONTEXT_HANDLING = "ContextHandling";
107 private static final String SCEN_CONTEXT_ERROR_HANDLING = "ContextErrorHandling";
108 private static final String SCEN_CALIBRATE_HANDLING = "CalibrateHandling";
f3b33d40 109 private static final String SCEN_CREATE_SESSION_2_1 = "CreateSessionLttng2.1";
d128c979 110 private static final String SCEN_CREATE_SESSION_VERBOSE_2_1 = "CreateSessionLttngVerbose2.1";
589d0d33 111 private static final String SCEN_CREATE_SNAPSHOT_SESSION = "CreateSessionSnapshot";
ad311f36 112 private static final String SCEN_CREATE_SNAPSHOT_SESSION_2_5 = "CreateSessionSnapshot2.5";
589d0d33
BH
113 private static final String SCEN_CREATE_STREAMED_SNAPSHOT_SESSION = "CreateSessionStreamedSnapshot";
114 private static final String SCEN_CREATE_SNAPSHOT_SESSION_ERRORS = "CreateSessionSnapshotErrors";
e5e5b3db 115 protected static final String SCEN_CREATE_LIVE_SESSION = "CreateSessionLive";
81d5dc3a 116 private static final String SCEN_CREATE_LIVE_SESSION_ERRORS = "CreateSessionLiveErrors";
2b7c6996
BH
117 private static final String SCEN_SESSION_PROFILES = "SessionProfile";
118
d132bcc7 119
ad311f36 120
eb1bab5b
BH
121 // ------------------------------------------------------------------------
122 // Test data
123 // ------------------------------------------------------------------------
d132bcc7 124 private String fTestfile;
13729cbc 125 protected final @NonNull LTTngToolsFileShell fShell = new LTTngToolsFileShell();
e5e5b3db 126 protected ILttngControlService fService;
d132bcc7 127
eb1bab5b
BH
128 // ------------------------------------------------------------------------
129 // Housekeeping
130 // ------------------------------------------------------------------------
2ba3d0a1 131
eb1bab5b
BH
132 /**
133 * Perform pre-test initialization.
134 *
2ba3d0a1
AM
135 * @throws Exception
136 * if the initialization fails for some reason
eb1bab5b 137 */
2ba3d0a1 138 @Before
eb1bab5b 139 public void setUp() throws Exception {
e5e5b3db 140 URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(getTestDirectory() + File.separator + getTestStream()), null);
d132bcc7
BH
141 File testfile = new File(FileLocator.toFileURL(location).toURI());
142 fTestfile = testfile.getAbsolutePath();
d132bcc7 143 fShell.loadScenarioFile(fTestfile);
e5e5b3db
JRJ
144 fService = getControlService();
145 if (fService == null) {
146 throw new Exception("Unable to obtain a valid ControlService");
147 }
d128c979
BH
148
149 ControlPreferences.getInstance().init(Activator.getDefault().getPreferenceStore());
150 }
151
e5e5b3db
JRJ
152 /**
153 * @return the string of the test directory to use
154 */
155 protected String getTestDirectory() {
156 return DIRECTORY;
157 }
158
159 /**
160 * @return the LttngCon
161 */
162 protected ILttngControlService getControlService() {
163 return new LTTngControlService(fShell);
164 }
165
364dcfaf
BH
166 /**
167 * @return the shell implementation
168 */
169 public @NonNull LTTngToolsFileShell getShell() {
e5e5b3db
JRJ
170 return fShell;
171 }
172
173 /**
174 * @return
175 */
176 protected String getTestStream() {
177 return TEST_STREAM;
178 }
179
d128c979
BH
180 @After
181 public void tearDown() {
182 disableVerbose();
183 ControlPreferences.getInstance().dispose();
eb1bab5b
BH
184 }
185
eb1bab5b
BH
186 // ------------------------------------------------------------------------
187 // Test Cases
188 // ------------------------------------------------------------------------
cfdb727a 189
2ba3d0a1 190 @Test
276c17e7
BH
191 public void testVersion() {
192 try {
193 fShell.setScenario(SCEN_LTTNG_VERSION);
13729cbc 194 ILttngControlService service = LTTngControlServiceFactory.getLttngControlService(fShell);
276c17e7 195 assertNotNull(service);
0df4af5f 196 assertEquals("2.1.0", service.getVersionString());
276c17e7
BH
197 } catch (ExecutionException e) {
198 fail("Exeption thrown " + e);
199 }
200 }
cfdb727a 201
2ba3d0a1 202 @Test
d6fc6e1b
BH
203 public void testVersionWithPrompt() {
204 try {
205 fShell.setScenario(SCEN_LTTNG_VERSION_WITH_PROMPT);
13729cbc 206 ILttngControlService service = LTTngControlServiceFactory.getLttngControlService(fShell);
d6fc6e1b 207 assertNotNull(service);
0df4af5f 208 assertEquals("2.0.0", service.getVersionString());
d6fc6e1b
BH
209 } catch (ExecutionException e) {
210 fail("Exeption thrown " + e);
211 }
212 }
a07c7629 213
13729cbc
BH
214 @Test(expected=ExecutionException.class)
215 public void testUnsupportedVersion() throws ExecutionException {
216 fShell.setScenario(SCEN_LTTNG_UNSUPPORTED_VERSION);
217 LTTngControlServiceFactory.getLttngControlService(fShell);
276c17e7
BH
218 }
219
2ba3d0a1 220 @Test
276c17e7
BH
221 public void testNoVersion() {
222 try {
223 fShell.setScenario(SCEN_LTTNG_NO_VERSION);
13729cbc 224 LTTngControlServiceFactory.getLttngControlService(fShell);
276c17e7
BH
225 fail("No exeption thrown");
226 } catch (ExecutionException e) {
227 // success
228 }
229 }
230
c541f121
GB
231 @Test
232 public void testVersionCompiled() {
233 try {
234 fShell.setScenario(SCEN_LTTNG_COMPILED_VERSION);
13729cbc 235 ILttngControlService service = LTTngControlServiceFactory.getLttngControlService(fShell);
c541f121
GB
236 assertNotNull(service);
237 assertEquals("2.5.0", service.getVersionString());
238 } catch (ExecutionException e) {
239 fail("Exeption thrown " + e);
240 }
241 }
242
243
2ba3d0a1 244 @Test
276c17e7 245 public void testLttngNotInstalled() {
eb1bab5b 246 try {
d132bcc7
BH
247 fShell.setScenario(SCEN_LTTNG_NOT_INSTALLED);
248 fService.getSessionNames(new NullProgressMonitor());
eb1bab5b 249 fail("No exeption thrown");
eb1bab5b
BH
250 } catch (ExecutionException e) {
251 // success
252 }
253 }
cfdb727a 254
2ba3d0a1 255 @Test
eb1bab5b
BH
256 public void testGetSessionNames1() {
257 try {
d132bcc7 258 fShell.setScenario(SCEN_NO_SESSION_AVAILABLE);
cbc46cc9 259 List<String> result = fService.getSessionNames(new NullProgressMonitor());
eb1bab5b
BH
260
261 assertNotNull(result);
cbc46cc9 262 assertEquals(0, result.size());
cfdb727a 263
eb1bab5b
BH
264 } catch (ExecutionException e) {
265 fail(e.toString());
266 }
267 }
d132bcc7 268
2ba3d0a1 269 @Test
eb1bab5b
BH
270 public void testGetSessionNames2() {
271 try {
d132bcc7 272 fShell.setScenario(SCEN_GET_SESSION_NAMES1);
cbc46cc9 273 List<String> result = fService.getSessionNames(new NullProgressMonitor());
eb1bab5b
BH
274
275 assertNotNull(result);
cbc46cc9
BH
276 assertEquals(2, result.size());
277 assertEquals("mysession1", result.get(0));
278 assertEquals("mysession", result.get(1));
cfdb727a 279
eb1bab5b
BH
280 } catch (ExecutionException e) {
281 fail(e.toString());
282 }
283 }
d132bcc7 284
11b78e10
BH
285 @Test
286 public void testGetSessionNamesWithTracingGroup() {
287 try {
288 fShell.setScenario(SCEN_GET_SESSION_WITH_GROUP);
289 ControlPreferences.getInstance().getPreferenceStore().setValue(
290 ControlPreferences.TRACE_CONTROL_TRACING_GROUP_PREF, "group");
291
cbc46cc9 292 List<String> result = fService.getSessionNames(new NullProgressMonitor());
11b78e10
BH
293
294 assertNotNull(result);
cbc46cc9
BH
295 assertEquals(2, result.size());
296 assertEquals("mysession1", result.get(0));
297 assertEquals("mysession", result.get(1));
11b78e10
BH
298
299 ControlCommandLogger.init(ControlPreferences.getInstance().getLogfilePath(), false);
300 ControlPreferences.getInstance().getPreferenceStore().setValue(
301 ControlPreferences.TRACE_CONTROL_TRACING_GROUP_PREF, ControlPreferences.TRACE_CONTROL_DEFAULT_TRACING_GROUP);
302
303
304 } catch (ExecutionException e) {
305 fail(e.toString());
306 }
307 }
308
309
2ba3d0a1 310 @Test
eb1bab5b
BH
311 public void testGetSessionNotExist() {
312 try {
d132bcc7
BH
313 fShell.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST);
314 fService.getSessionNames(new NullProgressMonitor());
eb1bab5b 315 fail("No exeption thrown");
cfdb727a 316
eb1bab5b
BH
317 } catch (ExecutionException e) {
318 // success
319 }
320 }
cfdb727a 321
d128c979
BH
322 @Test
323 public void testGetSessionNotExistVerbose() {
324 try {
325 enableVerbose();
326 fShell.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE);
327 fService.getSessionNames(new NullProgressMonitor());
328 fail("No exeption thrown");
329
330 } catch (ExecutionException e) {
331 // success
332 } finally {
333 disableVerbose();
334 }
335 }
336
2ba3d0a1 337 @Test
eb1bab5b
BH
338 public void testGetSessionNameGarbage() {
339 try {
d132bcc7 340 fShell.setScenario(SCEN_GET_SESSION_GARBAGE_OUT);
cbc46cc9 341 List<String> result = fService.getSessionNames(new NullProgressMonitor());
eb1bab5b
BH
342
343 assertNotNull(result);
cbc46cc9 344 assertEquals(0, result.size());
cfdb727a 345
eb1bab5b
BH
346 } catch (ExecutionException e) {
347 fail(e.toString());
348 }
349 }
cfdb727a 350
2ba3d0a1 351 @Test
eb1bab5b
BH
352 public void testGetSession1() {
353 try {
d132bcc7
BH
354 fShell.setScenario(SCEN_GET_SESSION1);
355 ISessionInfo session = fService.getSession("mysession", new NullProgressMonitor());
eb1bab5b
BH
356
357 // Verify Session
358 assertNotNull(session);
359 assertEquals("mysession", session.getName());
360 assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath());
361 assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
cfdb727a 362
eb1bab5b
BH
363 IDomainInfo[] domains = session.getDomains();
364 assertNotNull(domains);
365 assertEquals(2, domains.length);
cfdb727a 366
eb1bab5b
BH
367 // Verify Kernel domain
368 assertEquals("Kernel", domains[0].getName());
369 IChannelInfo[] channels = domains[0].getChannels();
370 assertNotNull(channels);
371 assertEquals(2, channels.length);
372
cfdb727a 373 // Verify Kernel's channel0
eb1bab5b
BH
374 assertEquals("channel0", channels[0].getName());
375 assertEquals(4, channels[0].getNumberOfSubBuffers());
0ad9fc89
JRJ
376 assertEquals("splice()", channels[0].getOutputType().getInName());
377 assertEquals(TraceChannelOutputType.SPLICE, channels[0].getOutputType());
eb1bab5b
BH
378 assertEquals(false, channels[0].isOverwriteMode());
379 assertEquals(200, channels[0].getReadTimer());
380 assertEquals(TraceEnablement.ENABLED, channels[0].getState());
381 assertEquals(262144, channels[0].getSubBufferSize());
382 assertEquals(0, channels[0].getSwitchTimer());
cfdb727a 383
eb1bab5b
BH
384 // Verify event info
385 IEventInfo[] channel0Events = channels[0].getEvents();
386 assertNotNull(channel0Events);
387 assertEquals(2, channel0Events.length);
388 assertEquals("block_rq_remap", channel0Events[0].getName());
389 assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[0].getLogLevel());
390 assertEquals(TraceEventType.TRACEPOINT, channel0Events[0].getEventType());
391 assertEquals(TraceEnablement.ENABLED, channel0Events[0].getState());
cfdb727a 392
eb1bab5b
BH
393 assertEquals("block_bio_remap", channel0Events[1].getName());
394 assertEquals(TraceLogLevel.TRACE_EMERG, channel0Events[1].getLogLevel());
395 assertEquals(TraceEventType.TRACEPOINT, channel0Events[1].getEventType());
396 assertEquals(TraceEnablement.DISABLED, channel0Events[1].getState());
cfdb727a
AM
397
398 // Verify Kernel's channel1
eb1bab5b
BH
399 assertEquals("channel1", channels[1].getName());
400 assertEquals(4, channels[1].getNumberOfSubBuffers());
0ad9fc89
JRJ
401 assertEquals("splice()", channels[1].getOutputType().getInName());
402 assertEquals(TraceChannelOutputType.SPLICE, channels[1].getOutputType());
eb1bab5b
BH
403 assertEquals(true, channels[1].isOverwriteMode());
404 assertEquals(400, channels[1].getReadTimer());
405 assertEquals(TraceEnablement.DISABLED, channels[1].getState());
406 assertEquals(524288, channels[1].getSubBufferSize());
407 assertEquals(100, channels[1].getSwitchTimer());
cfdb727a 408
eb1bab5b
BH
409 // Verify event info
410 IEventInfo[] channel1Events = channels[1].getEvents();
411 assertEquals(0, channel1Events.length);
cfdb727a 412
eb1bab5b
BH
413 // Verify domain UST global
414 assertEquals("UST global", domains[1].getName());
cfdb727a 415
eb1bab5b 416 IChannelInfo[] ustChannels = domains[1].getChannels();
cfdb727a
AM
417
418 // Verify UST global's mychannel1
eb1bab5b
BH
419 assertEquals("mychannel1", ustChannels[0].getName());
420 assertEquals(8, ustChannels[0].getNumberOfSubBuffers());
0ad9fc89
JRJ
421 assertEquals("mmap()", ustChannels[0].getOutputType().getInName());
422 assertEquals(TraceChannelOutputType.MMAP, ustChannels[0].getOutputType());
eb1bab5b
BH
423 assertEquals(true, ustChannels[0].isOverwriteMode());
424 assertEquals(100, ustChannels[0].getReadTimer());
425 assertEquals(TraceEnablement.DISABLED, ustChannels[0].getState());
426 assertEquals(8192, ustChannels[0].getSubBufferSize());
427 assertEquals(200, ustChannels[0].getSwitchTimer());
cfdb727a 428
eb1bab5b
BH
429 // Verify event info
430 IEventInfo[] ustEvents = ustChannels[0].getEvents();
431 assertEquals(0, ustEvents.length);
432
cfdb727a 433 // Verify UST global's channel0
eb1bab5b
BH
434 assertEquals("channel0", ustChannels[1].getName());
435 assertEquals(4, ustChannels[1].getNumberOfSubBuffers());
0ad9fc89
JRJ
436 assertEquals("mmap()", ustChannels[1].getOutputType().getInName());
437 assertEquals(TraceChannelOutputType.MMAP, ustChannels[1].getOutputType());
eb1bab5b
BH
438 assertEquals(false, ustChannels[1].isOverwriteMode());
439 assertEquals(200, ustChannels[1].getReadTimer());
440 assertEquals(TraceEnablement.ENABLED, ustChannels[1].getState());
441 assertEquals(4096, ustChannels[1].getSubBufferSize());
442 assertEquals(0, ustChannels[1].getSwitchTimer());
cfdb727a 443
eb1bab5b
BH
444 // Verify event info
445 ustEvents = ustChannels[1].getEvents();
446 assertEquals(2, ustEvents.length);
cfdb727a 447
eb1bab5b 448 assertEquals("ust_tests_hello:tptest_sighandler", ustEvents[0].getName());
4775bcbf 449 assertEquals(TraceLogLevel.TRACE_DEBUG_LINE, ustEvents[0].getLogLevel());
eb1bab5b
BH
450 assertEquals(TraceEventType.TRACEPOINT, ustEvents[0].getEventType());
451 assertEquals(TraceEnablement.DISABLED, ustEvents[0].getState());
cfdb727a 452
eb1bab5b 453 assertEquals("*", ustEvents[1].getName());
e5e5b3db 454 assertEquals(getAllEventTraceLogLevel(), ustEvents[1].getLogLevel());
eb1bab5b
BH
455 assertEquals(TraceEventType.TRACEPOINT, ustEvents[1].getEventType());
456 assertEquals(TraceEnablement.ENABLED, ustEvents[1].getState());
cfdb727a 457
eb1bab5b 458 // next session (no detailed information available)
d132bcc7 459 session = fService.getSession("mysession1", new NullProgressMonitor());
eb1bab5b
BH
460 assertNotNull(session);
461 assertEquals("mysession1", session.getName());
462 assertEquals("/home/user/lttng-traces/mysession1-20120203-133225", session.getSessionPath());
463 assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
cfdb727a 464
eb1bab5b
BH
465 domains = session.getDomains();
466 assertNotNull(domains);
467 assertEquals(0, domains.length);
468 } catch (ExecutionException e) {
469 fail(e.toString());
470 }
471 }
472
e5237dc5
BH
473 @Test
474 public void testGetSessionWithLive() {
475 try {
476 fShell.setScenario(SCEN_GET_SESSION_WITH_LIVE);
477
478 // Verify Session (snapshot session, non-live)
479 ISessionInfo session = fService.getSession("mysession", new NullProgressMonitor());
480 assertNotNull(session);
481 assertEquals("mysession", session.getName());
482 assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session.getSessionPath());
483 assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
484 assertFalse(session.isLive());
485
486 // Verify Session (regular session, non-live)
487 session = fService.getSession("mysession1", new NullProgressMonitor());
488 assertNotNull(session);
489 assertEquals("mysession1", session.getName());
490 assertEquals("/home/user/lttng-traces/mysession1-20120129-084256", session.getSessionPath());
491 assertEquals(TraceSessionState.ACTIVE, session.getSessionState());
492 assertFalse(session.isLive());
493
494 // Verify Session (regular session, live)
495 session = fService.getSession("mysession2", new NullProgressMonitor());
496 assertNotNull(session);
497 assertEquals("mysession2", session.getName());
498 assertEquals("tcp4://172.0.0.1:5342/ [data: 5343]", session.getSessionPath());
499 assertEquals("net://127.0.0.1", session.getLiveUrl());
500 assertEquals(Integer.valueOf(5344), session.getLivePort());
501 assertEquals(1000000, session.getLiveDelay());
502 assertEquals(TraceSessionState.INACTIVE, session.getSessionState());
503 assertTrue(session.isLive());
504
505 } catch (ExecutionException e) {
506 fail(e.toString());
507 }
508 }
509
e5e5b3db
JRJ
510 /**
511 * @return
512 */
513 protected TraceLogLevel getAllEventTraceLogLevel() {
514 return TraceLogLevel.LEVEL_UNKNOWN;
515 }
516
eb1bab5b
BH
517 public void testGetKernelProvider() {
518 try {
d132bcc7
BH
519 fShell.setScenario(SCEN_GET_KERNEL_PROVIDER1);
520 List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor());
eb1bab5b
BH
521
522 // Verify event info
523 assertNotNull(events);
524 assertEquals(3, events.size());
cfdb727a
AM
525
526 IBaseEventInfo baseEventInfo = events.get(0);
eb1bab5b
BH
527 assertNotNull(baseEventInfo);
528 assertEquals("sched_kthread_stop", baseEventInfo.getName());
529 assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel());
530 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
cfdb727a
AM
531
532 baseEventInfo = events.get(1);
eb1bab5b
BH
533 assertEquals("sched_kthread_stop_ret", baseEventInfo.getName());
534 assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel());
535 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
cfdb727a
AM
536
537 baseEventInfo = events.get(2);
eb1bab5b
BH
538 assertEquals("sched_wakeup_new", baseEventInfo.getName());
539 assertEquals(TraceLogLevel.TRACE_EMERG, baseEventInfo.getLogLevel());
540 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
541
542 } catch (ExecutionException e) {
543 fail(e.toString());
544 }
545 }
546
2ba3d0a1 547 @Test
a07c7629
BH
548 public void testGetKernelProviderNoKernel1() {
549 try {
550 fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL1);
551 List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor());
552
553 // Verify event info
554 assertNotNull(events);
555 assertEquals(0, events.size());
556
557 } catch (ExecutionException e) {
558 fail(e.toString());
559 }
560 }
561
2ba3d0a1 562 @Test
a07c7629
BH
563 public void testGetKernelProviderNoKernel2() {
564 try {
565 fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL2);
566 List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor());
567
568 // Verify event info
569 assertNotNull(events);
570 assertEquals(0, events.size());
571
572 } catch (ExecutionException e) {
573 fail(e.toString());
574 }
575 }
576
d128c979
BH
577 @Test
578 public void testGetKernelProviderNoKernelVerbose() {
579 try {
580 enableVerbose();
581 fShell.setScenario(SCEN_LIST_WITH_NO_KERNEL_VERBOSE);
582 List<IBaseEventInfo> events = fService.getKernelProvider(new NullProgressMonitor());
583
584 // Verify event info
585 assertNotNull(events);
586 assertEquals(0, events.size());
587
588 } catch (ExecutionException e) {
589 fail(e.toString());
590 } finally {
591 disableVerbose();
592 }
593 }
594
2ba3d0a1 595 @Test
eb1bab5b
BH
596 public void testGetUstProvider() {
597 try {
d132bcc7
BH
598 fShell.setScenario(SCEN_GET_UST_PROVIDER1);
599 List<IUstProviderInfo> providers = fService.getUstProvider();
eb1bab5b
BH
600
601 // Check all providers
602 assertNotNull(providers);
603 assertEquals(2, providers.size());
cfdb727a 604
eb1bab5b
BH
605 //Verify first provider
606 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(0).getName());
607 assertEquals(9379, providers.get(0).getPid());
cfdb727a 608
eb1bab5b
BH
609 // Verify event info
610 IBaseEventInfo[] events = providers.get(0).getEvents();
611 assertNotNull(events);
612 assertEquals(2, events.length);
613
cfdb727a 614 IBaseEventInfo baseEventInfo = events[0];
eb1bab5b
BH
615 assertNotNull(baseEventInfo);
616 assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName());
4775bcbf 617 assertEquals(TraceLogLevel.TRACE_DEBUG_MODULE, baseEventInfo.getLogLevel());
eb1bab5b 618 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
cfdb727a
AM
619
620 baseEventInfo = events[1];
eb1bab5b
BH
621 assertEquals("ust_tests_hello:tptest", baseEventInfo.getName());
622 assertEquals(TraceLogLevel.TRACE_INFO, baseEventInfo.getLogLevel());
623 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
624
625 //Verify second provider
626 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(1).getName());
627 assertEquals(4852, providers.get(1).getPid());
cfdb727a 628
eb1bab5b
BH
629 // Verify event info
630 events = providers.get(1).getEvents();
631 assertNotNull(events);
632 assertEquals(2, events.length);
633
cfdb727a 634 baseEventInfo = events[0];
eb1bab5b
BH
635 assertNotNull(baseEventInfo);
636 assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo.getName());
637 assertEquals(TraceLogLevel.TRACE_WARNING, baseEventInfo.getLogLevel());
638 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
cfdb727a
AM
639
640 baseEventInfo = events[1];
eb1bab5b 641 assertEquals("ust_tests_hello:tptest", baseEventInfo.getName());
4775bcbf 642 assertEquals(TraceLogLevel.TRACE_DEBUG_FUNCTION, baseEventInfo.getLogLevel());
eb1bab5b
BH
643 assertEquals(TraceEventType.TRACEPOINT, baseEventInfo.getEventType());
644
645 } catch (ExecutionException e) {
646 fail(e.toString());
647 }
648 }
d132bcc7 649
2ba3d0a1 650 @Test
eb1bab5b
BH
651 public void testUstProvider2() {
652 try {
d132bcc7
BH
653 fShell.setScenario(SCEN_GET_UST_PROVIDER2);
654 List<IUstProviderInfo> providers = fService.getUstProvider();
eb1bab5b
BH
655
656 assertNotNull(providers);
657 assertEquals(0, providers.size());
cfdb727a 658
eb1bab5b
BH
659 } catch (ExecutionException e) {
660 fail(e.toString());
661 }
662 }
d132bcc7 663
2ba3d0a1 664 @Test
d4514365
BH
665 public void testGetUstProvider3() {
666 try {
667 fShell.setScenario(SCEN_GET_UST_PROVIDER3);
668 // Set version
669 ((LTTngControlService)fService).setVersion("2.1.0");
670 List<IUstProviderInfo> providers = fService.getUstProvider();
671
672 // Check all providers
673 assertNotNull(providers);
674 assertEquals(2, providers.size());
675
676 //Verify first provider
677 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(0).getName());
678 assertEquals(9379, providers.get(0).getPid());
679
680 // Verify event info
681 IBaseEventInfo[] events = providers.get(0).getEvents();
682 assertNotNull(events);
683 assertEquals(2, events.length);
684
685 IBaseEventInfo baseEventInfo = events[0];
686 assertNotNull(baseEventInfo);
687 IFieldInfo[] fields = baseEventInfo.getFields();
688 assertNotNull(fields);
689 assertEquals(0, fields.length);
690
691 baseEventInfo = events[1];
692 fields = baseEventInfo.getFields();
693 assertNotNull(fields);
694 assertEquals(3, fields.length);
695 assertEquals("doublefield", fields[0].getName());
696 assertEquals("float", fields[0].getFieldType());
697
698 assertEquals("floatfield", fields[1].getName());
699 assertEquals("float", fields[1].getFieldType());
700
701 assertEquals("stringfield", fields[2].getName());
702 assertEquals("string", fields[2].getFieldType());
703
704 //Verify second provider
705 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers.get(1).getName());
706 assertEquals(4852, providers.get(1).getPid());
707
708 // Verify event info
709 events = providers.get(1).getEvents();
710 assertNotNull(events);
711 assertEquals(2, events.length);
712
713 baseEventInfo = events[0];
714 assertNotNull(baseEventInfo);
715 fields = baseEventInfo.getFields();
716 assertNotNull(fields);
717 assertEquals(0, fields.length);
718
719 baseEventInfo = events[1];
720 fields = baseEventInfo.getFields();
721 assertNotNull(fields);
722 assertEquals(3, fields.length);
723
724 assertEquals("doublefield", fields[0].getName());
725 assertEquals("float", fields[0].getFieldType());
726
727 assertEquals("floatfield", fields[1].getName());
728 assertEquals("float", fields[1].getFieldType());
729
730 assertEquals("stringfield", fields[2].getName());
731 assertEquals("string", fields[2].getFieldType());
732
733 // Reset version
734 ((LTTngControlService)fService).setVersion("2.0.0");
735
736 } catch (ExecutionException e) {
737 fail(e.toString());
738 }
739 }
740
f3e2f354
BH
741
742 @Test
743 public void testGetKernelProviderNoUst1() {
744 try {
745 fShell.setScenario(SCEN_LIST_WITH_NO_UST1);
746 List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor());
747
748 // Verify Provider info
749 assertNotNull(providerList);
750 assertEquals(0, providerList.size());
751
752 } catch (ExecutionException e) {
753 fail(e.toString());
754 }
755 }
756
757
758 @Test
759 public void testGetKernelProviderNoUst2() {
760 try {
761 // Set version
762 ((LTTngControlService)fService).setVersion("2.1.0");
763
764 fShell.setScenario(SCEN_LIST_WITH_NO_UST2);
765 List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor());
766
767 // Verify Provider info
768 assertNotNull(providerList);
769 assertEquals(0, providerList.size());
770
771 // Reset version
772 ((LTTngControlService)fService).setVersion("2.0.0");
773
774 } catch (ExecutionException e) {
775 fail(e.toString());
776 }
777 }
778
779 @Test
780 public void testGetKernelProviderNoUst3() {
781 try {
782
783 // Set version
784 ((LTTngControlService)fService).setVersion("2.1.0");
785
786 fShell.setScenario(SCEN_LIST_WITH_NO_UST3);
787 List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor());
788
789 // Verify provider info
790 assertNotNull(providerList);
791 assertEquals(0, providerList.size());
792
793 // Reset version
794 ((LTTngControlService)fService).setVersion("2.0.0");
795
796 } catch (ExecutionException e) {
797 fail(e.toString());
798 }
799 }
800
801 @Test
802 public void testGetKernelProviderNoUstVerbose() {
803 try {
804 enableVerbose();
805
806 // Set version
807 ((LTTngControlService)fService).setVersion("2.1.0");
808
809 fShell.setScenario(SCEN_LIST_WITH_NO_UST_VERBOSE);
810 List<IUstProviderInfo> providerList = fService.getUstProvider(new NullProgressMonitor());
811
812 // Verify provider info
813 assertNotNull(providerList);
814 assertEquals(0, providerList.size());
815
816 // Reset version
817 ((LTTngControlService)fService).setVersion("2.0.0");
818
819 } catch (ExecutionException e) {
820 fail(e.toString());
821 } finally {
822 disableVerbose();
823 }
824 }
825
826
827
2ba3d0a1 828 @Test
bbb3538a
BH
829 public void testCreateSession() {
830 try {
d132bcc7
BH
831 fShell.setScenario(SCEN_CREATE_SESSION1);
832
f7d4d450 833 ISessionInfo info = fService.createSession(new SessionInfo("mysession2"), new NullProgressMonitor());
bbb3538a
BH
834 assertNotNull(info);
835 assertEquals("mysession2", info.getName());
836 assertNotNull(info.getSessionPath());
837 assertTrue(info.getSessionPath().contains("mysession2"));
838 assertEquals(TraceSessionState.INACTIVE, info.getSessionState());
839 } catch (ExecutionException e) {
840 fail(e.toString());
841 }
842 }
d132bcc7 843
2ba3d0a1 844 @Test
d6fc6e1b
BH
845 public void testCreateSessionWithPrompt() {
846 try {
a07c7629 847 // First line has the shell prompt before the command output
d6fc6e1b
BH
848 // This can happen in a real application if the command line is not echoed by the shell.
849 fShell.setScenario(SCEN_CREATE_SESSION_WITH_PROMPT);
850
851 // First line has no shell prompt before the output
f7d4d450 852 ISessionInfo info = fService.createSession(new SessionInfo("mysession2"), new NullProgressMonitor());
d6fc6e1b
BH
853 assertNotNull(info);
854 assertEquals("mysession2", info.getName());
855 assertNotNull(info.getSessionPath());
856 assertTrue(info.getSessionPath().contains("mysession2"));
857 assertEquals(TraceSessionState.INACTIVE, info.getSessionState());
858 } catch (ExecutionException e) {
859 fail(e.toString());
860 }
861 }
862
2ba3d0a1 863 @Test
d132bcc7
BH
864 public void testCreateSessionVariants() {
865
866 fShell.setScenario(SCEN_CREATE_SESSION_VARIANTS);
867
bbb3538a 868 try {
f7d4d450 869 fService.createSession(new SessionInfo("alreadyExist"), new NullProgressMonitor());
bbb3538a
BH
870 fail("No exeption thrown");
871 } catch (ExecutionException e) {
872 // success
873 }
cfdb727a 874
bbb3538a 875 try {
f7d4d450 876 fService.createSession(new SessionInfo("wrongName"), new NullProgressMonitor());
bbb3538a
BH
877 fail("No exeption thrown");
878 } catch (ExecutionException e) {
879 // success
cfdb727a 880 }
bbb3538a
BH
881
882 try {
f7d4d450
MAL
883 ISessionInfo sessionInfo = new SessionInfo("withPath");
884 sessionInfo.setSessionPath("/home/user/hallo");
885 fService.createSession(sessionInfo, new NullProgressMonitor());
bbb3538a
BH
886 fail("No exeption thrown");
887 } catch (ExecutionException e) {
888 // success
cfdb727a 889 }
bbb3538a
BH
890
891 try {
f7d4d450 892 ISessionInfo info = fService.createSession(new SessionInfo("session with spaces"), new NullProgressMonitor());
bbb3538a
BH
893 assertNotNull(info);
894 assertEquals("session with spaces", info.getName());
895 assertNotNull(info.getSessionPath());
896 assertTrue(info.getSessionPath().contains("session with spaces"));
897 assertEquals(TraceSessionState.INACTIVE, info.getSessionState());
cfdb727a 898
bbb3538a
BH
899 } catch (ExecutionException e) {
900 fail(e.toString());
cfdb727a 901 }
bbb3538a
BH
902
903 try {
f7d4d450
MAL
904 ISessionInfo sessionInfo = new SessionInfo("pathWithSpaces");
905 sessionInfo.setSessionPath("/home/user/hallo user/here");
906 ISessionInfo info = fService.createSession(sessionInfo, new NullProgressMonitor());
bbb3538a
BH
907 assertNotNull(info);
908 assertEquals("pathWithSpaces", info.getName());
909 assertNotNull(info.getSessionPath());
910 assertTrue(info.getSessionPath().contains("/home/user/hallo user/here"));
911 assertEquals(TraceSessionState.INACTIVE, info.getSessionState());
cfdb727a 912
bbb3538a
BH
913 } catch (ExecutionException e) {
914 fail(e.toString());
cfdb727a 915 }
bbb3538a
BH
916 }
917
2ba3d0a1 918 @Test
9d8a90ad 919 public void testDestroySession() {
bbb3538a 920 try {
d132bcc7
BH
921 fShell.setScenario(SCEN_DESTROY_SESSION1);
922 fService.destroySession("mysession2", new NullProgressMonitor());
bbb3538a
BH
923 } catch (ExecutionException e) {
924 fail(e.toString());
cfdb727a 925 }
bbb3538a 926 }
d132bcc7 927
d128c979
BH
928 @Test
929 public void testDestroySessionVerbose() {
930 try {
931 enableVerbose();
932 fShell.setScenario(SCEN_DESTROY_SESSION_VERBOSE);
933 fService.destroySession("mysession2", new NullProgressMonitor());
934 } catch (ExecutionException e) {
935 fail(e.toString());
936 } finally {
937 disableVerbose();
938 }
939 }
940
2ba3d0a1 941 @Test
d132bcc7
BH
942 public void testCreateChannel() {
943 try {
83051fc3 944 ((LTTngControlService)fService).setVersion("2.2.0");
d132bcc7 945 String sessionName = "mysession2";
e0838ca1 946 List<String> list = new ArrayList<>();
d132bcc7
BH
947 String kernelChannel0 = "mychannel0";
948 String kernelChannel1 = "mychannel1";
949 list.add(kernelChannel0);
950 list.add(kernelChannel1);
cfdb727a 951
d132bcc7 952 fShell.setScenario(SCEN_CHANNEL_HANDLING);
cfdb727a 953
d132bcc7
BH
954 // Create/enable/configure 2 kernel channels
955 ChannelInfo chanInfo = new ChannelInfo("");
956 chanInfo.setOverwriteMode(true);
957 chanInfo.setSubBufferSize(16384);
958 chanInfo.setReadTimer(100);
959 chanInfo.setSwitchTimer(200);
960 chanInfo.setNumberOfSubBuffers(2);
e799e5f3
SD
961 chanInfo.setMaxNumberTraceFiles(10);
962 chanInfo.setMaxSizeTraceFiles(0);
d132bcc7 963 fService.enableChannels(sessionName, list, true, chanInfo, new NullProgressMonitor());
cfdb727a 964
d132bcc7
BH
965 // Create/enable/configure 1 UST channel
966 list.clear();
967 list.add("ustChannel");
cfdb727a 968
d132bcc7
BH
969 chanInfo = new ChannelInfo("");
970 chanInfo.setOverwriteMode(true);
971 chanInfo.setSubBufferSize(32768);
972 chanInfo.setReadTimer(200);
973 chanInfo.setSwitchTimer(100);
974 chanInfo.setNumberOfSubBuffers(1);
e799e5f3
SD
975 chanInfo.setMaxNumberTraceFiles(20);
976 chanInfo.setMaxSizeTraceFiles(0);
977 fService.enableChannels(sessionName, list, false, chanInfo, new NullProgressMonitor());
83051fc3 978 ((LTTngControlService)fService).setVersion("2.0.0");
e799e5f3
SD
979
980 } catch (ExecutionException e) {
981 fail(e.toString());
982 }
983 }
984
985 @Test
986 public void testCreateChannelUIDBuffer() {
987 try {
83051fc3 988 ((LTTngControlService)fService).setVersion("2.2.0");
e799e5f3 989 String sessionName = "mysession2";
e0838ca1 990 List<String> list = new ArrayList<>();
e799e5f3
SD
991 String USTChannel = "ustChannel";
992 list.add(USTChannel);
993 fShell.setScenario(SCEN_CHANNEL_HANDLING);
994
995 ChannelInfo chanInfo = new ChannelInfo("");
996 chanInfo.setOverwriteMode(true);
997 chanInfo.setSubBufferSize(32768);
998 chanInfo.setReadTimer(200);
999 chanInfo.setSwitchTimer(100);
1000 chanInfo.setNumberOfSubBuffers(1);
1001 chanInfo.setMaxNumberTraceFiles(20);
1002 chanInfo.setMaxSizeTraceFiles(0);
83051fc3 1003 chanInfo.setBufferType(BufferType.BUFFER_PER_UID);
d132bcc7 1004 fService.enableChannels(sessionName, list, false, chanInfo, new NullProgressMonitor());
83051fc3
BH
1005 ((LTTngControlService)fService).setVersion("2.0.0");
1006
1007 } catch (ExecutionException e) {
1008 fail(e.toString());
1009 }
1010 }
1011
1012 @Test
1013 public void testCreateChannelPIDBuffer() {
1014 try {
1015 ((LTTngControlService)fService).setVersion("2.2.0");
1016 String sessionName = "mysession2";
e0838ca1 1017 List<String> list = new ArrayList<>();
83051fc3
BH
1018 String USTChannel = "ustChannel";
1019 list.add(USTChannel);
1020 fShell.setScenario(SCEN_CHANNEL_HANDLING);
1021
1022
1023 ChannelInfo chanInfo = new ChannelInfo("");
1024 chanInfo.setOverwriteMode(true);
1025 chanInfo.setSubBufferSize(-1);
1026 chanInfo.setReadTimer(-1);
1027 chanInfo.setSwitchTimer(-1);
1028 chanInfo.setNumberOfSubBuffers(-1);
1029 chanInfo.setMaxNumberTraceFiles(-1);
1030 chanInfo.setMaxSizeTraceFiles(-1);
1031 chanInfo.setBufferType(BufferType.BUFFER_PER_PID);
1032
1033 fService.enableChannels(sessionName, list, false, chanInfo, new NullProgressMonitor());
1034 ((LTTngControlService)fService).setVersion("2.0.0");
d132bcc7
BH
1035
1036 } catch (ExecutionException e) {
1037 fail(e.toString());
1038 }
1039 }
1040
2ba3d0a1 1041 @Test
d132bcc7
BH
1042 public void testDisableChannel() {
1043 try {
1044
1045 String sessionName = "mysession2";
e0838ca1 1046 List<String> list = new ArrayList<>();
d132bcc7
BH
1047 String kernelChannel0 = "mychannel0";
1048 String kernelChannel1 = "mychannel1";
1049 list.add(kernelChannel0);
1050 list.add(kernelChannel1);
cfdb727a 1051
d132bcc7
BH
1052 fShell.setScenario(SCEN_CHANNEL_HANDLING);
1053 fService.disableChannels(sessionName, list, true, new NullProgressMonitor());
cfdb727a 1054
d132bcc7
BH
1055 list.clear();
1056 list.add("ustChannel");
1057 fService.disableChannels(sessionName, list, false, new NullProgressMonitor());
1058
1059 } catch (ExecutionException e) {
1060 fail(e.toString());
1061 }
1062 }
cfdb727a 1063
2ba3d0a1 1064 @Test
d132bcc7
BH
1065 public void testEnableChannel() {
1066 try {
1067
1068 String sessionName = "mysession2";
e0838ca1 1069 List<String> list = new ArrayList<>();
d132bcc7
BH
1070 String kernelChannel0 = "mychannel0";
1071 String kernelChannel1 = "mychannel1";
1072 list.add(kernelChannel0);
1073 list.add(kernelChannel1);
cfdb727a 1074
d132bcc7
BH
1075 fShell.setScenario(SCEN_CHANNEL_HANDLING);
1076 fService.enableChannels(sessionName, list, true, null, new NullProgressMonitor());
cfdb727a 1077
d132bcc7
BH
1078 // Create/enable/configure 1 UST channel
1079 list.clear();
1080 list.add("ustChannel");
cfdb727a 1081
d132bcc7
BH
1082 fService.enableChannels(sessionName, list, false, null, new NullProgressMonitor());
1083
1084 } catch (ExecutionException e) {
1085 fail(e.toString());
1086 }
1087 }
cfdb727a 1088
2ba3d0a1 1089 @Test
d132bcc7
BH
1090 public void testEnableEvents() {
1091 try {
1092 // 1) session name, channel = null, 3 event names, kernel
1093 String sessionName = "mysession2";
e0838ca1 1094 List<String> list = new ArrayList<>();
d132bcc7
BH
1095 String eventName0 = "block_rq_remap";
1096 String eventName1 = "block_bio_remap";
1097 String eventName2 = "softirq_entry";
1098 list.add(eventName0);
1099 list.add(eventName1);
1100 list.add(eventName2);
1101 fShell.setScenario(SCEN_EVENT_HANDLING);
d4514365 1102 fService.enableEvents(sessionName, null, list, true, null, new NullProgressMonitor());
cfdb727a 1103
d132bcc7
BH
1104 // 2) session name, channel=mychannel, event name= null, kernel
1105 String channelName = "mychannel";
d4514365 1106 fService.enableEvents(sessionName, channelName, null, true, null, new NullProgressMonitor());
bbb3538a 1107
d4514365 1108 // 3) session name, channel=mychannel, 1 event name, ust, no filter
d132bcc7
BH
1109 String ustEventName = "ust_tests_hello:tptest_sighandler";
1110 list.clear();
1111 list.add(ustEventName);
d4514365 1112 fService.enableEvents(sessionName, channelName, list, false, null, new NullProgressMonitor());
cfdb727a 1113
d4514365
BH
1114 // 4) session name, channel = mychannel, no event name, ust, with filter
1115 fService.enableEvents(sessionName, channelName, list, false, "intfield==10", new NullProgressMonitor());
1116
1117 // 5) session name, channel = mychannel, no event name, ust, no filter
d132bcc7 1118 list.clear();
d4514365
BH
1119 fService.enableEvents(sessionName, channelName, list, false, null, new NullProgressMonitor());
1120
1121 // TODO add test with filters
cfdb727a 1122
d132bcc7
BH
1123 } catch (ExecutionException e) {
1124 fail(e.toString());
1125 }
1126 }
cfdb727a 1127
2ba3d0a1 1128 @Test
d132bcc7
BH
1129 public void testEnableSyscalls() {
1130 try {
1131 // 1) session name, channel = null, 3 event names, kernel
1132 String sessionName = "mysession2";
1133 String channelName = "mychannel";
cfdb727a 1134
d132bcc7
BH
1135 fShell.setScenario(SCEN_EVENT_HANDLING);
1136
cfdb727a 1137 // 1) session name, channel = null
d132bcc7
BH
1138 fService.enableSyscalls(sessionName, null, new NullProgressMonitor());
1139
1140 // 2) session name, channel = mychannel
1141 fService.enableSyscalls(sessionName, channelName, new NullProgressMonitor());
cfdb727a 1142
d132bcc7
BH
1143 } catch (ExecutionException e) {
1144 fail(e.toString());
1145 }
1146 }
1147
2ba3d0a1 1148 @Test
d132bcc7
BH
1149 public void testDynamicProbe() {
1150 try {
1151 // 1) session name, channel = null, 3 event names, kernel
1152 String sessionName = "mysession2";
1153 String channelName = "mychannel";
1154 String eventName0 = "myevent0";
1155 String eventName1 = "myevent1";
1156 String functionProbe = "0xc0101340";
1157 String dynProbe = "init_post";
cfdb727a 1158
d132bcc7
BH
1159 fShell.setScenario(SCEN_EVENT_HANDLING);
1160
cfdb727a 1161 // 1) session name, channel = null, event name, function probe, probe
d132bcc7
BH
1162 fService.enableProbe(sessionName, null, eventName0, true, functionProbe, new NullProgressMonitor());
1163
1164 // 2) session name, channel = mychannel
1165 fService.enableProbe(sessionName, channelName, eventName1, false, dynProbe, new NullProgressMonitor());
cfdb727a 1166
d132bcc7
BH
1167 } catch (ExecutionException e) {
1168 fail(e.toString());
1169 }
1170 }
1171
2ba3d0a1 1172 @Test
d132bcc7
BH
1173 public void testEnableLogLevel() {
1174 try {
1175 // 1) session name, channel = null, 3 event names, kernel
1176 String sessionName = "mysession2";
1177 String channelName = "mychannel";
1178 String eventName4 = "myevent4";
1179 String eventName5 = "myevent5";
cfdb727a 1180
d132bcc7 1181 fShell.setScenario(SCEN_EVENT_HANDLING);
cfdb727a 1182
d132bcc7 1183 // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG
d4514365 1184 fService.enableLogLevel(sessionName, null, eventName4, LogLevelType.LOGLEVEL_ONLY, TraceLogLevel.TRACE_DEBUG, null, new NullProgressMonitor());
d132bcc7
BH
1185
1186 // 2) session name, channel = mychannel, null, loglevel, TRACE_DEBUG_FUNCTION
d4514365
BH
1187 fService.enableLogLevel(sessionName, channelName, eventName5, LogLevelType.LOGLEVEL, TraceLogLevel.TRACE_DEBUG_FUNCTION, null, new NullProgressMonitor());
1188
1189 // TODO add test with filters
d132bcc7
BH
1190
1191 } catch (ExecutionException e) {
1192 fail(e.toString());
1193 }
1194 }
cfdb727a 1195
2ba3d0a1 1196 @Test
4ea599a5
BH
1197 public void testAddContext() {
1198 try {
1199 // 1) session name, channel = null, 3 event names, kernel
1200 String sessionName = "mysession2";
1201 String channelName = "mychannel";
1202 String eventName = "ust_tests_hello:tptest_sighandler";
e0838ca1 1203 List<String> contexts = new ArrayList<>();
4ea599a5
BH
1204 contexts.add("prio");
1205 contexts.add("pid");
1206
1207 fShell.setScenario(SCEN_CONTEXT_HANDLING);
1208
1209 List<String> availContexts = fService.getContextList(new NullProgressMonitor());
1210 assertNotNull(availContexts);
1211 assertEquals(12, availContexts.size());
1212
cfdb727a 1213 // A very "hard-coded" way to verify but it works ...
e0838ca1 1214 Set<String> expectedContexts = new HashSet<>();
4ea599a5
BH
1215 expectedContexts.add("pid");
1216 expectedContexts.add("procname");
1217 expectedContexts.add("prio");
1218 expectedContexts.add("nice");
1219 expectedContexts.add("vpid");
1220 expectedContexts.add("tid");
1221 expectedContexts.add("pthread_id");
1222 expectedContexts.add("vtid");
1223 expectedContexts.add("ppid");
1224 expectedContexts.add("vppid");
1225 expectedContexts.add("perf:cpu-cycles");
1226 expectedContexts.add("perf:cycles");
cfdb727a 1227
4ea599a5 1228 assertTrue(expectedContexts.containsAll(availContexts));
cfdb727a 1229
4ea599a5
BH
1230 // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG
1231 fService.addContexts(sessionName, channelName, eventName, false, contexts, new NullProgressMonitor());
1232
1233 } catch (ExecutionException e) {
1234 fail(e.toString());
1235 }
1236 }
1237
2ba3d0a1 1238 @Test
4ea599a5
BH
1239 public void testAddContextFailure() {
1240
1241 // 1) session name, channel = null, 3 event names, kernel
1242 String sessionName = "mysession2";
1243 String channelName = "mychannel";
1244 String eventName = "ust_tests_hello:tptest_sighandler";
e0838ca1 1245 List<String> contexts = new ArrayList<>();
4ea599a5
BH
1246 contexts.add("prio");
1247 contexts.add("pid");
1248 fShell.setScenario(SCEN_CONTEXT_ERROR_HANDLING);
1249 try {
1250 fService.getContextList(new NullProgressMonitor());
1251 fail("No exeption generated");
1252 } catch (ExecutionException e) {
1253 // success
cfdb727a 1254 }
4ea599a5
BH
1255 try {
1256 // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG
1257 fService.addContexts(sessionName, channelName, eventName, false, contexts, new NullProgressMonitor());
1258 fail("No exeption generated");
1259 } catch (ExecutionException e) {
1260 // success
cfdb727a 1261 }
4ea599a5
BH
1262 }
1263
2ba3d0a1 1264 @Test
4ea599a5
BH
1265 public void testCalibrate() {
1266 try {
1267 fShell.setScenario(SCEN_CALIBRATE_HANDLING);
1268 fService.calibrate(true, new NullProgressMonitor());
1269
1270 } catch (ExecutionException e) {
1271 fail(e.toString());
1272 }
1273 }
1274
2ba3d0a1 1275 @Test
4ea599a5 1276 public void testCalibrateFailure() {
4ea599a5
BH
1277 try {
1278 fShell.setScenario(SCEN_CALIBRATE_HANDLING);
1279 fService.calibrate(false, new NullProgressMonitor());
1280 fail("No exeption generated");
1281 } catch (ExecutionException e) {
1282 // success
cfdb727a 1283 }
4ea599a5 1284 }
cfdb727a 1285
a30e79fe 1286 @Test
f3b33d40
BH
1287 public void testCreateSession2_1() {
1288
1289 try {
1290 fShell.setScenario(SCEN_CREATE_SESSION_2_1);
1291
f7d4d450
MAL
1292 ISessionInfo sessionInfo = new SessionInfo("mysession");
1293 sessionInfo.setNetworkUrl("net://172.0.0.1");
1294 sessionInfo.setStreamedTrace(true);
1295 ISessionInfo info = fService.createSession(sessionInfo, new NullProgressMonitor());
f3b33d40
BH
1296 assertNotNull(info);
1297 assertEquals("mysession", info.getName());
1298 assertEquals("net://172.0.0.1", info.getSessionPath());
1299 assertTrue(info.isStreamedTrace());
1300 fService.destroySession("mysession", new NullProgressMonitor());
1301
f7d4d450
MAL
1302 sessionInfo = new SessionInfo("mysession");
1303 sessionInfo.setStreamedTrace(true);
1304 sessionInfo.setNetworkUrl("file:///tmp");
1305 info = fService.createSession(sessionInfo, new NullProgressMonitor());
f3b33d40
BH
1306 assertNotNull(info);
1307 assertEquals("mysession", info.getName());
1308 assertEquals("file:///tmp", info.getSessionPath());
d128c979 1309 assertTrue(!info.isStreamedTrace());
f3b33d40
BH
1310 fService.destroySession("mysession", new NullProgressMonitor());
1311
f7d4d450
MAL
1312 sessionInfo = new SessionInfo("mysession");
1313 sessionInfo.setStreamedTrace(true);
1314 sessionInfo.setNetworkUrl("file:///tmp");
1315 info = fService.createSession(sessionInfo, new NullProgressMonitor());
f3b33d40
BH
1316 assertNotNull(info);
1317 assertEquals("mysession", info.getName());
1318 assertEquals("file:///tmp", info.getSessionPath());
d128c979 1319 assertTrue(!info.isStreamedTrace());
f3b33d40
BH
1320 fService.destroySession("mysession", new NullProgressMonitor());
1321
f7d4d450
MAL
1322 sessionInfo = new SessionInfo("mysession");
1323 sessionInfo.setStreamedTrace(true);
1324 sessionInfo.setControlUrl("tcp://172.0.0.1");
1325 sessionInfo.setDataUrl("tcp://172.0.0.1:5343");
1326 info = fService.createSession(sessionInfo, new NullProgressMonitor());
f3b33d40
BH
1327 assertNotNull(info);
1328 assertEquals("mysession", info.getName());
d128c979 1329 assertEquals("", info.getSessionPath()); // the complete network path is not available at this point
f3b33d40
BH
1330 assertTrue(info.isStreamedTrace());
1331 fService.destroySession("mysession", new NullProgressMonitor());
1332
f7d4d450
MAL
1333 sessionInfo = new SessionInfo("mysession");
1334 sessionInfo.setStreamedTrace(true);
1335 sessionInfo.setNetworkUrl("net://172.0.0.1:1234:2345");
1336 info = fService.createSession(sessionInfo, new NullProgressMonitor());
f3b33d40
BH
1337 assertNotNull(info);
1338 assertEquals("mysession", info.getName());
1339 assertEquals("net://172.0.0.1:1234:2345", info.getSessionPath());
1340 assertTrue(info.isStreamedTrace());
1341 fService.destroySession("mysession", new NullProgressMonitor());
1342
d128c979
BH
1343 // verbose
1344 enableVerbose();
f7d4d450
MAL
1345 sessionInfo = new SessionInfo("mysession");
1346 sessionInfo.setStreamedTrace(true);
1347 sessionInfo.setNetworkUrl("net://172.0.0.1");
1348 info = fService.createSession(sessionInfo, new NullProgressMonitor());
d128c979
BH
1349 assertNotNull(info);
1350 assertEquals("mysession", info.getName());
1351 assertEquals("net://172.0.0.1", info.getSessionPath());
1352 assertTrue(info.isStreamedTrace());
1353 disableVerbose();
1354 fService.destroySession("mysession", new NullProgressMonitor());
1355
1356
1357 } catch (ExecutionException e) {
1358 fail(e.toString());
1359 }
1360 }
1361
1362 @Test
1363 public void testCreateSessionVerbose2_1() {
1364 try {
1365 fShell.setScenario(SCEN_CREATE_SESSION_VERBOSE_2_1);
1366
1367 enableVerbose();
f7d4d450
MAL
1368 ISessionInfo sessionInfo = new SessionInfo("mysession");
1369 sessionInfo.setStreamedTrace(true);
1370 sessionInfo.setNetworkUrl("net://172.0.0.1");
1371 ISessionInfo info = fService.createSession(sessionInfo, new NullProgressMonitor());
d128c979
BH
1372 assertNotNull(info);
1373 assertEquals("mysession", info.getName());
1374 assertEquals("net://172.0.0.1", info.getSessionPath());
1375 assertTrue(info.isStreamedTrace());
1376 fService.destroySession("mysession", new NullProgressMonitor());
f3b33d40
BH
1377 } catch (ExecutionException e) {
1378 fail(e.toString());
d128c979
BH
1379 } finally {
1380 disableVerbose();
f3b33d40
BH
1381 }
1382 }
d128c979 1383
589d0d33
BH
1384 @Test
1385 public void testCreateSnapshotSession() {
1386 try {
1387 fShell.setScenario(SCEN_CREATE_SNAPSHOT_SESSION);
f7d4d450
MAL
1388 ISessionInfo params = new SessionInfo("mysession");
1389 params.setSnapshot(true);
1390 ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor());
589d0d33
BH
1391 assertNotNull(sessionInfo);
1392 assertEquals("mysession", sessionInfo.getName());
1393 assertTrue(sessionInfo.isSnapshotSession());
1394 assertEquals("", sessionInfo.getSessionPath());
1395 assertTrue(!sessionInfo.isStreamedTrace());
1396
1397 assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState());
1398
cbc46cc9
BH
1399 List<String> names = fService.getSessionNames(new NullProgressMonitor());
1400 assertEquals(names.get(0), "mysession");
589d0d33
BH
1401
1402 ISnapshotInfo snapshotInfo = fService.getSnapshotInfo("mysession", new NullProgressMonitor());
1403 assertNotNull(snapshotInfo);
1404 assertEquals("snapshot-1", snapshotInfo.getName());
1405 assertEquals("/home/user/lttng-traces/mysession-20130913-141651", snapshotInfo.getSnapshotPath());
ad311f36
BH
1406 assertEquals(1, snapshotInfo.getId());
1407 assertTrue(!snapshotInfo.isStreamedSnapshot());
1408
1409 // we need to set the snapshotInfo to so that the session path is set correctly
1410 sessionInfo.setSnapshotInfo(snapshotInfo);
1411 assertEquals("/home/user/lttng-traces/mysession-20130913-141651", sessionInfo.getSessionPath());
1412
1413 fService.recordSnapshot("mysession", new NullProgressMonitor());
1414
1415 fService.destroySession("mysession", new NullProgressMonitor());
1416
1417 } catch (ExecutionException e) {
1418 fail(e.toString());
1419 }
1420 }
1421
1422 @Test
1423 public void testCreateSnapshotSession2_5() {
1424 try {
1425 fShell.setScenario(SCEN_CREATE_SNAPSHOT_SESSION_2_5);
1426 ISessionInfo params = new SessionInfo("mysession");
1427 params.setSnapshot(true);
1428 ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor());
1429 assertNotNull(sessionInfo);
1430 assertEquals("mysession", sessionInfo.getName());
1431 assertTrue(sessionInfo.isSnapshotSession());
1432 assertEquals("", sessionInfo.getSessionPath());
1433 assertTrue(!sessionInfo.isStreamedTrace());
1434
1435 assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState());
1436
cbc46cc9
BH
1437 List<String> names = fService.getSessionNames(new NullProgressMonitor());
1438 assertEquals(names.get(0), "mysession");
ad311f36
BH
1439
1440 ISnapshotInfo snapshotInfo = fService.getSnapshotInfo("mysession", new NullProgressMonitor());
1441 assertNotNull(snapshotInfo);
1442 assertEquals("snapshot-1", snapshotInfo.getName());
1443 assertEquals("/home/user/lttng-traces/mysession-20130913-141651", snapshotInfo.getSnapshotPath());
589d0d33
BH
1444 assertEquals(1, snapshotInfo.getId());
1445 assertTrue(!snapshotInfo.isStreamedSnapshot());
1446
1447 // we need to set the snapshotInfo to so that the session path is set correctly
1448 sessionInfo.setSnapshotInfo(snapshotInfo);
1449 assertEquals("/home/user/lttng-traces/mysession-20130913-141651", sessionInfo.getSessionPath());
1450
1451 fService.recordSnapshot("mysession", new NullProgressMonitor());
1452
1453 fService.destroySession("mysession", new NullProgressMonitor());
1454
1455 } catch (ExecutionException e) {
1456 fail(e.toString());
1457 }
1458 }
1459
1460 public void testCreateStreamedSnapshotSession() {
1461 try {
1462 fShell.setScenario(SCEN_CREATE_STREAMED_SNAPSHOT_SESSION);
1463
f7d4d450
MAL
1464 ISessionInfo params = new SessionInfo("mysession");
1465 params.setNetworkUrl("net://172.0.0.1");
1466 ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor());
589d0d33
BH
1467 assertNotNull(sessionInfo);
1468 assertEquals("mysession", sessionInfo.getName());
1469 assertTrue(sessionInfo.isSnapshotSession());
1470
1471 assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState());
1472 assertTrue(sessionInfo.isStreamedTrace());
1473
cbc46cc9
BH
1474 List<String> names = fService.getSessionNames(new NullProgressMonitor());
1475 assertEquals(names.get(0), "mysession");
589d0d33 1476
589d0d33
BH
1477 ISnapshotInfo snapshotInfo = sessionInfo.getSnapshotInfo();
1478 assertNotNull(sessionInfo);
1479 assertEquals("snapshot-2", snapshotInfo.getName());
1480 assertEquals("net4://172.0.0.1:5342/", snapshotInfo.getSnapshotPath());
1481 assertEquals(2, snapshotInfo.getId());
1482 assertTrue(snapshotInfo.isStreamedSnapshot());
1483
1484 // we need to set the snapshotInfo to so that the session path is set correctly
1485 sessionInfo.setSnapshotInfo(snapshotInfo);
1486 assertEquals("net4://172.0.0.1:5342/", sessionInfo.getSessionPath());
1487
1488 fService.recordSnapshot("mysession", new NullProgressMonitor());
1489
1490 fService.destroySession("mysession", new NullProgressMonitor());
1491
1492 } catch (ExecutionException e) {
1493 fail(e.toString());
1494 }
1495 }
1496
589d0d33
BH
1497 @Test
1498 public void testCreateSnapshotSessionErrors() {
1499 try {
1500 fShell.setScenario(SCEN_CREATE_SNAPSHOT_SESSION_ERRORS);
1501
cbc46cc9
BH
1502 List<String> names = fService.getSessionNames(new NullProgressMonitor());
1503 assertEquals(names.get(0), "mysession");
589d0d33
BH
1504 } catch (ExecutionException e) {
1505 fail(e.toString());
1506 }
1507
1508 try {
1509 fService.getSnapshotInfo("blabla", new NullProgressMonitor());
1510 fail("getSnapshoInfo() didn't fail");
1511 } catch (ExecutionException e) {
1512 // successful
1513 }
1514
1515 try {
1516 fService.recordSnapshot("blabla", new NullProgressMonitor());
1517 fail("getSnapshoInfo() didn't fail");
1518 } catch (ExecutionException e) {
1519 // successful
1520 }
1521
1522 try {
1523 fService.recordSnapshot("mysession", new NullProgressMonitor());
1524 fail("getSnapshoInfo() didn't fail");
1525 } catch (ExecutionException e) {
1526 // successful
1527 }
1528 }
1529
81d5dc3a
MAL
1530 @Test
1531 public void testCreateLiveSession() throws ExecutionException {
1532 fShell.setScenario(SCEN_CREATE_LIVE_SESSION);
1533
1534 ISessionInfo params = new SessionInfo("mysession");
1535 params.setLive(true);
1536 params.setStreamedTrace(true);
1537 params.setNetworkUrl("net://127.0.0.1");
1538 ISessionInfo sessionInfo = fService.createSession(params, new NullProgressMonitor());
1539 assertNotNull(sessionInfo);
1540 assertEquals("mysession", sessionInfo.getName());
1541 assertEquals(TraceSessionState.INACTIVE, sessionInfo.getSessionState());
1542 assertTrue(sessionInfo.isStreamedTrace());
1543 assertTrue(sessionInfo.isLive());
1544 assertEquals("net://127.0.0.1", sessionInfo.getSessionPath());
cbc46cc9
BH
1545 List<String> names = fService.getSessionNames(new NullProgressMonitor());
1546 assertEquals(names.get(0), "mysession");
81d5dc3a
MAL
1547 fService.destroySession("mysession", new NullProgressMonitor());
1548 }
1549
1550 @Test
1551 public void testCreateLiveSessionErrors() {
1552 try {
1553 fShell.setScenario(SCEN_CREATE_LIVE_SESSION_ERRORS);
1554
1555 ISessionInfo parameters = new SessionInfo("mysession");
1556 parameters.setLive(true);
1557 parameters.setSnapshot(true);
1558 fService.createSession(parameters, new NullProgressMonitor());
1559 fail("createSession() didn't fail");
1560 } catch (ExecutionException e) {
1561 // successful
1562 }
1563
1564 try {
1565 ISessionInfo parameters = new SessionInfo("mysession");
1566 parameters.setNetworkUrl("blah");
1567 parameters.setLive(true);
1568 fService.createSession(parameters, new NullProgressMonitor());
1569 fail("createSession() didn't fail");
1570 } catch (ExecutionException e) {
1571 // successful
1572 }
1573
1574 try {
1575 ISessionInfo parameters = new SessionInfo("mysession");
1576 parameters.setControlUrl("net://127.0.0.1");
1577 parameters.setLive(true);
1578 fService.createSession(parameters, new NullProgressMonitor());
1579 fail("createSession() didn't fail");
1580 } catch (ExecutionException e) {
1581 // successful
1582 }
1583 }
1584
2b7c6996
BH
1585 @Test
1586 public void testSessionProfile() {
1587 fShell.setScenario(SCEN_SESSION_PROFILES);
1588 final String profile = "/home/user/.lttng/sessions/mysession.lttng";
1589 try {
1590 fService.loadSession(profile, false, new NullProgressMonitor());
1591 } catch (ExecutionException e) {
1592 fail("load session failed: " + e);
1593 }
1594
1595 try {
1596 fService.loadSession(profile, true, new NullProgressMonitor());
1597 } catch (ExecutionException e) {
1598 fail("load session failed: " + e);
1599 }
1600
1601 try {
1602 fService.saveSession(null, null, false, new NullProgressMonitor());
1603 } catch (ExecutionException e) {
1604 fail("save session failed: " + e);
1605 }
1606
1607 final String sessionName = "mysession";
1608 try {
1609 fService.saveSession(sessionName, null, false, new NullProgressMonitor());
1610 } catch (ExecutionException e) {
1611 fail("save session failed: " + e);
1612 }
1613
1614 try {
1615 fService.saveSession(sessionName, null, true, new NullProgressMonitor());
1616 } catch (ExecutionException e) {
1617 fail("save session failed: " + e);
1618 }
1619
1620 try {
1621 fService.saveSession(sessionName, "/tmp/test", true, new NullProgressMonitor());
1622 } catch (ExecutionException e) {
1623 fail("save session failed: " + e);
1624 }
1625 }
1626
d128c979
BH
1627 private static void enableVerbose() {
1628 // verbose
1629 ControlCommandLogger.init(ControlPreferences.getInstance().getLogfilePath(), false);
1630 ControlPreferences.getInstance().getPreferenceStore().setDefault(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF, true);
1631 ControlPreferences.getInstance().getPreferenceStore().setDefault(ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_PREF, ControlPreferences.TRACE_CONTROL_VERBOSE_LEVEL_V_V_VERBOSE);
1632 }
1633
1634 private static void disableVerbose() {
1635 ControlPreferences.getInstance().getPreferenceStore().setDefault(ControlPreferences.TRACE_CONTROL_LOG_COMMANDS_PREF, false);
1636 }
1637
1638
eb1bab5b 1639}
This page took 0.156267 seconds and 5 git commands to generate.