Commit | Line | Data |
---|---|---|
c068a752 | 1 | /******************************************************************************* |
60ae41e1 | 2 | * Copyright (c) 2013, 2014 École Polytechnique de Montréal |
c068a752 GB |
3 | * |
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 | |
8 | * | |
9 | * Contributors: | |
10 | * Geneviève Bastien - Initial API and implementation | |
11 | *******************************************************************************/ | |
12 | ||
2bdf0193 | 13 | package org.eclipse.tracecompass.tmf.core.tests.analysis; |
c068a752 | 14 | |
9897c39c | 15 | import static org.junit.Assert.assertEquals; |
c068a752 | 16 | import static org.junit.Assert.assertFalse; |
ba27dd38 | 17 | import static org.junit.Assert.assertNotNull; |
c068a752 | 18 | import static org.junit.Assert.assertTrue; |
c068a752 | 19 | |
9897c39c | 20 | import java.util.Collection; |
c068a752 GB |
21 | import java.util.Map; |
22 | ||
ba27dd38 | 23 | import org.eclipse.jdt.annotation.NonNull; |
2bdf0193 AM |
24 | import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper; |
25 | import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleSource; | |
26 | import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisManager; | |
27 | import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace; | |
28 | import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; | |
29 | import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisModuleSourceStub; | |
30 | import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisModuleTestHelper; | |
c068a752 | 31 | import org.junit.After; |
4d2857be | 32 | import org.junit.Before; |
c068a752 GB |
33 | import org.junit.Test; |
34 | ||
9897c39c GB |
35 | import com.google.common.collect.Multimap; |
36 | ||
c068a752 GB |
37 | /** |
38 | * Test suite for the TmfAnalysisModule class | |
39 | */ | |
40 | public class AnalysisManagerTest { | |
41 | ||
42 | /** Id of analysis module with parameter */ | |
ba27dd38 | 43 | public static final @NonNull String MODULE_PARAM = "org.eclipse.linuxtools.tmf.core.tests.analysis.test"; |
c068a752 | 44 | /** ID of analysis module with parameter and default value */ |
ba27dd38 | 45 | public static final @NonNull String MODULE_PARAM_DEFAULT = "org.eclipse.linuxtools.tmf.core.tests.analysis.test2"; |
4d2857be | 46 | /** ID of analysis module for trace 2 classes only */ |
ba27dd38 | 47 | public static final @NonNull String MODULE_SECOND = "org.eclipse.linuxtools.tmf.core.tests.analysis.testother"; |
8c736b3c | 48 | /** Id of analysis module with requirements */ |
ba27dd38 | 49 | public static final @NonNull String MODULE_REQ = "org.eclipse.linuxtools.tmf.core.tests.analysis.reqtest"; |
4d2857be GB |
50 | |
51 | private ITmfTrace fTrace; | |
52 | ||
53 | /** | |
54 | * Set up some trace code | |
55 | */ | |
56 | @Before | |
57 | public void setupTraces() { | |
58 | fTrace = TmfTestTrace.A_TEST_10K2.getTraceAsStub2(); | |
59 | } | |
c068a752 GB |
60 | |
61 | /** | |
62 | * Some tests use traces, let's clean them here | |
63 | */ | |
64 | @After | |
65 | public void cleanupTraces() { | |
66 | TmfTestTrace.A_TEST_10K.dispose(); | |
4d2857be | 67 | fTrace.dispose(); |
c068a752 GB |
68 | } |
69 | ||
70 | /** | |
71 | * Test suite for the {@link TmfAnalysisManager#getAnalysisModules()} method | |
72 | */ | |
73 | @Test | |
74 | public void testGetAnalysisModules() { | |
9897c39c | 75 | Multimap<String, IAnalysisModuleHelper> modules = TmfAnalysisManager.getAnalysisModules(); |
c068a752 GB |
76 | /* At least 3 modules should be found */ |
77 | assertTrue(modules.size() >= 3); | |
78 | ||
9897c39c GB |
79 | Collection<IAnalysisModuleHelper> moduleList = modules.get(MODULE_PARAM_DEFAULT); |
80 | assertEquals(1, moduleList.size()); | |
81 | IAnalysisModuleHelper module = moduleList.iterator().next(); | |
c068a752 GB |
82 | assertTrue(module.isAutomatic()); |
83 | ||
9897c39c GB |
84 | moduleList = modules.get(MODULE_PARAM); |
85 | assertEquals(1, moduleList.size()); | |
86 | module = moduleList.iterator().next(); | |
c068a752 GB |
87 | assertFalse(module.isAutomatic()); |
88 | } | |
89 | ||
90 | /** | |
91 | * Test suite for {@link TmfAnalysisManager#getAnalysisModules(Class)} Use | |
4d2857be | 92 | * the test TMF trace and test trace2 stubs as sample traces |
c068a752 GB |
93 | */ |
94 | @Test | |
95 | public void testListForTraces() { | |
96 | /* Generic TmfTrace */ | |
97 | ITmfTrace trace = TmfTestTrace.A_TEST_10K.getTrace(); | |
367e2932 | 98 | Class<@NonNull ? extends ITmfTrace> traceClass = trace.getClass(); |
ba27dd38 GB |
99 | assertNotNull(traceClass); |
100 | Map<String, IAnalysisModuleHelper> map = TmfAnalysisManager.getAnalysisModules(traceClass); | |
c068a752 GB |
101 | |
102 | assertTrue(map.containsKey(MODULE_PARAM)); | |
103 | assertTrue(map.containsKey(MODULE_PARAM_DEFAULT)); | |
4d2857be | 104 | assertFalse(map.containsKey(MODULE_SECOND)); |
c068a752 | 105 | |
4d2857be | 106 | /* TmfTraceStub2 class */ |
ba27dd38 GB |
107 | traceClass = fTrace.getClass(); |
108 | assertNotNull(traceClass); | |
109 | map = TmfAnalysisManager.getAnalysisModules(traceClass); | |
c068a752 | 110 | |
4d2857be GB |
111 | assertTrue(map.containsKey(MODULE_PARAM)); |
112 | assertTrue(map.containsKey(MODULE_PARAM_DEFAULT)); | |
113 | assertTrue(map.containsKey(MODULE_SECOND)); | |
c068a752 GB |
114 | } |
115 | ||
b3b03da0 GB |
116 | /** |
117 | * Test suite to test refresh of analysis module when adding a {@link IAnalysisModuleSource} | |
118 | */ | |
119 | @Test | |
120 | public void testSources() { | |
121 | /* Make sure that modules in the new source are not in the list already */ | |
122 | /* Generic TmfTrace */ | |
123 | ITmfTrace trace = TmfTestTrace.A_TEST_10K.getTrace(); | |
367e2932 | 124 | Class<@NonNull ? extends ITmfTrace> traceClass = trace.getClass(); |
ba27dd38 GB |
125 | assertNotNull(traceClass); |
126 | Map<String, IAnalysisModuleHelper> map = TmfAnalysisManager.getAnalysisModules(traceClass); | |
b3b03da0 GB |
127 | |
128 | assertFalse(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST.name())); | |
129 | ||
4d2857be | 130 | /* TmfTraceStub2 class */ |
367e2932 | 131 | Class<@NonNull ? extends ITmfTrace> ftraceClass = fTrace.getClass(); |
ba27dd38 GB |
132 | assertNotNull(ftraceClass); |
133 | map = TmfAnalysisManager.getAnalysisModules(ftraceClass); | |
b3b03da0 | 134 | |
4d2857be | 135 | assertFalse(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST2.name())); |
b3b03da0 GB |
136 | |
137 | /* Add new source */ | |
138 | TmfAnalysisManager.registerModuleSource(new AnalysisModuleSourceStub()); | |
139 | ||
140 | /* Now make sure the modules are present */ | |
ba27dd38 | 141 | map = TmfAnalysisManager.getAnalysisModules(traceClass); |
b3b03da0 GB |
142 | assertTrue(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST.name())); |
143 | ||
ba27dd38 | 144 | map = TmfAnalysisManager.getAnalysisModules(ftraceClass); |
4d2857be | 145 | assertTrue(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST2.name())); |
b3b03da0 GB |
146 | } |
147 | ||
c068a752 | 148 | } |