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
.assertTrue
;
20 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisModuleHelper
;
21 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisModuleSource
;
22 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.TmfAnalysisManager
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.tests
.shared
.TmfTestTrace
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfTrace
;
25 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.analysis
.AnalysisModuleSourceStub
;
26 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.analysis
.AnalysisModuleTestHelper
;
27 import org
.junit
.After
;
28 import org
.junit
.Before
;
29 import org
.junit
.Test
;
32 * Test suite for the TmfAnalysisModule class
34 public class AnalysisManagerTest
{
36 /** Id of analysis module with parameter */
37 public static final String MODULE_PARAM
= "org.eclipse.linuxtools.tmf.core.tests.analysis.test";
38 /** ID of analysis module with parameter and default value */
39 public static final String MODULE_PARAM_DEFAULT
= "org.eclipse.linuxtools.tmf.core.tests.analysis.test2";
40 /** ID of analysis module for trace 2 classes only */
41 public static final String MODULE_SECOND
= "org.eclipse.linuxtools.tmf.core.tests.analysis.testother";
42 /** Id of analysis module with requirements */
43 public static final String MODULE_REQ
= "org.eclipse.linuxtools.tmf.core.tests.analysis.reqtest";
45 private ITmfTrace fTrace
;
48 * Set up some trace code
51 public void setupTraces() {
52 fTrace
= TmfTestTrace
.A_TEST_10K2
.getTraceAsStub2();
56 * Some tests use traces, let's clean them here
59 public void cleanupTraces() {
60 TmfTestTrace
.A_TEST_10K
.dispose();
65 * Test suite for the {@link TmfAnalysisManager#getAnalysisModules()} method
68 public void testGetAnalysisModules() {
69 Map
<String
, IAnalysisModuleHelper
> modules
= TmfAnalysisManager
.getAnalysisModules();
70 /* At least 3 modules should be found */
71 assertTrue(modules
.size() >= 3);
73 IAnalysisModuleHelper module
= modules
.get(MODULE_PARAM_DEFAULT
);
74 assertTrue(module
.isAutomatic());
76 module
= modules
.get(MODULE_PARAM
);
77 assertFalse(module
.isAutomatic());
81 * Test suite for {@link TmfAnalysisManager#getAnalysisModules(Class)} Use
82 * the test TMF trace and test trace2 stubs as sample traces
85 public void testListForTraces() {
86 /* Generic TmfTrace */
87 ITmfTrace trace
= TmfTestTrace
.A_TEST_10K
.getTrace();
88 Map
<String
, IAnalysisModuleHelper
> map
= TmfAnalysisManager
.getAnalysisModules(trace
.getClass());
90 assertTrue(map
.containsKey(MODULE_PARAM
));
91 assertTrue(map
.containsKey(MODULE_PARAM_DEFAULT
));
92 assertFalse(map
.containsKey(MODULE_SECOND
));
94 /* TmfTraceStub2 class */
95 map
= TmfAnalysisManager
.getAnalysisModules(fTrace
.getClass());
97 assertTrue(map
.containsKey(MODULE_PARAM
));
98 assertTrue(map
.containsKey(MODULE_PARAM_DEFAULT
));
99 assertTrue(map
.containsKey(MODULE_SECOND
));
103 * Test suite to test refresh of analysis module when adding a {@link IAnalysisModuleSource}
106 public void testSources() {
107 /* Make sure that modules in the new source are not in the list already */
108 /* Generic TmfTrace */
109 ITmfTrace trace
= TmfTestTrace
.A_TEST_10K
.getTrace();
110 Map
<String
, IAnalysisModuleHelper
> map
= TmfAnalysisManager
.getAnalysisModules(trace
.getClass());
112 assertFalse(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST
.name()));
114 /* TmfTraceStub2 class */
115 map
= TmfAnalysisManager
.getAnalysisModules(fTrace
.getClass());
117 assertFalse(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST2
.name()));
120 TmfAnalysisManager
.registerModuleSource(new AnalysisModuleSourceStub());
122 /* Now make sure the modules are present */
123 map
= TmfAnalysisManager
.getAnalysisModules(trace
.getClass());
124 assertTrue(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST
.name()));
126 map
= TmfAnalysisManager
.getAnalysisModules(fTrace
.getClass());
127 assertTrue(map
.containsKey(AnalysisModuleTestHelper
.moduleStubEnum
.TEST2
.name()));