blob: cff3f563128ee75d84c86307d8be5f925353d6b3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Matthew Khouzam - Initial generation with CodePro tools
* Alexandre Montplaisir - Clean up, consolidate redundant tests
*******************************************************************************/
package org.eclipse.linuxtools.tmf.ctf.core.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
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.linuxtools.tmf.core.event.ITmfEvent;
import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException;
import org.eclipse.linuxtools.tmf.core.signal.TmfEndSynchSignal;
import org.eclipse.linuxtools.tmf.core.signal.TmfSignal;
import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimeRange;
import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
import org.eclipse.linuxtools.tmf.ctf.core.CtfLocation;
import org.eclipse.linuxtools.tmf.ctf.core.CtfLocationInfo;
import org.eclipse.linuxtools.tmf.ctf.core.CtfTmfEvent;
import org.eclipse.linuxtools.tmf.ctf.core.CtfTmfTimestamp;
import org.eclipse.linuxtools.tmf.ctf.core.CtfTmfTrace;
import org.eclipse.linuxtools.tmf.ctf.core.tests.shared.CtfTmfTestTrace;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* The class <code>CtfTmfTraceTest</code> contains tests for the class
* <code>{@link CtfTmfTrace}</code>.
*
* @author ematkho
* @version 1.0
*/
public class CtfTmfTraceTest {
private static final CtfTmfTestTrace testTrace = CtfTmfTestTrace.KERNEL;
private CtfTmfTrace fixture;
/**
* Perform pre-test initialization.
*
* @throws TmfTraceException
* If the test trace is not found
*/
@Before
public void setUp() throws TmfTraceException {
assumeTrue(testTrace.exists());
fixture = new CtfTmfTrace();
fixture.initTrace((IResource) null, testTrace.getPath(), CtfTmfEvent.class);
}
/**
* Perform post-test clean-up.
*/
@After
public void tearDown() {
if (fixture != null) {
fixture.dispose();
}
}
/**
* Run the CtfTmfTrace() constructor test.
*/
@Test
public void testCtfTmfTrace() {
CtfTmfTrace result = new CtfTmfTrace();
assertNotNull(result);
assertNull(result.getEventType());
assertEquals(1000, result.getCacheSize());
assertEquals(0L, result.getNbEvents());
assertEquals(0L, result.getStreamingInterval());
assertNull(result.getResource());
assertNull(result.getType());
}
/**
* Test the parseEvent() method
*/
@Test
public void testParseEvent() {
ITmfContext ctx = fixture.seekEvent(0);
fixture.getNext(ctx);
CtfTmfEvent event = fixture.parseEvent(ctx);
assertNotNull(event);
}
/**
* Run the void broadcast(TmfSignal) method test.
*/
@Test
public void testBroadcast() {
TmfSignal signal = new TmfEndSynchSignal(1);
fixture.broadcast(signal);
}
/**
* Run the void dispose() method test.
*/
@Test
public void testDispose() {
CtfTmfTrace emptyFixture = new CtfTmfTrace();
emptyFixture.dispose();
}
/**
* Run the int getCacheSize() method test.
*/
@Test
public void testGetCacheSize() {
CtfTmfTrace emptyFixture = new CtfTmfTrace();
int result = emptyFixture.getCacheSize();
assertEquals(1000, result);
}
/**
* Run the ITmfLocation<Comparable> getCurrentLocation() method test.
*/
@Test
public void testGetCurrentLocation() {
CtfLocation result = (CtfLocation) fixture.getCurrentLocation();
assertNull(result);
}
/**
* Test the seekEvent() method with a null location.
*/
@Test
public void testSeekEventLoc_null() {
CtfLocation loc = null;
fixture.seekEvent(loc);
assertNotNull(fixture);
}
/**
* Test the seekEvent() method with a location from a timestamp.
*/
@Test
public void testSeekEventLoc_timetamp(){
CtfLocation loc = new CtfLocation(new CtfTmfTimestamp(0L));
fixture.seekEvent(loc);
assertNotNull(fixture);
}
/**
* Run the ITmfTimestamp getEndTime() method test.
*/
@Test
public void testGetEndTime() {
ITmfTimestamp result = fixture.getEndTime();
assertNotNull(result);
}
/**
* Run the String getEnvironment method test.
*/
@Test
public void testGetEnvValue() {
String key = "tracer_name";
String result = fixture.getTraceProperties().get(key);
assertEquals("\"lttng-modules\"",result);
}
/**
* Run the Class<CtfTmfEvent> getEventType() method test.
*/
@Test
public void testGetEventType() {
Class<? extends ITmfEvent> result = fixture.getEventType();
assertNotNull(result);
}
/**
* Run the double getLocationRatio(ITmfLocation<?>) method test.
*/
@Test
public void testGetLocationRatio() {
final CtfLocationInfo location2 = new CtfLocationInfo(1, 0);
CtfLocation location = new CtfLocation(location2);
double result = fixture.getLocationRatio(location);
assertEquals(Double.NEGATIVE_INFINITY, result, 0.1);
}
/**
* Run the String getName() method test.
*/
@Test
public void testGetName() {
String result = fixture.getName();
assertNotNull(result);
}
/**
* Run the int getNbEnvVars() method test.
*/
@Test
public void testGetNbEnvVars() {
int result = fixture.getTraceProperties().size();
assertEquals(8, result);
}
/**
* Run the long getNbEvents() method test.
*/
@Test
public void testGetNbEvents() {
long result = fixture.getNbEvents();
assertEquals(1L, result);
}
/**
* Run the CtfTmfEvent getNext(ITmfContext) method test.
*/
@Test
public void testGetNext() {
ITmfContext context = fixture.seekEvent(0);
CtfTmfEvent result = fixture.getNext(context);
assertNotNull(result);
}
/**
* Run the String getPath() method test.
*/
@Test
public void testGetPath() {
String result = fixture.getPath();
assertNotNull(result);
}
/**
* Run the IResource getResource() method test.
*/
@Test
public void testGetResource() {
IResource result = fixture.getResource();
assertNull(result);
}
/**
* Run the ITmfTimestamp getStartTime() method test.
*/
@Test
public void testGetStartTime() {
ITmfTimestamp result = fixture.getStartTime();
assertNotNull(result);
}
/**
* Run the long getStreamingInterval() method test.
*/
@Test
public void testGetStreamingInterval() {
long result = fixture.getStreamingInterval();
assertEquals(0L, result);
}
/**
* Run the TmfTimeRange getTimeRange() method test.
*/
@Test
public void testGetTimeRange() {
TmfTimeRange result = fixture.getTimeRange();
assertNotNull(result);
}
/**
* Run the CtfTmfEvent readNextEvent(ITmfContext) method test.
*/
@Test
public void testReadNextEvent() {
ITmfContext context = fixture.seekEvent(0);
CtfTmfEvent result = fixture.getNext(context);
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(double) method test.
*/
@Test
public void testSeekEvent_ratio() {
double ratio = 0.99;
ITmfContext result = fixture.seekEvent(ratio);
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(long) method test.
*/
@Test
public void testSeekEvent_rank() {
long rank = 1L;
ITmfContext result = fixture.seekEvent(rank);
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(ITmfTimestamp) method test.
*/
@Test
public void testSeekEvent_timestamp() {
ITmfTimestamp timestamp = new TmfTimestamp();
ITmfContext result = fixture.seekEvent(timestamp);
assertNotNull(result);
}
/**
* Run the ITmfContext seekEvent(ITmfLocation<?>) method test.
*/
@Test
public void testSeekEvent_location() {
final CtfLocationInfo location2 = new CtfLocationInfo(1L, 0L);
CtfLocation ctfLocation = new CtfLocation(location2);
ITmfContext result = fixture.seekEvent(ctfLocation);
assertNotNull(result);
}
/**
* Run the boolean validate(IProject,String) method test.
*/
@Test
public void testValidate() {
IProject project = null;
IStatus result = fixture.validate(project, testTrace.getPath());
assertTrue(result.isOK());
}
/**
* Run the boolean hasEvent(final String) method test
*/
@Test
public void testEventLookup() {
assertTrue(fixture.hasEvent("sched_switch"));
assertFalse(fixture.hasEvent("Sched_switch"));
String[] events = { "sched_switch", "sched_wakeup", "timer_init" };
assertTrue(fixture.hasAllEvents(events));
assertTrue(fixture.hasAtLeastOneOfEvents(events));
String[] names = { "inexistent", "sched_switch", "SomeThing" };
assertTrue(fixture.hasAtLeastOneOfEvents(names));
assertFalse(fixture.hasAllEvents(names));
}
/**
* Run the String getHostId() method test
*/
@Test
public void testCtfHostId() {
String a = fixture.getHostId();
assertEquals("\"84db105b-b3f4-4821-b662-efc51455106a\"", a);
}
}