1 /**********************************************************************
2 * Copyright (c) 2012, 2013 Ericsson
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
10 * Bernd Hufmann - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 **********************************************************************/
14 package org
.eclipse
.linuxtools
.lttng2
.ui
.tests
.control
.service
;
16 import static org
.junit
.Assert
.assertEquals
;
17 import static org
.junit
.Assert
.assertNotNull
;
18 import static org
.junit
.Assert
.assertTrue
;
19 import static org
.junit
.Assert
.fail
;
23 import java
.util
.ArrayList
;
24 import java
.util
.HashSet
;
25 import java
.util
.List
;
28 import org
.eclipse
.core
.commands
.ExecutionException
;
29 import org
.eclipse
.core
.runtime
.FileLocator
;
30 import org
.eclipse
.core
.runtime
.NullProgressMonitor
;
31 import org
.eclipse
.core
.runtime
.Path
;
32 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IBaseEventInfo
;
33 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IChannelInfo
;
34 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IDomainInfo
;
35 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IEventInfo
;
36 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IFieldInfo
;
37 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.ISessionInfo
;
38 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.ISnapshotInfo
;
39 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IUstProviderInfo
;
40 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.LogLevelType
;
41 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceEnablement
;
42 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceEventType
;
43 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceLogLevel
;
44 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceSessionState
;
45 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
.BufferType
;
46 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
.ChannelInfo
;
47 import org
.eclipse
.linuxtools
.internal
.lttng2
.stubs
.service
.CommandShellFactory
;
48 import org
.eclipse
.linuxtools
.internal
.lttng2
.stubs
.shells
.LTTngToolsFileShell
;
49 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.Activator
;
50 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.logging
.ControlCommandLogger
;
51 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.preferences
.ControlPreferences
;
52 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.service
.ILttngControlService
;
53 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.service
.LTTngControlService
;
54 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.service
.LTTngControlServiceFactory
;
55 import org
.junit
.After
;
56 import org
.junit
.Before
;
57 import org
.junit
.Test
;
58 import org
.osgi
.framework
.FrameworkUtil
;
61 * The class <code>LTTngControlServiceTest</code> contains test for the class
62 * <code>{@link LTTngControlService}</code>.
64 @SuppressWarnings("javadoc")
65 public class LTTngControlServiceTest
{
67 private static final String DIRECTORY
= "testfiles";
68 private static final String TEST_STREAM
= "LTTngServiceTest.cfg";
70 private static final String SCEN_LTTNG_NOT_INSTALLED
= "LttngNotInstalled";
71 private static final String SCEN_LTTNG_VERSION
= "LttngVersion";
72 private static final String SCEN_LTTNG_VERSION_WITH_PROMPT
= "LttngVersionWithPrompt";
73 private static final String SCEN_LTTNG_UNSUPPORTED_VERSION
= "LttngUnsupportedVersion";
74 private static final String SCEN_LTTNG_NO_VERSION
= "LttngNoVersion";
75 private static final String SCEN_NO_SESSION_AVAILABLE
= "NoSessionAvailable";
76 private static final String SCEN_GET_SESSION_NAMES1
= "GetSessionNames1";
77 private static final String SCEN_GET_SESSION_NAME_NOT_EXIST
= "GetSessionNameNotExist";
78 private static final String SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE
= "GetSessionNameNotExistVerbose";
79 private static final String SCEN_GET_SESSION_GARBAGE_OUT
= "GetSessionGarbageOut";
80 private static final String SCEN_GET_SESSION1
= "GetSession1";
81 private static final String SCEN_GET_KERNEL_PROVIDER1
= "GetKernelProvider1";
82 private static final String SCEN_LIST_WITH_NO_KERNEL1
= "ListWithNoKernel1";
83 private static final String SCEN_LIST_WITH_NO_KERNEL2
= "ListWithNoKernel2";
84 private static final String SCEN_LIST_WITH_NO_KERNEL_VERBOSE
= "ListWithNoKernelVerbose";
85 private static final String SCEN_GET_UST_PROVIDER1
= "GetUstProvider1";
86 private static final String SCEN_GET_UST_PROVIDER2
= "GetUstProvider2";
87 private static final String SCEN_GET_UST_PROVIDER3
= "GetUstProvider3";
88 private static final String SCEN_LIST_WITH_NO_UST1
= "ListWithNoUst1";
89 private static final String SCEN_LIST_WITH_NO_UST2
= "ListWithNoUst2";
90 private static final String SCEN_LIST_WITH_NO_UST3
= "ListWithNoUst3";
91 private static final String SCEN_LIST_WITH_NO_UST_VERBOSE
= "ListWithNoUstVerbose";
92 private static final String SCEN_CREATE_SESSION1
= "CreateSession1";
93 private static final String SCEN_CREATE_SESSION_WITH_PROMPT
= "CreateSessionWithPrompt";
94 private static final String SCEN_CREATE_SESSION_VARIANTS
= "CreateSessionVariants";
95 private static final String SCEN_DESTROY_SESSION1
= "DestroySession1";
96 private static final String SCEN_DESTROY_SESSION_VERBOSE
= "DestroySessionVerbose";
97 private static final String SCEN_CHANNEL_HANDLING
= "ChannelHandling";
98 private static final String SCEN_EVENT_HANDLING
= "EventHandling";
99 private static final String SCEN_CONTEXT_HANDLING
= "ContextHandling";
100 private static final String SCEN_CONTEXT_ERROR_HANDLING
= "ContextErrorHandling";
101 private static final String SCEN_CALIBRATE_HANDLING
= "CalibrateHandling";
102 private static final String SCEN_CREATE_SESSION_2_1
= "CreateSessionLttng2.1";
103 private static final String SCEN_CREATE_SESSION_VERBOSE_2_1
= "CreateSessionLttngVerbose2.1";
104 private static final String SCEN_CREATE_SNAPSHOT_SESSION
= "CreateSessionSnapshot";
105 private static final String SCEN_CREATE_STREAMED_SNAPSHOT_SESSION
= "CreateSessionStreamedSnapshot";
106 private static final String SCEN_CREATE_SNAPSHOT_SESSION_ERRORS
= "CreateSessionSnapshotErrors";
108 // ------------------------------------------------------------------------
110 // ------------------------------------------------------------------------
112 private CommandShellFactory fShellFactory
;
113 private String fTestfile
;
114 private LTTngToolsFileShell fShell
;
115 private ILttngControlService fService
;
117 // ------------------------------------------------------------------------
119 // ------------------------------------------------------------------------
122 * Perform pre-test initialization.
125 * if the initialization fails for some reason
128 public void setUp() throws Exception
{
129 fShellFactory
= CommandShellFactory
.getInstance();
131 URL location
= FileLocator
.find(FrameworkUtil
.getBundle(this.getClass()), new Path(DIRECTORY
+ File
.separator
+ TEST_STREAM
), null);
132 File testfile
= new File(FileLocator
.toFileURL(location
).toURI());
133 fTestfile
= testfile
.getAbsolutePath();
135 fShell
= fShellFactory
.getFileShell();
136 fShell
.loadScenarioFile(fTestfile
);
137 fService
= new LTTngControlService(fShell
);
139 ControlPreferences
.getInstance().init(Activator
.getDefault().getPreferenceStore());
143 public void tearDown() {
145 ControlPreferences
.getInstance().dispose();
148 // ------------------------------------------------------------------------
150 // ------------------------------------------------------------------------
153 public void testVersion() {
155 fShell
.setScenario(SCEN_LTTNG_VERSION
);
156 ILttngControlService service
= LTTngControlServiceFactory
.getInstance().getLttngControlService(fShell
);
157 assertNotNull(service
);
158 assertEquals("2.1.0", service
.getVersion());
159 } catch (ExecutionException e
) {
160 fail("Exeption thrown " + e
);
165 public void testVersionWithPrompt() {
167 fShell
.setScenario(SCEN_LTTNG_VERSION_WITH_PROMPT
);
168 ILttngControlService service
= LTTngControlServiceFactory
.getInstance().getLttngControlService(fShell
);
169 assertNotNull(service
);
170 assertEquals("2.0.0", service
.getVersion());
171 } catch (ExecutionException e
) {
172 fail("Exeption thrown " + e
);
177 public void testUnsupportedVersion() {
179 fShell
.setScenario(SCEN_LTTNG_UNSUPPORTED_VERSION
);
180 LTTngControlServiceFactory
.getInstance().getLttngControlService(fShell
);
181 fail("No exeption thrown");
182 } catch (ExecutionException e
) {
188 public void testNoVersion() {
190 fShell
.setScenario(SCEN_LTTNG_NO_VERSION
);
191 LTTngControlServiceFactory
.getInstance().getLttngControlService(fShell
);
192 fail("No exeption thrown");
193 } catch (ExecutionException e
) {
199 public void testLttngNotInstalled() {
201 fShell
.setScenario(SCEN_LTTNG_NOT_INSTALLED
);
202 fService
.getSessionNames(new NullProgressMonitor());
203 fail("No exeption thrown");
204 } catch (ExecutionException e
) {
210 public void testGetSessionNames1() {
212 fShell
.setScenario(SCEN_NO_SESSION_AVAILABLE
);
213 String
[] result
= fService
.getSessionNames(new NullProgressMonitor());
215 assertNotNull(result
);
216 assertEquals(0, result
.length
);
218 } catch (ExecutionException e
) {
224 public void testGetSessionNames2() {
226 fShell
.setScenario(SCEN_GET_SESSION_NAMES1
);
227 String
[] result
= fService
.getSessionNames(new NullProgressMonitor());
229 assertNotNull(result
);
230 assertEquals(2, result
.length
);
231 assertEquals("mysession1", result
[0]);
232 assertEquals("mysession", result
[1]);
234 } catch (ExecutionException e
) {
240 public void testGetSessionNotExist() {
242 fShell
.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST
);
243 fService
.getSessionNames(new NullProgressMonitor());
244 fail("No exeption thrown");
246 } catch (ExecutionException e
) {
252 public void testGetSessionNotExistVerbose() {
255 fShell
.setScenario(SCEN_GET_SESSION_NAME_NOT_EXIST_VERBOSE
);
256 fService
.getSessionNames(new NullProgressMonitor());
257 fail("No exeption thrown");
259 } catch (ExecutionException e
) {
267 public void testGetSessionNameGarbage() {
269 fShell
.setScenario(SCEN_GET_SESSION_GARBAGE_OUT
);
270 String
[] result
= fService
.getSessionNames(new NullProgressMonitor());
272 assertNotNull(result
);
273 assertEquals(0, result
.length
);
275 } catch (ExecutionException e
) {
281 public void testGetSession1() {
283 fShell
.setScenario(SCEN_GET_SESSION1
);
284 ISessionInfo session
= fService
.getSession("mysession", new NullProgressMonitor());
287 assertNotNull(session
);
288 assertEquals("mysession", session
.getName());
289 assertEquals("/home/user/lttng-traces/mysession-20120129-084256", session
.getSessionPath());
290 assertEquals(TraceSessionState
.ACTIVE
, session
.getSessionState());
292 IDomainInfo
[] domains
= session
.getDomains();
293 assertNotNull(domains
);
294 assertEquals(2, domains
.length
);
296 // Verify Kernel domain
297 assertEquals("Kernel", domains
[0].getName());
298 IChannelInfo
[] channels
= domains
[0].getChannels();
299 assertNotNull(channels
);
300 assertEquals(2, channels
.length
);
302 // Verify Kernel's channel0
303 assertEquals("channel0", channels
[0].getName());
304 assertEquals(4, channels
[0].getNumberOfSubBuffers());
305 assertEquals("splice()", channels
[0].getOutputType());
306 assertEquals(false, channels
[0].isOverwriteMode());
307 assertEquals(200, channels
[0].getReadTimer());
308 assertEquals(TraceEnablement
.ENABLED
, channels
[0].getState());
309 assertEquals(262144, channels
[0].getSubBufferSize());
310 assertEquals(0, channels
[0].getSwitchTimer());
313 IEventInfo
[] channel0Events
= channels
[0].getEvents();
314 assertNotNull(channel0Events
);
315 assertEquals(2, channel0Events
.length
);
316 assertEquals("block_rq_remap", channel0Events
[0].getName());
317 assertEquals(TraceLogLevel
.TRACE_EMERG
, channel0Events
[0].getLogLevel());
318 assertEquals(TraceEventType
.TRACEPOINT
, channel0Events
[0].getEventType());
319 assertEquals(TraceEnablement
.ENABLED
, channel0Events
[0].getState());
321 assertEquals("block_bio_remap", channel0Events
[1].getName());
322 assertEquals(TraceLogLevel
.TRACE_EMERG
, channel0Events
[1].getLogLevel());
323 assertEquals(TraceEventType
.TRACEPOINT
, channel0Events
[1].getEventType());
324 assertEquals(TraceEnablement
.DISABLED
, channel0Events
[1].getState());
326 // Verify Kernel's channel1
327 assertEquals("channel1", channels
[1].getName());
328 assertEquals(4, channels
[1].getNumberOfSubBuffers());
329 assertEquals("splice()", channels
[1].getOutputType());
330 assertEquals(true, channels
[1].isOverwriteMode());
331 assertEquals(400, channels
[1].getReadTimer());
332 assertEquals(TraceEnablement
.DISABLED
, channels
[1].getState());
333 assertEquals(524288, channels
[1].getSubBufferSize());
334 assertEquals(100, channels
[1].getSwitchTimer());
337 IEventInfo
[] channel1Events
= channels
[1].getEvents();
338 assertEquals(0, channel1Events
.length
);
340 // Verify domain UST global
341 assertEquals("UST global", domains
[1].getName());
343 IChannelInfo
[] ustChannels
= domains
[1].getChannels();
345 // Verify UST global's mychannel1
346 assertEquals("mychannel1", ustChannels
[0].getName());
347 assertEquals(8, ustChannels
[0].getNumberOfSubBuffers());
348 assertEquals("mmap()", ustChannels
[0].getOutputType());
349 assertEquals(true, ustChannels
[0].isOverwriteMode());
350 assertEquals(100, ustChannels
[0].getReadTimer());
351 assertEquals(TraceEnablement
.DISABLED
, ustChannels
[0].getState());
352 assertEquals(8192, ustChannels
[0].getSubBufferSize());
353 assertEquals(200, ustChannels
[0].getSwitchTimer());
356 IEventInfo
[] ustEvents
= ustChannels
[0].getEvents();
357 assertEquals(0, ustEvents
.length
);
359 // Verify UST global's channel0
360 assertEquals("channel0", ustChannels
[1].getName());
361 assertEquals(4, ustChannels
[1].getNumberOfSubBuffers());
362 assertEquals("mmap()", ustChannels
[1].getOutputType());
363 assertEquals(false, ustChannels
[1].isOverwriteMode());
364 assertEquals(200, ustChannels
[1].getReadTimer());
365 assertEquals(TraceEnablement
.ENABLED
, ustChannels
[1].getState());
366 assertEquals(4096, ustChannels
[1].getSubBufferSize());
367 assertEquals(0, ustChannels
[1].getSwitchTimer());
370 ustEvents
= ustChannels
[1].getEvents();
371 assertEquals(2, ustEvents
.length
);
373 assertEquals("ust_tests_hello:tptest_sighandler", ustEvents
[0].getName());
374 assertEquals(TraceLogLevel
.TRACE_DEBUG_LINE
, ustEvents
[0].getLogLevel());
375 assertEquals(TraceEventType
.TRACEPOINT
, ustEvents
[0].getEventType());
376 assertEquals(TraceEnablement
.DISABLED
, ustEvents
[0].getState());
378 assertEquals("*", ustEvents
[1].getName());
379 assertEquals(TraceLogLevel
.LEVEL_UNKNOWN
, ustEvents
[1].getLogLevel());
380 assertEquals(TraceEventType
.TRACEPOINT
, ustEvents
[1].getEventType());
381 assertEquals(TraceEnablement
.ENABLED
, ustEvents
[1].getState());
383 // next session (no detailed information available)
384 session
= fService
.getSession("mysession1", new NullProgressMonitor());
385 assertNotNull(session
);
386 assertEquals("mysession1", session
.getName());
387 assertEquals("/home/user/lttng-traces/mysession1-20120203-133225", session
.getSessionPath());
388 assertEquals(TraceSessionState
.INACTIVE
, session
.getSessionState());
390 domains
= session
.getDomains();
391 assertNotNull(domains
);
392 assertEquals(0, domains
.length
);
393 } catch (ExecutionException e
) {
398 public void testGetKernelProvider() {
400 fShell
.setScenario(SCEN_GET_KERNEL_PROVIDER1
);
401 List
<IBaseEventInfo
> events
= fService
.getKernelProvider(new NullProgressMonitor());
404 assertNotNull(events
);
405 assertEquals(3, events
.size());
407 IBaseEventInfo baseEventInfo
= events
.get(0);
408 assertNotNull(baseEventInfo
);
409 assertEquals("sched_kthread_stop", baseEventInfo
.getName());
410 assertEquals(TraceLogLevel
.TRACE_EMERG
, baseEventInfo
.getLogLevel());
411 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
413 baseEventInfo
= events
.get(1);
414 assertEquals("sched_kthread_stop_ret", baseEventInfo
.getName());
415 assertEquals(TraceLogLevel
.TRACE_EMERG
, baseEventInfo
.getLogLevel());
416 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
418 baseEventInfo
= events
.get(2);
419 assertEquals("sched_wakeup_new", baseEventInfo
.getName());
420 assertEquals(TraceLogLevel
.TRACE_EMERG
, baseEventInfo
.getLogLevel());
421 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
423 } catch (ExecutionException e
) {
429 public void testGetKernelProviderNoKernel1() {
431 fShell
.setScenario(SCEN_LIST_WITH_NO_KERNEL1
);
432 List
<IBaseEventInfo
> events
= fService
.getKernelProvider(new NullProgressMonitor());
435 assertNotNull(events
);
436 assertEquals(0, events
.size());
438 } catch (ExecutionException e
) {
444 public void testGetKernelProviderNoKernel2() {
446 fShell
.setScenario(SCEN_LIST_WITH_NO_KERNEL2
);
447 List
<IBaseEventInfo
> events
= fService
.getKernelProvider(new NullProgressMonitor());
450 assertNotNull(events
);
451 assertEquals(0, events
.size());
453 } catch (ExecutionException e
) {
459 public void testGetKernelProviderNoKernelVerbose() {
462 fShell
.setScenario(SCEN_LIST_WITH_NO_KERNEL_VERBOSE
);
463 List
<IBaseEventInfo
> events
= fService
.getKernelProvider(new NullProgressMonitor());
466 assertNotNull(events
);
467 assertEquals(0, events
.size());
469 } catch (ExecutionException e
) {
477 public void testGetUstProvider() {
479 fShell
.setScenario(SCEN_GET_UST_PROVIDER1
);
480 List
<IUstProviderInfo
> providers
= fService
.getUstProvider();
482 // Check all providers
483 assertNotNull(providers
);
484 assertEquals(2, providers
.size());
486 //Verify first provider
487 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers
.get(0).getName());
488 assertEquals(9379, providers
.get(0).getPid());
491 IBaseEventInfo
[] events
= providers
.get(0).getEvents();
492 assertNotNull(events
);
493 assertEquals(2, events
.length
);
495 IBaseEventInfo baseEventInfo
= events
[0];
496 assertNotNull(baseEventInfo
);
497 assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo
.getName());
498 assertEquals(TraceLogLevel
.TRACE_DEBUG_MODULE
, baseEventInfo
.getLogLevel());
499 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
501 baseEventInfo
= events
[1];
502 assertEquals("ust_tests_hello:tptest", baseEventInfo
.getName());
503 assertEquals(TraceLogLevel
.TRACE_INFO
, baseEventInfo
.getLogLevel());
504 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
506 //Verify second provider
507 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers
.get(1).getName());
508 assertEquals(4852, providers
.get(1).getPid());
511 events
= providers
.get(1).getEvents();
512 assertNotNull(events
);
513 assertEquals(2, events
.length
);
515 baseEventInfo
= events
[0];
516 assertNotNull(baseEventInfo
);
517 assertEquals("ust_tests_hello:tptest_sighandler", baseEventInfo
.getName());
518 assertEquals(TraceLogLevel
.TRACE_WARNING
, baseEventInfo
.getLogLevel());
519 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
521 baseEventInfo
= events
[1];
522 assertEquals("ust_tests_hello:tptest", baseEventInfo
.getName());
523 assertEquals(TraceLogLevel
.TRACE_DEBUG_FUNCTION
, baseEventInfo
.getLogLevel());
524 assertEquals(TraceEventType
.TRACEPOINT
, baseEventInfo
.getEventType());
526 } catch (ExecutionException e
) {
532 public void testUstProvider2() {
534 fShell
.setScenario(SCEN_GET_UST_PROVIDER2
);
535 List
<IUstProviderInfo
> providers
= fService
.getUstProvider();
537 assertNotNull(providers
);
538 assertEquals(0, providers
.size());
540 } catch (ExecutionException e
) {
546 public void testGetUstProvider3() {
548 fShell
.setScenario(SCEN_GET_UST_PROVIDER3
);
550 ((LTTngControlService
)fService
).setVersion("2.1.0");
551 List
<IUstProviderInfo
> providers
= fService
.getUstProvider();
553 // Check all providers
554 assertNotNull(providers
);
555 assertEquals(2, providers
.size());
557 //Verify first provider
558 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers
.get(0).getName());
559 assertEquals(9379, providers
.get(0).getPid());
562 IBaseEventInfo
[] events
= providers
.get(0).getEvents();
563 assertNotNull(events
);
564 assertEquals(2, events
.length
);
566 IBaseEventInfo baseEventInfo
= events
[0];
567 assertNotNull(baseEventInfo
);
568 IFieldInfo
[] fields
= baseEventInfo
.getFields();
569 assertNotNull(fields
);
570 assertEquals(0, fields
.length
);
572 baseEventInfo
= events
[1];
573 fields
= baseEventInfo
.getFields();
574 assertNotNull(fields
);
575 assertEquals(3, fields
.length
);
576 assertEquals("doublefield", fields
[0].getName());
577 assertEquals("float", fields
[0].getFieldType());
579 assertEquals("floatfield", fields
[1].getName());
580 assertEquals("float", fields
[1].getFieldType());
582 assertEquals("stringfield", fields
[2].getName());
583 assertEquals("string", fields
[2].getFieldType());
585 //Verify second provider
586 assertEquals("/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello", providers
.get(1).getName());
587 assertEquals(4852, providers
.get(1).getPid());
590 events
= providers
.get(1).getEvents();
591 assertNotNull(events
);
592 assertEquals(2, events
.length
);
594 baseEventInfo
= events
[0];
595 assertNotNull(baseEventInfo
);
596 fields
= baseEventInfo
.getFields();
597 assertNotNull(fields
);
598 assertEquals(0, fields
.length
);
600 baseEventInfo
= events
[1];
601 fields
= baseEventInfo
.getFields();
602 assertNotNull(fields
);
603 assertEquals(3, fields
.length
);
605 assertEquals("doublefield", fields
[0].getName());
606 assertEquals("float", fields
[0].getFieldType());
608 assertEquals("floatfield", fields
[1].getName());
609 assertEquals("float", fields
[1].getFieldType());
611 assertEquals("stringfield", fields
[2].getName());
612 assertEquals("string", fields
[2].getFieldType());
615 ((LTTngControlService
)fService
).setVersion("2.0.0");
617 } catch (ExecutionException e
) {
624 public void testGetKernelProviderNoUst1() {
626 fShell
.setScenario(SCEN_LIST_WITH_NO_UST1
);
627 List
<IUstProviderInfo
> providerList
= fService
.getUstProvider(new NullProgressMonitor());
629 // Verify Provider info
630 assertNotNull(providerList
);
631 assertEquals(0, providerList
.size());
633 } catch (ExecutionException e
) {
640 public void testGetKernelProviderNoUst2() {
643 ((LTTngControlService
)fService
).setVersion("2.1.0");
645 fShell
.setScenario(SCEN_LIST_WITH_NO_UST2
);
646 List
<IUstProviderInfo
> providerList
= fService
.getUstProvider(new NullProgressMonitor());
648 // Verify Provider info
649 assertNotNull(providerList
);
650 assertEquals(0, providerList
.size());
653 ((LTTngControlService
)fService
).setVersion("2.0.0");
655 } catch (ExecutionException e
) {
661 public void testGetKernelProviderNoUst3() {
665 ((LTTngControlService
)fService
).setVersion("2.1.0");
667 fShell
.setScenario(SCEN_LIST_WITH_NO_UST3
);
668 List
<IUstProviderInfo
> providerList
= fService
.getUstProvider(new NullProgressMonitor());
670 // Verify provider info
671 assertNotNull(providerList
);
672 assertEquals(0, providerList
.size());
675 ((LTTngControlService
)fService
).setVersion("2.0.0");
677 } catch (ExecutionException e
) {
683 public void testGetKernelProviderNoUstVerbose() {
688 ((LTTngControlService
)fService
).setVersion("2.1.0");
690 fShell
.setScenario(SCEN_LIST_WITH_NO_UST_VERBOSE
);
691 List
<IUstProviderInfo
> providerList
= fService
.getUstProvider(new NullProgressMonitor());
693 // Verify provider info
694 assertNotNull(providerList
);
695 assertEquals(0, providerList
.size());
698 ((LTTngControlService
)fService
).setVersion("2.0.0");
700 } catch (ExecutionException e
) {
710 public void testCreateSession() {
712 fShell
.setScenario(SCEN_CREATE_SESSION1
);
714 ISessionInfo info
= fService
.createSession("mysession2", null, false, new NullProgressMonitor());
716 assertEquals("mysession2", info
.getName());
717 assertNotNull(info
.getSessionPath());
718 assertTrue(info
.getSessionPath().contains("mysession2"));
719 assertEquals(TraceSessionState
.INACTIVE
, info
.getSessionState());
720 } catch (ExecutionException e
) {
726 public void testCreateSessionWithPrompt() {
728 // First line has the shell prompt before the command output
729 // This can happen in a real application if the command line is not echoed by the shell.
730 fShell
.setScenario(SCEN_CREATE_SESSION_WITH_PROMPT
);
732 // First line has no shell prompt before the output
733 ISessionInfo info
= fService
.createSession("mysession2", null, false, new NullProgressMonitor());
735 assertEquals("mysession2", info
.getName());
736 assertNotNull(info
.getSessionPath());
737 assertTrue(info
.getSessionPath().contains("mysession2"));
738 assertEquals(TraceSessionState
.INACTIVE
, info
.getSessionState());
739 } catch (ExecutionException e
) {
745 public void testCreateSessionVariants() {
747 fShell
.setScenario(SCEN_CREATE_SESSION_VARIANTS
);
750 fService
.createSession("alreadyExist", null, false, new NullProgressMonitor());
751 fail("No exeption thrown");
752 } catch (ExecutionException e
) {
757 fService
.createSession("wrongName", null, false, new NullProgressMonitor());
758 fail("No exeption thrown");
759 } catch (ExecutionException e
) {
764 fService
.createSession("withPath", "/home/user/hallo", false, new NullProgressMonitor());
765 fail("No exeption thrown");
766 } catch (ExecutionException e
) {
771 ISessionInfo info
= fService
.createSession("session with spaces", null, false, new NullProgressMonitor());
773 assertEquals("session with spaces", info
.getName());
774 assertNotNull(info
.getSessionPath());
775 assertTrue(info
.getSessionPath().contains("session with spaces"));
776 assertEquals(TraceSessionState
.INACTIVE
, info
.getSessionState());
778 } catch (ExecutionException e
) {
783 ISessionInfo info
= fService
.createSession("pathWithSpaces", "/home/user/hallo user/here", false, new NullProgressMonitor());
785 assertEquals("pathWithSpaces", info
.getName());
786 assertNotNull(info
.getSessionPath());
787 assertTrue(info
.getSessionPath().contains("/home/user/hallo user/here"));
788 assertEquals(TraceSessionState
.INACTIVE
, info
.getSessionState());
790 } catch (ExecutionException e
) {
796 public void testDestroySession() {
798 fShell
.setScenario(SCEN_DESTROY_SESSION1
);
799 fService
.destroySession("mysession2", new NullProgressMonitor());
800 } catch (ExecutionException e
) {
806 public void testDestroySessionVerbose() {
809 fShell
.setScenario(SCEN_DESTROY_SESSION_VERBOSE
);
810 fService
.destroySession("mysession2", new NullProgressMonitor());
811 } catch (ExecutionException e
) {
819 public void testCreateChannel() {
821 ((LTTngControlService
)fService
).setVersion("2.2.0");
822 String sessionName
= "mysession2";
823 List
<String
> list
= new ArrayList
<String
>();
824 String kernelChannel0
= "mychannel0";
825 String kernelChannel1
= "mychannel1";
826 list
.add(kernelChannel0
);
827 list
.add(kernelChannel1
);
829 fShell
.setScenario(SCEN_CHANNEL_HANDLING
);
831 // Create/enable/configure 2 kernel channels
832 ChannelInfo chanInfo
= new ChannelInfo("");
833 chanInfo
.setOverwriteMode(true);
834 chanInfo
.setSubBufferSize(16384);
835 chanInfo
.setReadTimer(100);
836 chanInfo
.setSwitchTimer(200);
837 chanInfo
.setNumberOfSubBuffers(2);
838 chanInfo
.setMaxNumberTraceFiles(10);
839 chanInfo
.setMaxSizeTraceFiles(0);
840 fService
.enableChannels(sessionName
, list
, true, chanInfo
, new NullProgressMonitor());
842 // Create/enable/configure 1 UST channel
844 list
.add("ustChannel");
846 chanInfo
= new ChannelInfo("");
847 chanInfo
.setOverwriteMode(true);
848 chanInfo
.setSubBufferSize(32768);
849 chanInfo
.setReadTimer(200);
850 chanInfo
.setSwitchTimer(100);
851 chanInfo
.setNumberOfSubBuffers(1);
852 chanInfo
.setMaxNumberTraceFiles(20);
853 chanInfo
.setMaxSizeTraceFiles(0);
854 fService
.enableChannels(sessionName
, list
, false, chanInfo
, new NullProgressMonitor());
855 ((LTTngControlService
)fService
).setVersion("2.0.0");
857 } catch (ExecutionException e
) {
863 public void testCreateChannelUIDBuffer() {
865 ((LTTngControlService
)fService
).setVersion("2.2.0");
866 String sessionName
= "mysession2";
867 List
<String
> list
= new ArrayList
<String
>();
868 String USTChannel
= "ustChannel";
869 list
.add(USTChannel
);
870 fShell
.setScenario(SCEN_CHANNEL_HANDLING
);
872 ChannelInfo chanInfo
= new ChannelInfo("");
873 chanInfo
.setOverwriteMode(true);
874 chanInfo
.setSubBufferSize(32768);
875 chanInfo
.setReadTimer(200);
876 chanInfo
.setSwitchTimer(100);
877 chanInfo
.setNumberOfSubBuffers(1);
878 chanInfo
.setMaxNumberTraceFiles(20);
879 chanInfo
.setMaxSizeTraceFiles(0);
880 chanInfo
.setBufferType(BufferType
.BUFFER_PER_UID
);
881 fService
.enableChannels(sessionName
, list
, false, chanInfo
, new NullProgressMonitor());
882 ((LTTngControlService
)fService
).setVersion("2.0.0");
884 } catch (ExecutionException e
) {
890 public void testCreateChannelPIDBuffer() {
892 ((LTTngControlService
)fService
).setVersion("2.2.0");
893 String sessionName
= "mysession2";
894 List
<String
> list
= new ArrayList
<String
>();
895 String USTChannel
= "ustChannel";
896 list
.add(USTChannel
);
897 fShell
.setScenario(SCEN_CHANNEL_HANDLING
);
900 ChannelInfo chanInfo
= new ChannelInfo("");
901 chanInfo
.setOverwriteMode(true);
902 chanInfo
.setSubBufferSize(-1);
903 chanInfo
.setReadTimer(-1);
904 chanInfo
.setSwitchTimer(-1);
905 chanInfo
.setNumberOfSubBuffers(-1);
906 chanInfo
.setMaxNumberTraceFiles(-1);
907 chanInfo
.setMaxSizeTraceFiles(-1);
908 chanInfo
.setBufferType(BufferType
.BUFFER_PER_PID
);
910 fService
.enableChannels(sessionName
, list
, false, chanInfo
, new NullProgressMonitor());
911 ((LTTngControlService
)fService
).setVersion("2.0.0");
913 } catch (ExecutionException e
) {
919 public void testDisableChannel() {
922 String sessionName
= "mysession2";
923 List
<String
> list
= new ArrayList
<String
>();
924 String kernelChannel0
= "mychannel0";
925 String kernelChannel1
= "mychannel1";
926 list
.add(kernelChannel0
);
927 list
.add(kernelChannel1
);
929 fShell
.setScenario(SCEN_CHANNEL_HANDLING
);
930 fService
.disableChannels(sessionName
, list
, true, new NullProgressMonitor());
933 list
.add("ustChannel");
934 fService
.disableChannels(sessionName
, list
, false, new NullProgressMonitor());
936 } catch (ExecutionException e
) {
942 public void testEnableChannel() {
945 String sessionName
= "mysession2";
946 List
<String
> list
= new ArrayList
<String
>();
947 String kernelChannel0
= "mychannel0";
948 String kernelChannel1
= "mychannel1";
949 list
.add(kernelChannel0
);
950 list
.add(kernelChannel1
);
952 fShell
.setScenario(SCEN_CHANNEL_HANDLING
);
953 fService
.enableChannels(sessionName
, list
, true, null, new NullProgressMonitor());
955 // Create/enable/configure 1 UST channel
957 list
.add("ustChannel");
959 fService
.enableChannels(sessionName
, list
, false, null, new NullProgressMonitor());
961 } catch (ExecutionException e
) {
967 public void testEnableEvents() {
969 // 1) session name, channel = null, 3 event names, kernel
970 String sessionName
= "mysession2";
971 List
<String
> list
= new ArrayList
<String
>();
972 String eventName0
= "block_rq_remap";
973 String eventName1
= "block_bio_remap";
974 String eventName2
= "softirq_entry";
975 list
.add(eventName0
);
976 list
.add(eventName1
);
977 list
.add(eventName2
);
978 fShell
.setScenario(SCEN_EVENT_HANDLING
);
979 fService
.enableEvents(sessionName
, null, list
, true, null, new NullProgressMonitor());
981 // 2) session name, channel=mychannel, event name= null, kernel
982 String channelName
= "mychannel";
983 fService
.enableEvents(sessionName
, channelName
, null, true, null, new NullProgressMonitor());
985 // 3) session name, channel=mychannel, 1 event name, ust, no filter
986 String ustEventName
= "ust_tests_hello:tptest_sighandler";
988 list
.add(ustEventName
);
989 fService
.enableEvents(sessionName
, channelName
, list
, false, null, new NullProgressMonitor());
991 // 4) session name, channel = mychannel, no event name, ust, with filter
992 fService
.enableEvents(sessionName
, channelName
, list
, false, "intfield==10", new NullProgressMonitor());
994 // 5) session name, channel = mychannel, no event name, ust, no filter
996 fService
.enableEvents(sessionName
, channelName
, list
, false, null, new NullProgressMonitor());
998 // TODO add test with filters
1000 } catch (ExecutionException e
) {
1006 public void testEnableSyscalls() {
1008 // 1) session name, channel = null, 3 event names, kernel
1009 String sessionName
= "mysession2";
1010 String channelName
= "mychannel";
1012 fShell
.setScenario(SCEN_EVENT_HANDLING
);
1014 // 1) session name, channel = null
1015 fService
.enableSyscalls(sessionName
, null, new NullProgressMonitor());
1017 // 2) session name, channel = mychannel
1018 fService
.enableSyscalls(sessionName
, channelName
, new NullProgressMonitor());
1020 } catch (ExecutionException e
) {
1026 public void testDynamicProbe() {
1028 // 1) session name, channel = null, 3 event names, kernel
1029 String sessionName
= "mysession2";
1030 String channelName
= "mychannel";
1031 String eventName0
= "myevent0";
1032 String eventName1
= "myevent1";
1033 String functionProbe
= "0xc0101340";
1034 String dynProbe
= "init_post";
1036 fShell
.setScenario(SCEN_EVENT_HANDLING
);
1038 // 1) session name, channel = null, event name, function probe, probe
1039 fService
.enableProbe(sessionName
, null, eventName0
, true, functionProbe
, new NullProgressMonitor());
1041 // 2) session name, channel = mychannel
1042 fService
.enableProbe(sessionName
, channelName
, eventName1
, false, dynProbe
, new NullProgressMonitor());
1044 } catch (ExecutionException e
) {
1050 public void testEnableLogLevel() {
1052 // 1) session name, channel = null, 3 event names, kernel
1053 String sessionName
= "mysession2";
1054 String channelName
= "mychannel";
1055 String eventName4
= "myevent4";
1056 String eventName5
= "myevent5";
1058 fShell
.setScenario(SCEN_EVENT_HANDLING
);
1060 // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG
1061 fService
.enableLogLevel(sessionName
, null, eventName4
, LogLevelType
.LOGLEVEL_ONLY
, TraceLogLevel
.TRACE_DEBUG
, null, new NullProgressMonitor());
1063 // 2) session name, channel = mychannel, null, loglevel, TRACE_DEBUG_FUNCTION
1064 fService
.enableLogLevel(sessionName
, channelName
, eventName5
, LogLevelType
.LOGLEVEL
, TraceLogLevel
.TRACE_DEBUG_FUNCTION
, null, new NullProgressMonitor());
1066 // TODO add test with filters
1068 } catch (ExecutionException e
) {
1074 public void testAddContext() {
1076 // 1) session name, channel = null, 3 event names, kernel
1077 String sessionName
= "mysession2";
1078 String channelName
= "mychannel";
1079 String eventName
= "ust_tests_hello:tptest_sighandler";
1080 List
<String
> contexts
= new ArrayList
<String
>();
1081 contexts
.add("prio");
1082 contexts
.add("pid");
1084 fShell
.setScenario(SCEN_CONTEXT_HANDLING
);
1086 List
<String
> availContexts
= fService
.getContextList(new NullProgressMonitor());
1087 assertNotNull(availContexts
);
1088 assertEquals(12, availContexts
.size());
1090 // A very "hard-coded" way to verify but it works ...
1091 Set
<String
> expectedContexts
= new HashSet
<String
>();
1092 expectedContexts
.add("pid");
1093 expectedContexts
.add("procname");
1094 expectedContexts
.add("prio");
1095 expectedContexts
.add("nice");
1096 expectedContexts
.add("vpid");
1097 expectedContexts
.add("tid");
1098 expectedContexts
.add("pthread_id");
1099 expectedContexts
.add("vtid");
1100 expectedContexts
.add("ppid");
1101 expectedContexts
.add("vppid");
1102 expectedContexts
.add("perf:cpu-cycles");
1103 expectedContexts
.add("perf:cycles");
1105 assertTrue(expectedContexts
.containsAll(availContexts
));
1107 // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG
1108 fService
.addContexts(sessionName
, channelName
, eventName
, false, contexts
, new NullProgressMonitor());
1110 } catch (ExecutionException e
) {
1116 public void testAddContextFailure() {
1118 // 1) session name, channel = null, 3 event names, kernel
1119 String sessionName
= "mysession2";
1120 String channelName
= "mychannel";
1121 String eventName
= "ust_tests_hello:tptest_sighandler";
1122 List
<String
> contexts
= new ArrayList
<String
>();
1123 contexts
.add("prio");
1124 contexts
.add("pid");
1125 fShell
.setScenario(SCEN_CONTEXT_ERROR_HANDLING
);
1127 fService
.getContextList(new NullProgressMonitor());
1128 fail("No exeption generated");
1129 } catch (ExecutionException e
) {
1133 // 1) session name, channel = null, event name, loglevel-only, TRACE_DEBUG
1134 fService
.addContexts(sessionName
, channelName
, eventName
, false, contexts
, new NullProgressMonitor());
1135 fail("No exeption generated");
1136 } catch (ExecutionException e
) {
1142 public void testCalibrate() {
1144 fShell
.setScenario(SCEN_CALIBRATE_HANDLING
);
1145 fService
.calibrate(true, new NullProgressMonitor());
1147 } catch (ExecutionException e
) {
1153 public void testCalibrateFailure() {
1155 fShell
.setScenario(SCEN_CALIBRATE_HANDLING
);
1156 fService
.calibrate(false, new NullProgressMonitor());
1157 fail("No exeption generated");
1158 } catch (ExecutionException e
) {
1164 public void testCreateSession2_1() {
1167 fShell
.setScenario(SCEN_CREATE_SESSION_2_1
);
1169 ISessionInfo info
= fService
.createSession("mysession", "net://172.0.0.1", null, null, false, new NullProgressMonitor());
1170 assertNotNull(info
);
1171 assertEquals("mysession", info
.getName());
1172 assertEquals("net://172.0.0.1", info
.getSessionPath());
1173 assertTrue(info
.isStreamedTrace());
1174 fService
.destroySession("mysession", new NullProgressMonitor());
1176 info
= fService
.createSession("mysession", "file:///tmp", null, null, false, new NullProgressMonitor());
1177 assertNotNull(info
);
1178 assertEquals("mysession", info
.getName());
1179 assertEquals("file:///tmp", info
.getSessionPath());
1180 assertTrue(!info
.isStreamedTrace());
1181 fService
.destroySession("mysession", new NullProgressMonitor());
1183 info
= fService
.createSession("mysession", "file:///tmp", null, null, false, new NullProgressMonitor());
1184 assertNotNull(info
);
1185 assertEquals("mysession", info
.getName());
1186 assertEquals("file:///tmp", info
.getSessionPath());
1187 assertTrue(!info
.isStreamedTrace());
1188 fService
.destroySession("mysession", new NullProgressMonitor());
1190 info
= fService
.createSession("mysession", null, "tcp://172.0.0.1", "tcp://172.0.0.1:5343", false, new NullProgressMonitor());
1191 assertNotNull(info
);
1192 assertEquals("mysession", info
.getName());
1193 assertEquals("", info
.getSessionPath()); // the complete network path is not available at this point
1194 assertTrue(info
.isStreamedTrace());
1195 fService
.destroySession("mysession", new NullProgressMonitor());
1197 info
= fService
.createSession("mysession", "net://172.0.0.1:1234:2345", null, null, false, new NullProgressMonitor());
1198 assertNotNull(info
);
1199 assertEquals("mysession", info
.getName());
1200 assertEquals("net://172.0.0.1:1234:2345", info
.getSessionPath());
1201 assertTrue(info
.isStreamedTrace());
1202 fService
.destroySession("mysession", new NullProgressMonitor());
1206 info
= fService
.createSession("mysession", "net://172.0.0.1", null, null, false, new NullProgressMonitor());
1207 assertNotNull(info
);
1208 assertEquals("mysession", info
.getName());
1209 assertEquals("net://172.0.0.1", info
.getSessionPath());
1210 assertTrue(info
.isStreamedTrace());
1212 fService
.destroySession("mysession", new NullProgressMonitor());
1215 } catch (ExecutionException e
) {
1221 public void testCreateSessionVerbose2_1() {
1223 fShell
.setScenario(SCEN_CREATE_SESSION_VERBOSE_2_1
);
1226 ISessionInfo info
= fService
.createSession("mysession", "net://172.0.0.1", null, null, false, new NullProgressMonitor());
1227 assertNotNull(info
);
1228 assertEquals("mysession", info
.getName());
1229 assertEquals("net://172.0.0.1", info
.getSessionPath());
1230 assertTrue(info
.isStreamedTrace());
1231 fService
.destroySession("mysession", new NullProgressMonitor());
1232 } catch (ExecutionException e
) {
1240 public void testCreateSnapshotSession() {
1242 fShell
.setScenario(SCEN_CREATE_SNAPSHOT_SESSION
);
1244 ISessionInfo sessionInfo
= fService
.createSession("mysession", null, true, new NullProgressMonitor());
1245 assertNotNull(sessionInfo
);
1246 assertEquals("mysession", sessionInfo
.getName());
1247 assertTrue(sessionInfo
.isSnapshotSession());
1248 assertEquals("", sessionInfo
.getSessionPath());
1249 assertTrue(!sessionInfo
.isStreamedTrace());
1251 assertEquals(TraceSessionState
.INACTIVE
, sessionInfo
.getSessionState());
1253 String
[] names
= fService
.getSessionNames(new NullProgressMonitor());
1254 assertEquals(names
[0], "mysession");
1256 ISnapshotInfo snapshotInfo
= fService
.getSnapshotInfo("mysession", new NullProgressMonitor());
1257 assertNotNull(snapshotInfo
);
1258 assertEquals("snapshot-1", snapshotInfo
.getName());
1259 assertEquals("/home/user/lttng-traces/mysession-20130913-141651", snapshotInfo
.getSnapshotPath());
1260 assertEquals(1, snapshotInfo
.getId());
1261 assertTrue(!snapshotInfo
.isStreamedSnapshot());
1263 // we need to set the snapshotInfo to so that the session path is set correctly
1264 sessionInfo
.setSnapshotInfo(snapshotInfo
);
1265 assertEquals("/home/user/lttng-traces/mysession-20130913-141651", sessionInfo
.getSessionPath());
1267 fService
.recordSnapshot("mysession", new NullProgressMonitor());
1269 fService
.destroySession("mysession", new NullProgressMonitor());
1271 } catch (ExecutionException e
) {
1276 public void testCreateStreamedSnapshotSession() {
1278 fShell
.setScenario(SCEN_CREATE_STREAMED_SNAPSHOT_SESSION
);
1280 ISessionInfo sessionInfo
= fService
.createSession("mysession", "net://172.0.0.1", null, null, false, new NullProgressMonitor());
1281 assertNotNull(sessionInfo
);
1282 assertEquals("mysession", sessionInfo
.getName());
1283 assertTrue(sessionInfo
.isSnapshotSession());
1285 assertEquals(TraceSessionState
.INACTIVE
, sessionInfo
.getSessionState());
1286 assertTrue(sessionInfo
.isStreamedTrace());
1288 String
[] names
= fService
.getSessionNames(new NullProgressMonitor());
1289 assertEquals(names
[0], "mysession");
1292 ISnapshotInfo snapshotInfo
= sessionInfo
.getSnapshotInfo();
1293 assertNotNull(sessionInfo
);
1294 assertEquals("snapshot-2", snapshotInfo
.getName());
1295 assertEquals("net4://172.0.0.1:5342/", snapshotInfo
.getSnapshotPath());
1296 assertEquals(2, snapshotInfo
.getId());
1297 assertTrue(snapshotInfo
.isStreamedSnapshot());
1299 // we need to set the snapshotInfo to so that the session path is set correctly
1300 sessionInfo
.setSnapshotInfo(snapshotInfo
);
1301 assertEquals("net4://172.0.0.1:5342/", sessionInfo
.getSessionPath());
1303 fService
.recordSnapshot("mysession", new NullProgressMonitor());
1305 fService
.destroySession("mysession", new NullProgressMonitor());
1307 } catch (ExecutionException e
) {
1314 public void testCreateSnapshotSessionErrors() {
1316 fShell
.setScenario(SCEN_CREATE_SNAPSHOT_SESSION_ERRORS
);
1318 String
[] names
= fService
.getSessionNames(new NullProgressMonitor());
1319 assertEquals(names
[0], "mysession");
1320 } catch (ExecutionException e
) {
1325 fService
.getSnapshotInfo("blabla", new NullProgressMonitor());
1326 fail("getSnapshoInfo() didn't fail");
1327 } catch (ExecutionException e
) {
1332 fService
.recordSnapshot("blabla", new NullProgressMonitor());
1333 fail("getSnapshoInfo() didn't fail");
1334 } catch (ExecutionException e
) {
1339 fService
.recordSnapshot("mysession", new NullProgressMonitor());
1340 fail("getSnapshoInfo() didn't fail");
1341 } catch (ExecutionException e
) {
1346 private static void enableVerbose() {
1348 ControlCommandLogger
.init(ControlPreferences
.getInstance().getLogfilePath(), false);
1349 ControlPreferences
.getInstance().getPreferenceStore().setDefault(ControlPreferences
.TRACE_CONTROL_LOG_COMMANDS_PREF
, true);
1350 ControlPreferences
.getInstance().getPreferenceStore().setDefault(ControlPreferences
.TRACE_CONTROL_VERBOSE_LEVEL_PREF
, ControlPreferences
.TRACE_CONTROL_VERBOSE_LEVEL_V_V_VERBOSE
);
1353 private static void disableVerbose() {
1354 ControlPreferences
.getInstance().getPreferenceStore().setDefault(ControlPreferences
.TRACE_CONTROL_LOG_COMMANDS_PREF
, false);