blob: 82f0c7ec3f227f5f2efaab3ecc0159b20642e678 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Ericsson
*
* 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
*
* Contributors:
* Vincent Perot - Initial API and implementation
******************************************************************************/
package org.eclipse.tracecompass.tmf.pcap.core.tests.trace;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.tracecompass.internal.tmf.pcap.core.event.PcapEvent;
import org.eclipse.tracecompass.internal.tmf.pcap.core.trace.PcapTrace;
import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
import org.eclipse.tracecompass.tmf.core.signal.TmfEndSynchSignal;
import org.eclipse.tracecompass.tmf.core.signal.TmfSignal;
import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
import org.eclipse.tracecompass.tmf.core.trace.ITmfContext;
import org.eclipse.tracecompass.tmf.core.trace.location.TmfLongLocation;
import org.eclipse.tracecompass.tmf.pcap.core.tests.shared.PcapTmfTestTrace;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* JUnit that test the PcapTrace class.
*
* @author Vincent Perot
*/
public class PcapTraceTest {
private static final PcapTmfTestTrace TEST_TRACE = PcapTmfTestTrace.MOSTLY_TCP;
private PcapTrace fFixture;
/**
* Perform pre-test initialization.
*
* @throws TmfTraceException
* If the test trace is not found
*/
@Before
public void setUp() throws TmfTraceException {
assumeTrue(TEST_TRACE.exists());
fFixture = new PcapTrace();
fFixture.initTrace((IResource) null, TEST_TRACE.getPath(), PcapEvent.class);
}
/**
* Perform post-test clean-up.
*/
@After
public void tearDown() {
if (fFixture != null) {
fFixture.dispose();
}
}
/**
* Run the PcapTrace() constructor test.
*/
@Test
public void testPcapTrace() {
PcapTrace result = new PcapTrace();
assertNotNull(result);
assertEquals(1000, result.getCacheSize());
assertEquals(0L, result.getNbEvents());
assertEquals(0L, result.getStreamingInterval());
assertNull(result.getResource());
assertNull(result.getEventType());
result.dispose();
}
/**
* Test the parseEvent() method
*/
@Test
public void testParseEvent() {
ITmfContext ctx = fFixture.seekEvent(0);
fFixture.getNext(ctx);
PcapEvent event = fFixture.parseEvent(ctx);
assertNotNull(event);
}
/**
* Run the void broadcast(TmfSignal) method test.
*/
@Test
public void testBroadcast() {
TmfSignal signal = new TmfEndSynchSignal(1);
fFixture.broadcast(signal);
}
/**
* Run the int getCacheSize() method test.
*/
@Test
public void testGetCacheSize() {
PcapTrace emptyFixture = new PcapTrace();
int result = emptyFixture.getCacheSize();
assertEquals(1000, result);
emptyFixture.dispose();
}
/**
* Run the ITmfLocation<Comparable> getCurrentLocation() method test.
*/
@Test
public void testGetCurrentLocation() {
TmfLongLocation result = (TmfLongLocation) fFixture.getCurrentLocation();
assertEquals(new TmfLongLocation(0), result);
}
/**
* Test the seekEvent() method with a null location.
*/
@Test
public void testSeekEventLoc_null() {
TmfLongLocation loc = null;
fFixture.seekEvent(loc);
assertNotNull(fFixture);
}
/**
* Test the seekEvent() method with a normal location.
*/
@Test
public void testSeekEventLoc_normal() {
TmfLongLocation loc = new TmfLongLocation(3L);
fFixture.seekEvent(loc);
assertNotNull(fFixture);
}
/**
* Run the ITmfTimestamp getEndTime() method test.
*/
@Test
public void testGetEndTime() {
ITmfTimestamp result = fFixture.getEndTime();
assertNotNull(result);
}
/**
* Test the {@link PcapTrace#getEventType()} method.
*/
@Test
public void testGetEventType() {
Class<?> result = fFixture.getEventType();
assertNotNull(result);
assertEquals(PcapEvent.class, result);
}
/**
* Run the double getLocationRatio(ITmfLocation<?>) method test.
*/
@Test
public void testGetLocationRatio() {
TmfLongLocation location = new TmfLongLocation(20L);
double result = fFixture.getLocationRatio(location);
assertEquals(20.0 / 43.0, result, 0.01);
}
/**
* Run the String getName() method test.
*/
@Test
public void testGetName() {
String result = fFixture.getName();
assertNotNull(result);
}
/**
* Run the getTraceProperties() method test.
*/
@Test
public void testGetTraceProperties() {
int result = fFixture.getProperties().size();
assertEquals(6, result);
}
/**
* Run the long getNbEvents() method test.
*/
@Test
public void testGetNbEvents() {
long result = fFixture.getNbEvents();
assertEquals(0, result);
}
/**
* Run the String getPath() method test.
*/
@Test
public void testGetPath() {
String result = fFixture.getPath();
assertNotNull(result);
}
/**
* Run the IResource getResource() method test.
*/
@Test
public void testGetResource() {
IResource result = fFixture.getResource();
assertNull(result);
}
/**
* Run the ITmfTimestamp getStartTime() method test.
*/
@Test
public void testGetStartTime() {
ITmfTimestamp result = fFixture.getStartTime();
assertNotNull(result);
}
/**
* Run the long getStreamingInterval() method test.
*/
@Test
public void testGetStreamingInterval() {
long result = fFixture.getStreamingInterval();
assertEquals(0L, result);
}
/**
* Run the TmfTimeRange getTimeRange() method test.
*/
@Test
public void testGetTimeRange() {
TmfTimeRange result = fFixture.getTimeRange();
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(double) method test.
*/
@Test
public void testSeekEvent_ratio() {
double ratio = 21.0 / 43.0;
ITmfContext result = fFixture.seekEvent(ratio);
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(long) method test.
*/
@Test
public void testSeekEvent_rank() {
long rank = 1L;
ITmfContext result = fFixture.seekEvent(rank);
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(ITmfLocation<?>) method test.
*/
@Test
public void testSeekEvent_location() {
TmfLongLocation pcapLocation = new TmfLongLocation(10L);
ITmfContext result = fFixture.seekEvent(pcapLocation);
assertNotNull(result);
}
/**
* Run the boolean validate(IProject,String) method test.
*/
@Test
public void testValidate() {
IProject project = null;
IStatus result = fFixture.validate(project, TEST_TRACE.getPath());
assertTrue(result.isOK());
}
/**
* Run the String getHostId() method test
*/
@Test
public void getSource() {
String a = fFixture.getHostId();
assertEquals("mostlyTCP.pcap", a);
}
}