1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 Ericsson
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * Matthew Khouzam - Initial API and implementation
10 *******************************************************************************/
12 package org
.eclipse
.tracecompass
.ctf
.core
.tests
.trace
;
14 import static org
.junit
.Assert
.assertEquals
;
15 import static org
.junit
.Assert
.assertFalse
;
16 import static org
.junit
.Assert
.assertNotNull
;
17 import static org
.junit
.Assert
.assertTrue
;
19 import org
.eclipse
.tracecompass
.ctf
.core
.CTFException
;
20 import org
.eclipse
.tracecompass
.ctf
.core
.trace
.ICTFPacketDescriptor
;
21 import org
.eclipse
.tracecompass
.internal
.ctf
.core
.trace
.StreamInputPacketIndex
;
22 import org
.eclipse
.tracecompass
.internal
.ctf
.core
.trace
.StreamInputPacketIndexEntry
;
23 import org
.junit
.Before
;
24 import org
.junit
.Test
;
27 * The class <code>StreamInputPacketIndexTest</code> contains tests for the
28 * class <code>{@link StreamInputPacketIndex}</code>.
30 * @author Matthew Khouzam
32 @SuppressWarnings("javadoc")
33 public class CTFStreamInputPacketIndexTest
{
35 private StreamInputPacketIndex fFixture
;
38 * Perform pre-test initialization.
40 * @throws CTFException
44 fFixture
= new StreamInputPacketIndex();
48 public void testStreamInputPacketIndex() {
49 assertNotNull(fFixture
);
50 assertTrue(fFixture
.append(new StreamInputPacketIndexEntry(0, 1L)));
51 assertTrue(fFixture
.append(new PacketStub(1, 0, 0)));
55 * Run the StreamInputPacketIndex() constructor test.
58 public void testStreamInputPacketIndexGet() {
59 assertNotNull(fFixture
);
60 ICTFPacketDescriptor first
= new StreamInputPacketIndexEntry(0, 1L);
61 ICTFPacketDescriptor second
= new PacketStub(1, 0, 0);
62 assertTrue(fFixture
.append(first
));
63 assertTrue(fFixture
.append(second
));
65 assertEquals(first
, fFixture
.getElement(0));
66 assertEquals(second
, fFixture
.getElement(1));
70 * Test on a contiguous set
73 public void testStreamInputPacketIndexContiguous() {
74 assertTrue(fFixture
.append(new PacketStub(0, 0, 1)));
75 assertTrue(fFixture
.append(new PacketStub(1, 2, 3)));
76 assertTrue(fFixture
.append(new PacketStub(2, 4, 5)));
77 assertTrue(fFixture
.append(new PacketStub(3, 6, 6)));
79 assertEquals(2, fFixture
.search(5));
83 public void testStreamInputPacketIndexDisjoint() {
84 assertTrue(fFixture
.append(new PacketStub(0, 0, 1)));
85 assertTrue(fFixture
.append(new PacketStub(1, 2, 3)));
86 assertTrue(fFixture
.append(new PacketStub(2, 6, 6)));
88 assertEquals(1, fFixture
.search(5));
89 assertEquals(1, fFixture
.search(3));
93 public void testStreamInputPacketIndexOverlapping() {
94 assertTrue(fFixture
.append(new PacketStub(0, 0, 1)));
95 assertTrue(fFixture
.append(new PacketStub(1, 2, 3)));
96 assertTrue(fFixture
.append(new PacketStub(2, 6, 6)));
97 assertTrue(fFixture
.append(new PacketStub(3, 6, 6)));
98 assertTrue(fFixture
.append(new PacketStub(4, 6, 6)));
99 assertTrue(fFixture
.append(new PacketStub(5, 6, 6)));
100 assertTrue(fFixture
.append(new PacketStub(6, 6, 6)));
101 assertTrue(fFixture
.append(new PacketStub(7, 6, 6)));
102 assertTrue(fFixture
.append(new PacketStub(8, 6, 6)));
103 assertTrue(fFixture
.append(new PacketStub(9, 6, 6)));
105 assertEquals(1, fFixture
.search(5));
106 assertEquals(2, fFixture
.search(6));
110 public void testStreamInputPacketIndexOverlappingBothSides() {
111 assertTrue(fFixture
.append(new PacketStub(0, 0, 3)));
112 assertTrue(fFixture
.append(new PacketStub(1, 0, 3)));
113 assertTrue(fFixture
.append(new PacketStub(2, 0, 3)));
114 assertTrue(fFixture
.append(new PacketStub(3, 7, 9)));
115 assertTrue(fFixture
.append(new PacketStub(4, 7, 9)));
116 assertTrue(fFixture
.append(new PacketStub(5, 7, 9)));
117 assertEquals(0, fFixture
.search(3));
118 assertEquals(2, fFixture
.search(6));
119 assertEquals(3, fFixture
.search(8));
123 public void testStreamInputPacketIndexLargeOverlapping() {
124 assertTrue(fFixture
.append(new PacketStub(0, Long
.MIN_VALUE
, Long
.MAX_VALUE
)));
125 assertTrue(fFixture
.append(new PacketStub(1, Long
.MIN_VALUE
, Long
.MAX_VALUE
)));
126 assertTrue(fFixture
.append(new PacketStub(2, Long
.MIN_VALUE
, Long
.MAX_VALUE
)));
127 assertTrue(fFixture
.append(new PacketStub(3, Long
.MIN_VALUE
, Long
.MAX_VALUE
)));
128 assertTrue(fFixture
.append(new PacketStub(4, Long
.MIN_VALUE
, Long
.MAX_VALUE
)));
130 assertEquals(0, fFixture
.search(5));
131 assertEquals(0, fFixture
.search(6));
135 public void testStreamInputPacketIndexInvalidAppend() {
136 fFixture
= new StreamInputPacketIndex();
137 assertTrue(fFixture
.append(new PacketStub(0, 0, 1)));
138 assertFalse("Same offset", fFixture
.append(new PacketStub(0, 1, 2)));
139 assertFalse("Before", fFixture
.append(new PacketStub(1, -1, 0)));
140 assertFalse("Empty", fFixture
.append(new PacketStub(2, 3, 4) {
142 public long getContentSizeBits() {
147 public long getPayloadStartBits() {