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
.analysis
.xml
.core
.tests
.stateprovider
;
15 import static org
.junit
.Assert
.assertFalse
;
16 import static org
.junit
.Assert
.assertNotNull
;
17 import static org
.junit
.Assert
.assertTrue
;
18 import static org
.junit
.Assert
.fail
;
20 import java
.util
.List
;
22 import org
.eclipse
.core
.runtime
.NullProgressMonitor
;
23 import org
.eclipse
.core
.runtime
.Path
;
24 import org
.eclipse
.tracecompass
.internal
.tmf
.analysis
.xml
.core
.stateprovider
.TmfXmlStrings
;
25 import org
.eclipse
.tracecompass
.internal
.tmf
.analysis
.xml
.core
.stateprovider
.XmlStateSystemModule
;
26 import org
.eclipse
.tracecompass
.statesystem
.core
.ITmfStateSystem
;
27 import org
.eclipse
.tracecompass
.testtraces
.ctf
.CtfTestTrace
;
28 import org
.eclipse
.tracecompass
.tmf
.analysis
.xml
.core
.tests
.common
.TmfXmlTestFiles
;
29 import org
.eclipse
.tracecompass
.tmf
.core
.exceptions
.TmfAnalysisException
;
30 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfTrace
;
31 import org
.eclipse
.tracecompass
.tmf
.ctf
.core
.tests
.shared
.CtfTmfTestTraceUtils
;
32 import org
.junit
.After
;
33 import org
.junit
.Before
;
34 import org
.junit
.Test
;
35 import org
.w3c
.dom
.Document
;
36 import org
.w3c
.dom
.Element
;
37 import org
.w3c
.dom
.NodeList
;
40 * Test suite for the xml state providers
42 * TODO: instead of using one of the test traces, we should make a custom trace
43 * to make sure it covers the different possibilities of the state provider
45 * @author Geneviève Bastien
47 public class StateProviderTest
{
49 private ITmfTrace fTrace
;
50 private XmlStateSystemModule fModule
;
53 * Setup the test fields
56 public void setupTest() {
57 /* Initialize the trace */
58 ITmfTrace trace
= CtfTmfTestTraceUtils
.getTrace(CtfTestTrace
.KERNEL
);
61 /* Initialize the state provider module */
62 Document doc
= TmfXmlTestFiles
.VALID_FILE
.getXmlDocument();
65 /* get State Providers modules */
66 NodeList stateproviderNodes
= doc
.getElementsByTagName(TmfXmlStrings
.STATE_PROVIDER
);
68 Element node
= (Element
) stateproviderNodes
.item(0);
69 fModule
= new XmlStateSystemModule();
70 String moduleId
= node
.getAttribute(TmfXmlStrings
.ID
);
71 assertNotNull(moduleId
);
72 fModule
.setId(moduleId
);
74 fModule
.setXmlFile(new Path(TmfXmlTestFiles
.VALID_FILE
.getFile().getAbsolutePath()));
77 fModule
.setTrace(trace
);
79 } catch (TmfAnalysisException e
) {
80 fail("Cannot set trace " + e
.getMessage());
85 * Cleanup after the test
88 public void cleanupTest() {
93 * Test the building of the state system
96 public void testStateSystem() {
97 assertTrue(fModule
.waitForCompletion(new NullProgressMonitor()));
98 ITmfStateSystem ss
= fModule
.getStateSystem();
101 List
<Integer
> quarks
= ss
.getQuarks("*");
102 assertFalse(quarks
.isEmpty());