pcap: Move plugins to their own sub-directory
[deliverable/tracecompass.git] / pcap / org.eclipse.tracecompass.tmf.pcap.core.tests / src / org / eclipse / tracecompass / tmf / pcap / core / tests / analysis / StreamListAnalysisTest.java
1 /*******************************************************************************
2 * Copyright (c) 2014 Ericsson
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 * Vincent Perot - Initial API and implementation
11 ******************************************************************************/
12
13 package org.eclipse.tracecompass.tmf.pcap.core.tests.analysis;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertFalse;
17 import static org.junit.Assert.assertNotNull;
18 import static org.junit.Assert.assertTrue;
19 import static org.junit.Assert.fail;
20 import static org.junit.Assume.assumeTrue;
21
22 import org.eclipse.tracecompass.internal.tmf.pcap.core.analysis.StreamListAnalysis;
23 import org.eclipse.tracecompass.internal.tmf.pcap.core.event.TmfPacketStreamBuilder;
24 import org.eclipse.tracecompass.internal.tmf.pcap.core.protocol.TmfPcapProtocol;
25 import org.eclipse.tracecompass.internal.tmf.pcap.core.trace.PcapTrace;
26 import org.eclipse.tracecompass.pcap.core.tests.shared.PcapTestTrace;
27 import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
28 import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
29 import org.junit.Test;
30
31 /**
32 * JUnit that test the StreamListAnalysis class.
33 *
34 * @author Vincent Perot
35 */
36 public class StreamListAnalysisTest {
37
38 /**
39 * Method that tests the constructor.
40 */
41 @Test
42 public void constructorTest() {
43 StreamListAnalysis analysis = new StreamListAnalysis();
44 analysis.setId(StreamListAnalysis.ID);
45 for (TmfPcapProtocol protocol : TmfPcapProtocol.values()) {
46 if (protocol.supportsStream()) {
47 assertNotNull(analysis.getBuilder(protocol));
48 }
49 }
50 assertFalse(analysis.isFinished());
51
52 analysis.dispose();
53 }
54
55 /**
56 * Method that tests canExecute().
57 *
58 * @throws TmfTraceException
59 * Thrown when the trace cannot be initialized. Fails the test.
60 */
61 @Test
62 public void canExecuteTest() throws TmfTraceException {
63 PcapTestTrace trace = PcapTestTrace.MOSTLY_TCP;
64 assumeTrue(trace.exists());
65 String path = trace.getPath().toString();
66 try (PcapTrace pcapTrace = new PcapTrace();) {
67 StreamListAnalysis analysis = new StreamListAnalysis();
68 analysis.setId(StreamListAnalysis.ID);
69 pcapTrace.initTrace(null, path, null);
70 assertTrue(analysis.canExecute(pcapTrace));
71
72 analysis.dispose();
73 }
74 }
75
76 /**
77 * Method that execute the analysis and verify the results.
78 *
79 * @throws TmfAnalysisException
80 * Thrown when an analysis error occurs during the setup or
81 * execution. Fails the test.
82 * @throws TmfTraceException
83 * Thrown when the trace cannot be initialized. Fails the test.
84 */
85 @Test
86 public void executeAnalysisTest() throws TmfAnalysisException, TmfTraceException {
87 PcapTestTrace trace = PcapTestTrace.MOSTLY_TCP;
88 assumeTrue(trace.exists());
89 String path = trace.getPath().toString();
90 try (PcapTrace pcapTrace = new PcapTrace();) {
91 StreamListAnalysis analysis = new StreamListAnalysis();
92
93 pcapTrace.initTrace(null, path, null);
94 analysis.setId(StreamListAnalysis.ID);
95 analysis.setTrace(pcapTrace);
96 analysis.schedule();
97 analysis.waitForCompletion();
98
99 // Verify that builders are not empty.
100 TmfPacketStreamBuilder builder = analysis.getBuilder(TmfPcapProtocol.ETHERNET_II);
101 if (builder == null) {
102 fail("The PacketStreamBuilder is null!");
103 return;
104 }
105 assertEquals(1, builder.getNbStreams());
106
107 builder = analysis.getBuilder(TmfPcapProtocol.IPV4);
108 if (builder == null) {
109 fail("The PacketStreamBuilder is null!");
110 return;
111 }
112 assertEquals(3, builder.getNbStreams());
113
114 builder = analysis.getBuilder(TmfPcapProtocol.TCP);
115 if (builder == null) {
116 fail("The PacketStreamBuilder is null!");
117 return;
118 }
119 assertEquals(2, builder.getNbStreams());
120
121 builder = analysis.getBuilder(TmfPcapProtocol.UDP);
122 if (builder == null) {
123 fail("The PacketStreamBuilder is null!");
124 return;
125 }
126 assertEquals(1, builder.getNbStreams());
127
128 analysis.dispose();
129 }
130 }
131
132 }
This page took 0.044652 seconds and 6 git commands to generate.