blob: 0fbd476441f714fcc1c3a671e8db5f19478c8ece [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 École Polytechnique de Montréal
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.tracecompass.analysis.profiling.core.tests.flamechart;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.util.Iterator;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.analysis.profiling.core.tests.CallStackTestBase;
import org.eclipse.tracecompass.analysis.profiling.core.tests.data.TestDataSmallCallStack;
import org.eclipse.tracecompass.analysis.profiling.core.tests.stubs.CallStackAnalysisStub;
import org.eclipse.tracecompass.segmentstore.core.ISegment;
import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
import org.junit.Test;
import com.google.common.collect.Iterables;
import com.google.common.collect.Iterators;
/**
* Test the callstack analysis as a segment store
*
* @author Geneviève Bastien
*/
public class CallStackSegmentStoreTest extends CallStackTestBase {
/**
* Constructor
*/
public CallStackSegmentStoreTest() {
super(new TestDataSmallCallStack());
}
/**
* Test the callstack data using the callstack object
*/
@Test
public void testSeriesSegmentStoreIterator() {
CallStackAnalysisStub module = getModule();
assertNotNull(module);
ISegmentStore<@NonNull ISegment> segmentStore = module.getSegmentStore();
assertNotNull(segmentStore);
Iterator<@NonNull ISegment> iterator = segmentStore.iterator();
assertEquals("Segment store iterator count", 21, Iterators.size(iterator));
assertEquals("Segment store size", 21, segmentStore.size());
assertFalse(segmentStore.isEmpty());
}
/**
* Test the segment store's intersecting query methods
*/
@Test
public void testIntersectingSegmentStore() {
CallStackAnalysisStub module = getModule();
assertNotNull(module);
ISegmentStore<@NonNull ISegment> segmentStore = module.getSegmentStore();
assertNotNull(segmentStore);
// Test with some boundaries: all elements that start or end at 10 should be
// included
Iterable<@NonNull ISegment> elements = segmentStore.getIntersectingElements(10L);
assertEquals("Intersecting 10", 9, Iterables.size(elements));
elements = segmentStore.getIntersectingElements(10L, 15L);
assertEquals("Between 10 and 15", 12, Iterables.size(elements));
}
}