Change CtfTmfTrace to use TmfTrace. Bug 380951
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core.tests / src / org / eclipse / linuxtools / ctf / core / tests / trace / CTFTraceReaderTest.java
CommitLineData
866e5b51
FC
1package org.eclipse.linuxtools.ctf.core.tests.trace;
2
ce2388e0 3import static org.junit.Assert.assertEquals;
866e5b51
FC
4import static org.junit.Assert.assertFalse;
5import static org.junit.Assert.assertNotNull;
6import static org.junit.Assert.assertTrue;
7
8import org.eclipse.linuxtools.ctf.core.event.EventDefinition;
9import org.eclipse.linuxtools.ctf.core.tests.TestParams;
10import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
11import org.eclipse.linuxtools.ctf.core.trace.CTFTrace;
12import org.eclipse.linuxtools.ctf.core.trace.CTFTraceReader;
13import org.junit.After;
14import org.junit.Before;
15import org.junit.Test;
16
17/**
18 * The class <code>CTFTraceReaderTest</code> contains tests for the class
19 * <code>{@link CTFTraceReader}</code>.
20 *
21 * @author ematkho
22 * @version $Revision: 1.0 $
23 */
24public class CTFTraceReaderTest {
25
26 CTFTraceReader fixture;
27
28 /**
29 * Launch the test.
30 *
31 * @param args
32 * the command line arguments
33 */
34 public static void main(String[] args) {
35 new org.junit.runner.JUnitCore().run(CTFTraceReaderTest.class);
36 }
37
38 /**
39 * Perform pre-test initialization.
ce2388e0 40 * @throws CTFReaderException
866e5b51
FC
41 */
42 @Before
13be1a8f 43 public void setUp() throws CTFReaderException {
866e5b51
FC
44 fixture = new CTFTraceReader(TestParams.createTrace());
45 }
46
47 /**
48 * Perform post-test clean-up.
49 */
50 @After
51 public void tearDown() {
52 // Add additional tear down code here
53 }
54
55 /**
56 * Run the CTFTraceReader(CTFTrace) constructor test. Open a known good
57 * trace.
ce2388e0 58 * @throws CTFReaderException
866e5b51
FC
59 */
60 @Test
13be1a8f 61 public void testOpen_existing() throws CTFReaderException {
866e5b51
FC
62 CTFTrace trace = TestParams.createTrace();
63
64 CTFTraceReader result = new CTFTraceReader(trace);
65 assertNotNull(result);
66 }
67
68 /**
69 * Run the CTFTraceReader(CTFTrace) constructor test. Open a non-existing
70 * trace, expect the exception.
71 *
72 * @throws CTFReaderException
73 */
74 @Test(expected = org.eclipse.linuxtools.ctf.core.trace.CTFReaderException.class)
75 public void testOpen_nonexisting() throws CTFReaderException {
76 CTFTrace trace = new CTFTrace("badfile.bad"); //$NON-NLS-1$
77
78 CTFTraceReader result = new CTFTraceReader(trace);
79 assertNotNull(result);
80 }
81
82 /**
83 * Run the CTFTraceReader(CTFTrace) constructor test. Try to pen an invalid
84 * path, expect exception.
85 *
86 * @throws CTFReaderException
87 */
88 @Test(expected = org.eclipse.linuxtools.ctf.core.trace.CTFReaderException.class)
89 public void testOpen_invalid() throws CTFReaderException {
90 CTFTrace trace = new CTFTrace(""); //$NON-NLS-1$
91
92 CTFTraceReader result = new CTFTraceReader(trace);
93 assertNotNull(result);
94 }
95
96 /**
97 * Run the boolean advance() method test. Test advancing normally.
98 */
99 @Test
100 public void testAdvance_normal() {
101 boolean result = fixture.advance();
102 assertTrue(result);
103 }
104
105 /**
106 * Run the boolean advance() method test. Test advancing when we're at the
107 * end, so we expect that there is no more events.
108 *
109 * @throws CTFReaderException
110 */
111 @Test
112 public void testAdvance_end() throws CTFReaderException {
113 fixture.goToLastEvent();
114 while (fixture.hasMoreEvents()) {
115 fixture.advance();
116 }
117 boolean result = fixture.advance();
118 assertFalse(result);
119 }
120
121 /**
122 * Run the CTFTraceReader copy constructor test.
123 */
124 @Test
125 public void testCopyFrom() {
126 CTFTraceReader result = fixture.copyFrom();
127 assertNotNull(result);
128 }
129
130 /**
131 * Test the hashCode method.
132 */
133 @Test
134 public void testHash() {
135 int result = fixture.hashCode();
136 assertTrue(0 != result);
137 }
138
139 /**
140 * Test the equals method. Uses the class-wide 'fixture' and another
141 * method-local 'fixture2', which both point to the same trace.
142 *
143 * Both trace reader are different objects, so they shouldn't "equals" each
144 * other.
ce2388e0 145 * @throws CTFReaderException
866e5b51
FC
146 */
147 @Test
13be1a8f 148 public void testEquals() throws CTFReaderException {
866e5b51 149 CTFTraceReader fixture2 = new CTFTraceReader(TestParams.createTrace());
bd4c2779 150 assertTrue(fixture.equals(fixture2));
866e5b51
FC
151 }
152
153 /**
154 * Run the getCurrentEventDef() method test. Get the first event's
155 * definition.
156 */
157 @Test
158 public void testGetCurrentEventDef_first() {
159 EventDefinition result = fixture.getCurrentEventDef();
160 assertNotNull(result);
161 }
162
163 /**
164 * Run the getCurrentEventDef() method test. Get the last event's
165 * definition.
166 *
167 * @throws CTFReaderException
168 */
169 @Test
170 public void testGetCurrentEventDef_last() throws CTFReaderException {
171 fixture.goToLastEvent();
172 EventDefinition result = fixture.getCurrentEventDef();
173 assertNotNull(result);
174 }
175
176 /**
177 * Run the long getEndTime() method test.
178 */
179 @Test
180 public void testGetEndTime() {
181 long result = fixture.getEndTime();
182 assertTrue(0L < result);
183 }
184
185 /**
186 * Run the long getStartTime() method test.
187 */
188 @Test
189 public void testGetStartTime() {
190 long result = fixture.getStartTime();
191 assertTrue(0L < result);
192 }
193
194 /**
195 * Run the void goToLastEvent() method test.
196 *
197 * @throws CTFReaderException
198 */
199 @Test
200 public void testGoToLastEvent() throws CTFReaderException {
201 fixture.goToLastEvent();
ce2388e0 202 long ts1 = getTimestamp();
866e5b51 203 long ts2 = fixture.getEndTime();
ce2388e0
FC
204 // the end time can be later than the last event.
205 assertTrue(ts1 <= ts2);
866e5b51
FC
206 }
207
208 /**
209 * Run the boolean hasMoreEvents() method test.
210 *
211 * @throws CTFReaderException
212 */
213 @Test
214 public void testHasMoreEvents() {
215 boolean result = fixture.hasMoreEvents();
216 assertTrue(result);
217 }
218
219 /**
220 * Run the void printStats() method test with no 'width' parameter.
221 */
222 @Test
223 public void testPrintStats_noparam() {
224 fixture.advance();
225 fixture.printStats();
226 }
227
228 /**
229 * Run the void printStats(int) method test with width = 0.
230 */
231 @Test
232 public void testPrintStats_width0() {
233 fixture.advance();
234 fixture.printStats(0);
235 }
236
237 /**
238 * Run the void printStats(int) method test with width = 1.
239 */
240 @Test
241 public void testPrintStats_width1() {
242 fixture.advance();
243 fixture.printStats(1);
244 }
245
246 /**
247 * Run the void printStats(int) method test with width = 2.
248 */
249 @Test
250 public void testPrintStats_width2() {
251 fixture.advance();
252 fixture.printStats(2);
253 }
254
255 /**
256 * Run the void printStats(int) method test with width = 10.
257 */
258 @Test
259 public void testPrintStats_width10() {
260 fixture.advance();
261 fixture.printStats(10);
262 }
263
264 /**
265 * Run the void printStats(int) method test with width = 100.
266 */
267 @Test
268 public void testPrintStats_100() {
269 for (int i = 0; i < 1000; i++) {
270 fixture.advance();
271 }
272 fixture.printStats(100);
273 }
274
275 /**
276 * Run the boolean seek(long) method test.
277 */
278 @Test
279 public void testSeek() {
280 long timestamp = 1L;
281 boolean result = fixture.seek(timestamp);
282 assertTrue(result);
283 }
ce2388e0
FC
284
285
286 /**
287 * Run the boolean seek(long) method test.
288 * @throws CTFReaderException
289 */
290 @Test
291 public void testSeekIndex() throws CTFReaderException {
292 long rank = 30000L;
293 long first, second = 0, third , fourth;
294 /*
295 * we need to read the trace before seeking
296 */
297 first = getTimestamp();
298 for( int i = 0 ; i < 60000; i++ )
299 {
300 if( i == rank) {
301 second = getTimestamp();
302 }
303 fixture.advance();
304 }
305 boolean result= fixture.seekIndex(0);
024373d7 306
ce2388e0
FC
307 third = getTimestamp();
308 boolean result2 = fixture.seekIndex(rank);
309 fourth = getTimestamp();
024373d7
MK
310 /*
311 * in blocks to see where code coverage fails
312 */
313 {
314 assertTrue(result);
315 }
316 {
317 assertTrue(result2);
318 }
319 {
320 assertEquals( first , third);
321 }
322 {
323 assertEquals( second , fourth);
324 }
ce2388e0
FC
325 }
326
327 /**
328 * @return
329 */
330 private long getTimestamp() {
aa572e22 331 return fixture.getCurrentEventDef().getTimestamp();
ce2388e0 332 }
866e5b51 333}
This page took 0.038381 seconds and 5 git commands to generate.