/*******************************************************************************
- * Copyright (c) 2013 Ericsson
+ * Copyright (c) 2013, 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
import java.io.File;
import java.nio.ByteOrder;
-import java.util.Map;
import java.util.UUID;
import org.eclipse.linuxtools.ctf.core.event.CTFClock;
-import org.eclipse.linuxtools.ctf.core.event.types.Definition;
+import org.eclipse.linuxtools.ctf.core.event.types.IDefinition;
import org.eclipse.linuxtools.ctf.core.event.types.StructDeclaration;
-import org.eclipse.linuxtools.ctf.core.tests.shared.CtfTestTraces;
+import org.eclipse.linuxtools.ctf.core.tests.shared.CtfTestTrace;
import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
import org.eclipse.linuxtools.ctf.core.trace.CTFTrace;
-import org.eclipse.linuxtools.ctf.core.trace.Stream;
+import org.eclipse.linuxtools.ctf.core.trace.CTFStream;
import org.eclipse.linuxtools.internal.ctf.core.event.metadata.exceptions.ParseException;
import org.junit.Before;
import org.junit.Test;
*/
public class CTFTraceTest {
- private static final String TRACES_DIRECTORY = "../org.eclipse.linuxtools.ctf.core.tests/traces";
-
- private static final String METADATA_FILENAME = "metadata";
-
- private static final int TRACE_INDEX = 0;
-
- private static final String CTF_VERSION_NUMBER = "1.8";
- private static final String CTF_SUITE_TEST_DIRECTORY = "ctf-testsuite/tests/" + CTF_VERSION_NUMBER;
+ private static final CtfTestTrace testTrace = CtfTestTrace.KERNEL;
private CTFTrace fixture;
*/
@Before
public void setUp() {
- assumeTrue(CtfTestTraces.tracesExist());
- fixture = CtfTestTraces.getTestTraceFromFile(TRACE_INDEX);
+ assumeTrue(testTrace.exists());
+ try {
+ fixture = testTrace.getTraceFromFile();
+ } catch (CTFReaderException e) {
+ /* If the assumeTrue() call passed, this should not happen. */
+ fail();
+ }
fixture.setMinor(1L);
fixture.setUUID(UUID.randomUUID());
fixture.setPacketHeader(new StructDeclaration(1L));
*/
@Test
public void testOpen_existing() {
- CTFTrace result = CtfTestTraces.getTestTraceFromFile(TRACE_INDEX);
- assertNotNull(result.getUUID());
+ try (CTFTrace result = testTrace.getTraceFromFile();) {
+ assertNotNull(result.getUUID());
+ } catch (CTFReaderException e) {
+ fail();
+ }
}
/**
@Test(expected = org.eclipse.linuxtools.ctf.core.trace.CTFReaderException.class)
public void testOpen_invalid() throws CTFReaderException {
File path = new File("");
- CTFTrace result = new CTFTrace(path);
- assertNotNull(result);
+ try (CTFTrace result = new CTFTrace(path);) {
+ assertNotNull(result);
+ }
}
/**
// Add a stream
try {
- Stream stream = new Stream(CtfTestTraces.getTestTrace(TRACE_INDEX));
+ CTFStream stream = new CTFStream(testTrace.getTrace());
stream.setId(1234);
fixture.addStream(stream);
} catch (CTFReaderException e) {
@Test
public void testGetStream() {
Long id = new Long(0L);
- Stream result = fixture.getStream(id);
- assertNotNull(result);
- }
-
- /**
- * Run the Map<Long, Stream> getStreams() method test.
- */
- @Test
- public void testGetStreams() {
- Map<Long, Stream> result = fixture.getStreams();
+ CTFStream result = fixture.getStream(id);
assertNotNull(result);
}
@Test
public void testLookupDefinition() {
String lookupPath = "trace.packet.header";
- Definition result = fixture.lookupDefinition(lookupPath);
+ IDefinition result = fixture.lookupDefinition(lookupPath);
assertNotNull(result);
}
/**
- * Run the boolean majortIsSet() method test.
+ * Run the boolean majorIsSet() method test.
*/
@Test
- public void testMajortIsSet() {
- boolean result = fixture.majortIsSet();
+ public void testMajorIsSet() {
+ boolean result = fixture.majorIsSet();
assertTrue(result);
}
*/
@Test
public void testPacketHeaderIsSet_invalid() {
- CTFTrace fixture2 = CtfTestTraces.getTestTraceFromFile(TRACE_INDEX);
- fixture2.setMinor(1L);
- fixture2.setUUID(UUID.randomUUID());
- fixture2.setPacketHeader((StructDeclaration) null); /* it's null here! */
- fixture2.setMajor(1L);
- fixture2.setByteOrder(ByteOrder.BIG_ENDIAN);
-
- boolean result = fixture2.packetHeaderIsSet();
- assertFalse(result);
+ try (CTFTrace fixture2 = testTrace.getTraceFromFile();){
+ fixture2.setMinor(1L);
+ fixture2.setUUID(UUID.randomUUID());
+ fixture2.setPacketHeader((StructDeclaration) null); /* it's null here! */
+ fixture2.setMajor(1L);
+ fixture2.setByteOrder(ByteOrder.BIG_ENDIAN);
+
+ boolean result = fixture2.packetHeaderIsSet();
+ assertFalse(result);
+ } catch (CTFReaderException e) {
+ fail();
+ }
}
/**
@Test
public void testLookupEnvironment_1() {
String key = "";
- String result = fixture.lookupEnvironment(key);
+ String result = fixture.getEnvironment().get(key);
assertNull(result);
}
@Test
public void testLookupEnvironment_2() {
String key = "otherTest";
- String result = fixture.lookupEnvironment(key);
+ String result = fixture.getEnvironment().get(key);
assertNull(result);
}
public void testLookupEnvironment_3() {
String key = "test";
fixture.addEnvironmentVar(key, key);
- String result = fixture.lookupEnvironment(key);
+ String result = fixture.getEnvironment().get(key);
assertTrue(result.equals(key));
}
String key = "test";
fixture.addEnvironmentVar(key, "bozo");
fixture.addEnvironmentVar(key, "the clown");
- String result = fixture.lookupEnvironment(key);
+ String result = fixture.getEnvironment().get(key);
assertNotNull(result);
}
- /**
- * Open traces in specified directories and expect them to fail
- *
- * @throws CTFReaderException not expected
- */
- @Test
- public void testFailedParse() throws CTFReaderException {
- parseTracesInDirectory(getTestTracesSubDirectory(CTF_SUITE_TEST_DIRECTORY + "/fail"), true);
- }
-
- /**
- * Open traces in specified directories and expect them to succeed
- *
- * @throws CTFReaderException not expected
- */
- @Test
- public void testSuccessfulParse() throws CTFReaderException {
- parseTracesInDirectory(getTestTracesSubDirectory("kernel"), false);
- parseTracesInDirectory(getTestTracesSubDirectory("trace2"), false);
- parseTracesInDirectory(getTestTracesSubDirectory(CTF_SUITE_TEST_DIRECTORY + "/pass"), false);
- }
-
- /**
- * Get the File object for the subDir in the traces directory. If the sub directory doesn't exist, the test is skipped.
- */
- private static File getTestTracesSubDirectory(String subDir) {
- File file = new File(TRACES_DIRECTORY + "/" + subDir);
- assumeTrue(file.isDirectory());
- return file;
- }
-
- /**
- * Parse the traces in given directory recursively
- *
- * @param directory The directory to search in
- * @param expectException Whether or not traces in this directory are expected to throw an exception when parsed
- * @throws CTFReaderException
- */
- void parseTracesInDirectory(File directory, boolean expectException) throws CTFReaderException {
- for (File file : directory.listFiles()) {
- if (file.getName().equals(METADATA_FILENAME)) {
- try {
- new CTFTrace(directory);
- if (expectException) {
- fail("Trace was expected to fail parsing: " + directory);
- }
- } catch (RuntimeException e) {
- if (!expectException) {
- throw new CTFReaderException("Failed parsing " + directory, e);
- }
- } catch (CTFReaderException e) {
- if (!expectException) {
- throw new CTFReaderException("Failed parsing " + directory, e);
- }
- }
- return;
- }
-
- if (file.isDirectory()) {
- parseTracesInDirectory(file, expectException);
- }
- }
- }
-
/**
* Test for getCallsite(eventName, ip)
+ * @throws CTFReaderException not expected
*/
@Test
- public void callsitePosition(){
+ public void callsitePosition() throws CTFReaderException {
long ip1 = 2;
long ip2 = 5;
long ip3 = 7;
- CTFTrace callsiteTest = CtfTestTraces.getTestTraceFromFile(TRACE_INDEX);
- callsiteTest.addCallsite("testEvent", null, ip1, null, 23);
- callsiteTest.addCallsite("testEvent", null, ip2, null, 50);
- callsiteTest.addCallsite("testEvent", null, ip3, null, 15);
-
- assertEquals(2, (callsiteTest.getCallsite("testEvent", 1)).getIp());
- assertEquals(2, (callsiteTest.getCallsite("testEvent", 2)).getIp());
- assertEquals(5, (callsiteTest.getCallsite("testEvent", 3)).getIp());
- assertEquals(5, (callsiteTest.getCallsite("testEvent", 5)).getIp());
- assertEquals(7, (callsiteTest.getCallsite("testEvent", 6)).getIp());
- assertEquals(7, (callsiteTest.getCallsite("testEvent", 7)).getIp());
- assertEquals(7, (callsiteTest.getCallsite("testEvent", 8)).getIp());
+ try (CTFTrace callsiteTest = testTrace.getTraceFromFile()) {
+ callsiteTest.addCallsite("testEvent", null, ip1, null, 23);
+ callsiteTest.addCallsite("testEvent", null, ip2, null, 50);
+ callsiteTest.addCallsite("testEvent", null, ip3, null, 15);
+
+ assertEquals(2, (callsiteTest.getCallsite("testEvent", 1)).getIp());
+ assertEquals(2, (callsiteTest.getCallsite("testEvent", 2)).getIp());
+ assertEquals(5, (callsiteTest.getCallsite("testEvent", 3)).getIp());
+ assertEquals(5, (callsiteTest.getCallsite("testEvent", 5)).getIp());
+ assertEquals(7, (callsiteTest.getCallsite("testEvent", 6)).getIp());
+ assertEquals(7, (callsiteTest.getCallsite("testEvent", 7)).getIp());
+ assertEquals(7, (callsiteTest.getCallsite("testEvent", 8)).getIp());
+ }
}
}