1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 École Polytechnique de Montréal
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 * Geneviève Bastien - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.analysis
;
15 import static org
.junit
.Assert
.assertFalse
;
16 import static org
.junit
.Assert
.assertNotNull
;
17 import static org
.junit
.Assert
.assertTrue
;
21 import org
.eclipse
.jdt
.annotation
.NonNull
;
22 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisModuleHelper
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisModuleSource
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.TmfAnalysisManager
;
25 import org
.eclipse
.tracecompass
.tmf
.core
.tests
.shared
.TmfTestTrace
;
26 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfTrace
;
27 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.analysis
.AnalysisModuleSourceStub
;
28 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.analysis
.AnalysisModuleTestHelper
;
29 import org
.junit
.After
;
30 import org
.junit
.Before
;
31 import org
.junit
.Test
;
34 * Test suite for the TmfAnalysisModule class
36 public class AnalysisManagerTest
{
38 /** Id of analysis module with parameter */
39 public static final @NonNull String MODULE_PARAM
= "org.eclipse.linuxtools.tmf.core.tests.analysis.test";
40 /** ID of analysis module with parameter and default value */
41 public static final @NonNull String MODULE_PARAM_DEFAULT
= "org.eclipse.linuxtools.tmf.core.tests.analysis.test2";
42 /** ID of analysis module for trace 2 classes only */
43 public static final @NonNull String MODULE_SECOND
= "org.eclipse.linuxtools.tmf.core.tests.analysis.testother";
44 /** Id of analysis module with requirements */
45 public static final @NonNull String MODULE_REQ
= "org.eclipse.linuxtools.tmf.core.tests.analysis.reqtest";
47 private ITmfTrace fTrace
;
50 * Set up some trace code
53 public void setupTraces() {
54 fTrace
= TmfTestTrace
.A_TEST_10K2
.getTraceAsStub2();
58 * Some tests use traces, let's clean them here
61 public void cleanupTraces() {
62 TmfTestTrace
.A_TEST_10K
.dispose();
67 * Test suite for the {@link TmfAnalysisManager#getAnalysisModules()} method
70 public void testGetAnalysisModules() {
71 Map
<String
, IAnalysisModuleHelper
> modules
= TmfAnalysisManager
.getAnalysisModules();
72 /* At least 3 modules should be found */
73 assertTrue(modules
.size() >= 3);
75 IAnalysisModuleHelper module
= modules
.get(MODULE_PARAM_DEFAULT
);
76 assertTrue(module
.isAutomatic());
78 module
= modules
.get(MODULE_PARAM
);
79 assertFalse(module
.isAutomatic());
83 * Test suite for {@link TmfAnalysisManager#getAnalysisModules(Class)} Use
84 * the test TMF trace and test trace2 stubs as sample traces
87 public void testListForTraces() {
88 /* Generic TmfTrace */
89 ITmfTrace trace
= TmfTestTrace
.A_TEST_10K
.getTrace();
90 Class
<?
extends ITmfTrace
> traceClass
= trace
.getClass();
91 assertNotNull(traceClass
);
92 Map
<String
, IAnalysisModuleHelper
> map
= TmfAnalysisManager
.getAnalysisModules(traceClass
);
94 assertTrue(map
.containsKey(MODULE_PARAM
));
95 assertTrue(map
.containsKey(MODULE_PARAM_DEFAULT
));
96 assertFalse(map
.containsKey(MODULE_SECOND
));
98 /* TmfTraceStub2 class */
99 traceClass
= fTrace
.getClass();
100 assertNotNull(traceClass
);
101 map
= TmfAnalysisManager
.getAnalysisModules(traceClass
);
103 assertTrue(map
.containsKey(MODULE_PARAM
));
104 assertTrue(map
.containsKey(MODULE_PARAM_DEFAULT
));
105 assertTrue(map
.containsKey(MODULE_SECOND
));
109 * Test suite to test refresh of analysis module when adding a {@link IAnalysisModuleSource}
112 public void testSources() {
113 /* Make sure that modules in the new source are not in the list already */
114 /* Generic TmfTrace */
115 ITmfTrace trace
= TmfTestTrace
.A_TEST_10K
.getTrace();
116 Class
<?
extends ITmfTrace
> traceClass
= trace
.getClass();
117 assertNotNull(traceClass
);
118 Map
<String
, IAnalysisModuleHelper
> map
= TmfAnalysisManager
.getAnalysisModules(traceClass
);
120 assertFalse(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST
.name()));
122 /* TmfTraceStub2 class */
123 Class
<?
extends ITmfTrace
> ftraceClass
= fTrace
.getClass();
124 assertNotNull(ftraceClass
);
125 map
= TmfAnalysisManager
.getAnalysisModules(ftraceClass
);
127 assertFalse(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST2
.name()));
130 TmfAnalysisManager
.registerModuleSource(new AnalysisModuleSourceStub());
132 /* Now make sure the modules are present */
133 map
= TmfAnalysisManager
.getAnalysisModules(traceClass
);
134 assertTrue(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST
.name()));
136 map
= TmfAnalysisManager
.getAnalysisModules(ftraceClass
);
137 assertTrue(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST2
.name()));