From 5b12450f9df14f3618e696584e16dfb7c83c4e5d Mon Sep 17 00:00:00 2001 From: Patrick Tasse Date: Tue, 24 Feb 2015 16:51:17 -0500 Subject: [PATCH] tmf: Update text trace unit tests Change-Id: I88084b23a5dfd2f9d8147fc372dc17742af359c6 Signed-off-by: Patrick Tasse Reviewed-on: https://git.eclipse.org/r/42584 Reviewed-by: Hudson CI Reviewed-by: Alexandre Montplaisir Tested-by: Alexandre Montplaisir --- .../trace/text/TextTraceEventContentTest.java | 122 ++++++++---------- .../core/tests/trace/text/TextTraceTest.java | 79 ++++++------ .../tests/stubs/trace/text/SyslogEvent.java | 9 +- .../stubs/trace/text/SyslogEventType.java | 26 +--- .../tests/stubs/trace/text/SyslogTrace.java | 52 ++++++-- .../events/CollapseEventsInTableTest.java | 60 +++++---- 6 files changed, 180 insertions(+), 168 deletions(-) diff --git a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceEventContentTest.java b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceEventContentTest.java index 4fb1260abc..28de906561 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceEventContentTest.java +++ b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceEventContentTest.java @@ -24,7 +24,7 @@ import java.util.List; import org.eclipse.tracecompass.tmf.core.event.ITmfEventField; import org.eclipse.tracecompass.tmf.core.trace.text.TextTraceEventContent; import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType.Index; +import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogTrace.Field; import org.junit.Test; /** @@ -37,53 +37,59 @@ public class TextTraceEventContentTest { // Members // ------------------------------------------------------------------------ + private static final String[] LABELS = new String[] { + Field.HOST, Field.LOGGER, Field.FILE, Field.LINE, Field.MESSAGE + }; + private interface Index { + int HOST = 0; + int LOGGER = 1; + int FILE = 2; + int LINE = 3; + int MESSAGE = 4; + } private TextTraceEventContent fEventContent1; private TextTraceEventContent fEventContent1Clone; private TextTraceEventContent fEventContent2; private TextTraceEventContent fEventContent2Clone; + @SuppressWarnings("null") public TextTraceEventContentTest () { - fEventContent1 = new TextTraceEventContent(SyslogEventType.LABELS); + fEventContent1 = new TextTraceEventContent(LABELS); fEventContent1.setValue("CONTENT"); - fEventContent1.setFieldValue(Index.TIMESTAMP, "Jan 1 01:01:01"); fEventContent1.setFieldValue(Index.HOST, "HostA"); fEventContent1.setFieldValue(Index.LOGGER, "LoggerA"); fEventContent1.setFieldValue(Index.FILE, "SourceFileA"); fEventContent1.setFieldValue(Index.LINE, "0"); fEventContent1.setFieldValue(Index.MESSAGE, "MessageA"); - fEventContent1Clone = new TextTraceEventContent(SyslogEventType.LABELS); + fEventContent1Clone = new TextTraceEventContent(LABELS); fEventContent1Clone.setValue("CONTENT"); - fEventContent1Clone.setFieldValue(Index.TIMESTAMP, "Jan 1 01:01:01"); fEventContent1Clone.setFieldValue(Index.HOST, "HostA"); fEventContent1Clone.setFieldValue(Index.LOGGER, "LoggerA"); fEventContent1Clone.setFieldValue(Index.FILE, "SourceFileA"); fEventContent1Clone.setFieldValue(Index.LINE, "0"); fEventContent1Clone.setFieldValue(Index.MESSAGE, "MessageA"); - fEventContent2 = new TextTraceEventContent(SyslogEventType.LABELS); - fEventContent2.setFieldValue(SyslogEventType.LABELS[0], "Jan 1 02:02:02"); - fEventContent2.setFieldValue(SyslogEventType.LABELS[1], "HostB"); - fEventContent2.setFieldValue(SyslogEventType.LABELS[2], "LoggerB"); - fEventContent2.setFieldValue(SyslogEventType.LABELS[3], "SourceFileB"); - fEventContent2.setFieldValue(SyslogEventType.LABELS[4], "2"); + fEventContent2 = new TextTraceEventContent(LABELS.length); + fEventContent2.setFieldValue(LABELS[0], "HostB"); + fEventContent2.setFieldValue(LABELS[1], "LoggerB"); + fEventContent2.setFieldValue(LABELS[2], "SourceFileB"); + fEventContent2.setFieldValue(LABELS[3], "2"); StringBuffer buffer = new StringBuffer(); buffer.append("Message B"); - fEventContent2.setFieldValue(SyslogEventType.LABELS[5], buffer); - - fEventContent2Clone = new TextTraceEventContent(SyslogEventType.LABELS); - fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[0], "Jan 1 02:02:02"); - fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[1], "HostB"); - fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[2], "LoggerB"); - fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[3], "SourceFileB"); - fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[4], "2"); + fEventContent2.setFieldValue(LABELS[4], buffer); + + fEventContent2Clone = new TextTraceEventContent(LABELS); + fEventContent2Clone.setFieldValue(LABELS[0], "HostB"); + fEventContent2Clone.setFieldValue(LABELS[1], "LoggerB"); + fEventContent2Clone.setFieldValue(LABELS[2], "SourceFileB"); + fEventContent2Clone.setFieldValue(LABELS[3], "2"); buffer = new StringBuffer(); buffer.append("Message B"); - fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[5], buffer); + fEventContent2Clone.setFieldValue(LABELS[4], buffer); } public void testConstructorConstructor() { - assertEquals("getField:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue(Index.TIMESTAMP)); assertEquals("getField:HOST", "HostA", fEventContent1.getFieldValue(Index.HOST)); assertEquals("getField:LOGGER", "LoggerA", fEventContent1.getFieldValue(Index.LOGGER)); assertEquals("getField:FILE", "SourceFileA", fEventContent1.getFieldValue(Index.FILE)); @@ -100,12 +106,7 @@ public class TextTraceEventContentTest { SyslogEventType eventType = SyslogEventType.INSTANCE; assertEquals("getTypeId", "Syslog", eventType.getName()); assertNotNull ("instance", eventType); - assertTrue (eventType.getFieldNames().contains("Timestamp")); - assertTrue (eventType.getFieldNames().contains("Host")); - assertTrue (eventType.getFieldNames().contains("Logger")); - assertTrue (eventType.getFieldNames().contains("File")); - assertTrue (eventType.getFieldNames().contains("Line")); - assertTrue (eventType.getFieldNames().contains("Message")); + assertEquals ("getFieldNames", 0, eventType.getFieldNames().size()); } // ------------------------------------------------------------------------ @@ -150,18 +151,16 @@ public class TextTraceEventContentTest { @Test public void testGetFieldValueWithIndex() { - assertEquals("getFieldValue:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue(Index.TIMESTAMP)); assertEquals("getFieldValue:HOST", "HostA", fEventContent1.getFieldValue(Index.HOST)); assertEquals("getFieldValue:LOGGER", "LoggerA", fEventContent1.getFieldValue(Index.LOGGER)); assertEquals("getFieldValue:FILE", "SourceFileA", fEventContent1.getFieldValue(Index.FILE)); assertEquals("getFieldValue:LINE", "0", fEventContent1.getFieldValue(Index.LINE)); assertEquals("getFieldValue:MESSAGE", "MessageA", fEventContent1.getFieldValue(Index.MESSAGE)); - assertNull(fEventContent1.getFieldValue(6)); + assertNull(fEventContent1.getFieldValue(5)); } @Test public void testGetFieldValueWithName() { - assertEquals("getFieldValue:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue("Timestamp")); assertEquals("getFieldValue:HOST", "HostA", fEventContent1.getFieldValue("Host")); assertEquals("getFieldValue:LOGGER", "LoggerA", fEventContent1.getFieldValue("Logger")); assertEquals("getFieldValue:FILE", "SourceFileA", fEventContent1.getFieldValue("File")); @@ -173,57 +172,50 @@ public class TextTraceEventContentTest { @Test public void testGetFieldNameWithIndex() { - assertEquals("getFieldName:TIMESTAMP", SyslogEventType.LABELS[0], fEventContent1.getFieldName(Index.TIMESTAMP)); - assertEquals("getFieldName:HOST", SyslogEventType.LABELS[1], fEventContent1.getFieldName(Index.HOST)); - assertEquals("getFieldName:LOGGER", SyslogEventType.LABELS[2], fEventContent1.getFieldName(Index.LOGGER)); - assertEquals("getFieldName:FILE", SyslogEventType.LABELS[3], fEventContent1.getFieldName(Index.FILE)); - assertEquals("getFieldName:LINE", SyslogEventType.LABELS[4], fEventContent1.getFieldName(Index.LINE)); - assertEquals("getFieldName:MESSAGE", SyslogEventType.LABELS[5], fEventContent1.getFieldName(Index.MESSAGE)); - assertNull(fEventContent1.getFieldValue(6)); + assertEquals("getFieldName:HOST", LABELS[0], fEventContent1.getFieldName(Index.HOST)); + assertEquals("getFieldName:LOGGER", LABELS[1], fEventContent1.getFieldName(Index.LOGGER)); + assertEquals("getFieldName:FILE", LABELS[2], fEventContent1.getFieldName(Index.FILE)); + assertEquals("getFieldName:LINE", LABELS[3], fEventContent1.getFieldName(Index.LINE)); + assertEquals("getFieldName:MESSAGE", LABELS[4], fEventContent1.getFieldName(Index.MESSAGE)); + assertNull(fEventContent1.getFieldValue(5)); } @Test public void testGetFields() { List fields = fEventContent1.getFields(); - assertEquals(6, fields.size()); - assertEquals("getFields:TIMESTAMP", SyslogEventType.LABELS[0], fields.get(Index.TIMESTAMP).getName()); - assertEquals("getFields:TIMESTAMP", "Jan 1 01:01:01", fields.get(Index.TIMESTAMP).getValue()); - assertEquals("getFields:HOST", SyslogEventType.LABELS[1], fields.get(Index.HOST).getName()); + assertEquals(5, fields.size()); + assertEquals("getFields:HOST", LABELS[0], fields.get(Index.HOST).getName()); assertEquals("getFields:HOST", "HostA", fields.get(Index.HOST).getValue()); - assertEquals("getFields:LOGGER", SyslogEventType.LABELS[2], fields.get(Index.LOGGER).getName()); + assertEquals("getFields:LOGGER", LABELS[1], fields.get(Index.LOGGER).getName()); assertEquals("getFields:LOGGER", "LoggerA", fields.get(Index.LOGGER).getValue()); - assertEquals("getFields:FILE", SyslogEventType.LABELS[3], fields.get(Index.FILE).getName()); + assertEquals("getFields:FILE", LABELS[2], fields.get(Index.FILE).getName()); assertEquals("getFields:FILE", "SourceFileA", fields.get(Index.FILE).getValue()); - assertEquals("getFields:LINE", SyslogEventType.LABELS[4], fields.get(Index.LINE).getName()); + assertEquals("getFields:LINE", LABELS[3], fields.get(Index.LINE).getName()); assertEquals("getFields:LINE", "0", fields.get(Index.LINE).getValue()); - assertEquals("getFields:MESSAGE", SyslogEventType.LABELS[5], fields.get(Index.MESSAGE).getName()); + assertEquals("getFields:MESSAGE", LABELS[4], fields.get(Index.MESSAGE).getName()); assertEquals("getFields:MESSAGE", "MessageA", fields.get(Index.MESSAGE).getValue()); } @Test public void testGetFieldWithName() { - ITmfEventField field = fEventContent1.getField("Timestamp"); - assertEquals("getFieldName:TIMESTAMP", SyslogEventType.LABELS[0], field.getName()); - assertEquals("getFieldName:TIMESTAMP", "Jan 1 01:01:01", field.getValue()); - - field = fEventContent1.getField(SyslogEventType.LABELS[1]); - assertEquals("getFieldName:HOST", SyslogEventType.LABELS[1], field.getName()); + ITmfEventField field = fEventContent1.getField(LABELS[0]); + assertEquals("getFieldName:HOST", LABELS[0], field.getName()); assertEquals("getFieldName:HOST", "HostA", field.getValue()); - field = fEventContent1.getField(SyslogEventType.LABELS[2]); - assertEquals("getFieldName:LOGGER", SyslogEventType.LABELS[2], field.getName()); + field = fEventContent1.getField(LABELS[1]); + assertEquals("getFieldName:LOGGER", LABELS[1], field.getName()); assertEquals("getFieldName:LOGGER", "LoggerA", field.getValue()); - field = fEventContent1.getField(SyslogEventType.LABELS[3]); - assertEquals("getFieldName:FILE", SyslogEventType.LABELS[3], field.getName()); + field = fEventContent1.getField(LABELS[2]); + assertEquals("getFieldName:FILE", LABELS[2], field.getName()); assertEquals("getFieldName:FILE", "SourceFileA", field.getValue()); - field = fEventContent1.getField(SyslogEventType.LABELS[4]); - assertEquals("getFieldName:LINE", SyslogEventType.LABELS[4], field.getName()); + field = fEventContent1.getField(LABELS[3]); + assertEquals("getFieldName:LINE", LABELS[3], field.getName()); assertEquals("getFieldName:LINE", "0", field.getValue()); - field = fEventContent1.getField(SyslogEventType.LABELS[5]); - assertEquals("getFieldName:Message", SyslogEventType.LABELS[5], field.getName()); + field = fEventContent1.getField(LABELS[4]); + assertEquals("getFieldName:Message", LABELS[4], field.getName()); assertEquals("getFieldName:Message", "MessageA", field.getValue()); field = fEventContent1.getField("BlaBla"); @@ -232,13 +224,13 @@ public class TextTraceEventContentTest { @Test public void testGetFieldWithPath() { - String[] path = { "Timestamp" }; + String[] path = { "Host" }; ITmfEventField field = fEventContent1.getField(path); - assertEquals("getFieldPath:TIMESTAMP", SyslogEventType.LABELS[0], field.getName()); - assertEquals("getFieldPath:TIMESTAMP", "Jan 1 01:01:01", field.getValue()); + assertEquals("getFieldPath:HOST", LABELS[0], field.getName()); + assertEquals("getFieldPath:HOST", "HostA", field.getValue()); - String[] path2 = { "Timestamp", "subField" }; + String[] path2 = { "Host", "subField" }; field = fEventContent1.getField(path2); assertNull(field); } @@ -250,12 +242,12 @@ public class TextTraceEventContentTest { @Test public void testToString() { - assertEquals("Timestamp=Jan 1 01:01:01, Host=HostA, Logger=LoggerA, File=SourceFileA, Line=0, Message=MessageA", fEventContent1.toString()); + assertEquals("Host=HostA, Logger=LoggerA, File=SourceFileA, Line=0, Message=MessageA", fEventContent1.toString()); } @Test public void testGetFieldNames() { - String[] labels = {"Timestamp", "Host", "Logger", "File", "Line", "Message"}; + String[] labels = {"Host", "Logger", "File", "Line", "Message"}; List names = fEventContent1.getFieldNames(); assertArrayEquals(labels, names.toArray(new String[names.size()])); } diff --git a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceTest.java b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceTest.java index 5bcce65b92..be6c6bfe06 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceTest.java +++ b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/text/TextTraceTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014 Ericsson + * Copyright (c) 2014, 2015 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,6 +8,7 @@ * * Contributors: * Bernd Hufmann - Initial API and implementation + * Patrick Tasse - Move field declarations to trace *******************************************************************************/ package org.eclipse.tracecompass.tmf.core.tests.trace.text; @@ -32,8 +33,8 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.tracecompass.internal.tmf.core.Activator; import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest; -import org.eclipse.tracecompass.tmf.core.request.TmfEventRequest; import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest.ExecutionType; +import org.eclipse.tracecompass.tmf.core.request.TmfEventRequest; import org.eclipse.tracecompass.tmf.core.tests.TmfCoreTestPlugin; import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimePreferencesConstants; import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp; @@ -45,7 +46,7 @@ import org.eclipse.tracecompass.tmf.core.trace.TraceValidationStatus; import org.eclipse.tracecompass.tmf.core.trace.text.TextTraceEventContent; import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEvent; import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogTrace; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType.Index; +import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogTrace.Field; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -189,57 +190,51 @@ public class TextTraceTest { SyslogEvent event = fTrace.getNext(context); TextTraceEventContent content = event.getContent(); assertEquals("getTimestamp", "Jan 1 01:01:01", event.getTimestamp().toString()); - assertEquals("getField:TIMESTAMP", "Jan 1 01:01:01", content.getFieldValue(Index.TIMESTAMP)); - assertEquals("getField:HOST", "HostA", content.getFieldValue(Index.HOST)); - assertEquals("getField:LOGGER", "LoggerA", content.getFieldValue(Index.LOGGER)); - assertEquals("getField:FILE", "SourceFileA", content.getFieldValue(Index.FILE)); - assertEquals("getField:LINE", "4", content.getFieldValue(Index.LINE)); - assertEquals("getField:MESSAGE", "Message A", content.getFieldValue(Index.MESSAGE).toString()); + assertEquals("getField:HOST", "HostA", content.getFieldValue(Field.HOST)); + assertEquals("getField:LOGGER", "LoggerA", content.getFieldValue(Field.LOGGER)); + assertEquals("getField:FILE", "SourceFileA", content.getFieldValue(Field.FILE)); + assertEquals("getField:LINE", "4", content.getFieldValue(Field.LINE)); + assertEquals("getField:MESSAGE", "Message A", content.getFieldValue(Field.MESSAGE).toString()); event = fTrace.getNext(context); content = event.getContent(); assertEquals("getTimestamp", "Jan 1 02:02:02", event.getTimestamp().toString()); - assertEquals("getField:TIMESTAMP", "Jan 1 02:02:02", content.getFieldValue(Index.TIMESTAMP)); - assertEquals("getField:HOST", "HostB", content.getFieldValue(Index.HOST)); - assertEquals("getField:LOGGER", "LoggerB", content.getFieldValue(Index.LOGGER)); - assertEquals("getField:FILE", "SourceFileB", content.getFieldValue(Index.FILE)); - assertEquals("getField:LINE", "5", content.getFieldValue(Index.LINE)); - assertEquals("getField:MESSAGE", "Message B", content.getFieldValue(Index.MESSAGE).toString()); + assertEquals("getField:HOST", "HostB", content.getFieldValue(Field.HOST)); + assertEquals("getField:LOGGER", "LoggerB", content.getFieldValue(Field.LOGGER)); + assertEquals("getField:FILE", "SourceFileB", content.getFieldValue(Field.FILE)); + assertEquals("getField:LINE", "5", content.getFieldValue(Field.LINE)); + assertEquals("getField:MESSAGE", "Message B", content.getFieldValue(Field.MESSAGE).toString()); event = fTrace.getNext(context); content = event.getContent(); assertEquals("getTimestamp", "Jan 1 03:03:03", event.getTimestamp().toString()); - assertEquals("getField:TIMESTAMP", "Jan 1 03:03:03", content.getFieldValue(Index.TIMESTAMP)); - assertEquals("getField:HOST", "HostC", content.getFieldValue(Index.HOST)); - assertEquals("getField:LOGGER", "LoggerC", content.getFieldValue(Index.LOGGER)); - assertEquals("getField:FILE", "SourceFileC", content.getFieldValue(Index.FILE)); - assertEquals("getField:LINE", "6", content.getFieldValue(Index.LINE)); - assertEquals("getField:MESSAGE", "Message C", content.getFieldValue(Index.MESSAGE).toString()); + assertEquals("getField:HOST", "HostC", content.getFieldValue(Field.HOST)); + assertEquals("getField:LOGGER", "LoggerC", content.getFieldValue(Field.LOGGER)); + assertEquals("getField:FILE", "SourceFileC", content.getFieldValue(Field.FILE)); + assertEquals("getField:LINE", "6", content.getFieldValue(Field.LINE)); + assertEquals("getField:MESSAGE", "Message C", content.getFieldValue(Field.MESSAGE).toString()); event = fTrace.getNext(context); content = event.getContent(); assertEquals("getTimestamp", "Jan 1 04:04:04", event.getTimestamp().toString()); - assertEquals("getField:TIMESTAMP", "Jan 1 04:04:04", content.getFieldValue(Index.TIMESTAMP)); - assertEquals("getField:HOST", "HostD", content.getFieldValue(Index.HOST)); - assertEquals("getField:LOGGER", "LoggerD", content.getFieldValue(Index.LOGGER)); - assertEquals("getField:FILE", "SourceFileD", content.getFieldValue(Index.FILE)); - assertEquals("getField:LINE", "7", content.getFieldValue(Index.LINE)); - assertEquals("getField:MESSAGE", "Message D", content.getFieldValue(Index.MESSAGE).toString()); + assertEquals("getField:HOST", "HostD", content.getFieldValue(Field.HOST)); + assertEquals("getField:LOGGER", "LoggerD", content.getFieldValue(Field.LOGGER)); + assertEquals("getField:FILE", "SourceFileD", content.getFieldValue(Field.FILE)); + assertEquals("getField:LINE", "7", content.getFieldValue(Field.LINE)); + assertEquals("getField:MESSAGE", "Message D", content.getFieldValue(Field.MESSAGE).toString()); event = fTrace.getNext(context); content = event.getContent(); assertEquals("getTimestamp", "Jan 1 05:05:05", event.getTimestamp().toString()); - assertEquals("getField:TIMESTAMP", "Jan 1 05:05:05", content.getFieldValue(Index.TIMESTAMP)); - assertEquals("getField:HOST", "HostE", content.getFieldValue(Index.HOST)); - assertEquals("getField:LOGGER", "LoggerE", content.getFieldValue(Index.LOGGER)); - assertEquals("getField:FILE", "SourceFileE", content.getFieldValue(Index.FILE)); - assertEquals("getField:LINE", "8", content.getFieldValue(Index.LINE)); - assertEquals("getField:MESSAGE", "", content.getFieldValue(Index.MESSAGE).toString()); + assertEquals("getField:HOST", "HostE", content.getFieldValue(Field.HOST)); + assertEquals("getField:LOGGER", "LoggerE", content.getFieldValue(Field.LOGGER)); + assertEquals("getField:FILE", "SourceFileE", content.getFieldValue(Field.FILE)); + assertEquals("getField:LINE", "8", content.getFieldValue(Field.LINE)); + assertEquals("getField:MESSAGE", "", content.getFieldValue(Field.MESSAGE).toString()); event = fTrace.getNext(context); content = event.getContent(); assertEquals("getTimestamp", "Jan 1 06:06:06", event.getTimestamp().toString()); - assertEquals("getField:TIMESTAMP", "Jan 1 06:06:06", content.getFieldValue(Index.TIMESTAMP)); - assertEquals("getField:HOST", "HostF", content.getFieldValue(Index.HOST)); - assertEquals("getField:LOGGER", "LoggerF", content.getFieldValue(Index.LOGGER)); - assertEquals("getField:FILE", "SourceFileF", content.getFieldValue(Index.FILE)); - assertEquals("getField:LINE", "9", content.getFieldValue(Index.LINE)); - assertEquals("getField:MESSAGE", "Message F", content.getFieldValue(Index.MESSAGE).toString()); + assertEquals("getField:HOST", "HostF", content.getFieldValue(Field.HOST)); + assertEquals("getField:LOGGER", "LoggerF", content.getFieldValue(Field.LOGGER)); + assertEquals("getField:FILE", "SourceFileF", content.getFieldValue(Field.FILE)); + assertEquals("getField:LINE", "9", content.getFieldValue(Field.LINE)); + assertEquals("getField:MESSAGE", "Message F", content.getFieldValue(Field.MESSAGE).toString()); event = fTrace.getNext(context); assertEquals("event", null, event); context.dispose(); @@ -251,17 +246,17 @@ public class TextTraceTest { double ratio = fTrace.getLocationRatio(context.getLocation()); SyslogEvent event = fTrace.getNext(context); TextTraceEventContent content = event.getContent(); - Object logger = content.getFieldValue(Index.LOGGER); + Object logger = content.getFieldValue(Field.LOGGER); context.dispose(); context = fTrace.seekEvent(ratio); event = fTrace.getNext(context); content = event.getContent(); - assertEquals("getField:LOGGER", logger.toString(), content.getFieldValue(Index.LOGGER).toString()); + assertEquals("getField:LOGGER", logger.toString(), content.getFieldValue(Field.LOGGER).toString()); context.dispose(); context = fTrace.seekEvent(0.0); event = fTrace.getNext(context); content = event.getContent(); - assertEquals("getField:LOGGER", "LoggerA", content.getFieldValue(Index.LOGGER)); + assertEquals("getField:LOGGER", "LoggerA", content.getFieldValue(Field.LOGGER)); context.dispose(); context = fTrace.seekEvent(1.0); event = fTrace.getNext(context); diff --git a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEvent.java b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEvent.java index e1f4eb1075..0822458b1e 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEvent.java +++ b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEvent.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014 Ericsson + * Copyright (c) 2014, 2015 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,6 +8,7 @@ * * Contributors: * Bernd Hufmann - Initial API and implementation + * Patrick Tasse - Move field declarations to trace *******************************************************************************/ package org.eclipse.tracecompass.tmf.tests.stubs.trace.text; @@ -24,7 +25,7 @@ import org.eclipse.tracecompass.tmf.core.event.lookup.TmfCallsite; import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp; import org.eclipse.tracecompass.tmf.core.trace.text.TextTraceEvent; import org.eclipse.tracecompass.tmf.core.trace.text.TextTraceEventContent; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType.Index; +import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogTrace.Field; /** * System log trace implementation of TmfEvent. @@ -126,11 +127,11 @@ public class SyslogEvent extends TextTraceEvent implements ITmfCollapsibleEvent, if (getContent() != null) { long lineNo = 0; try { - lineNo = Long.valueOf((String) getContent().getField(Index.LINE).getValue()); + lineNo = Long.valueOf((String) getContent().getField(Field.LINE).getValue()); } catch (NumberFormatException e) { // ignore } - return new TmfCallsite((String) getContent().getField(Index.FILE).getValue(), null, lineNo); + return new TmfCallsite((String) getContent().getField(Field.FILE).getValue(), null, lineNo); } return null; } diff --git a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEventType.java b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEventType.java index 1ee4f42d5b..b39bcfa783 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEventType.java +++ b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogEventType.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014 Ericsson + * Copyright (c) 2014, 2015 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,11 +8,11 @@ * * Contributors: * Bernd Hufmann - Initial API and implementation + * Patrick Tasse - Move field declarations to trace *******************************************************************************/ package org.eclipse.tracecompass.tmf.tests.stubs.trace.text; -import org.eclipse.tracecompass.tmf.core.event.TmfEventField; import org.eclipse.tracecompass.tmf.core.event.TmfEventType; /** @@ -22,33 +22,15 @@ public class SyslogEventType extends TmfEventType { /** The event type id string. */ public static final String TYPE_ID = "Syslog"; //$NON-NLS-1$ - /** The labels (field names) used for SA system log events. */ - @SuppressWarnings("nls") - public static final String[] LABELS = {"Timestamp", "Host", "Logger", "File", "Line", "Message"}; + /** A default instance of this class */ public static final SyslogEventType INSTANCE = new SyslogEventType(); - /** Index numbers in the array of event field names and values. */ - public interface Index { - /** Index for time stamp */ - int TIMESTAMP = 0; - /** Index for the host name */ - int HOST = 1; - /** Index for the logger name */ - int LOGGER = 2; - /** Index for the logger name */ - int FILE = 3; - /** Index for the logger name */ - int LINE = 4; - /** Index for the event message */ - int MESSAGE = 5; - } - /** * Default Constructor */ public SyslogEventType() { - super(TYPE_ID, TmfEventField.makeRoot(LABELS)); + super(TYPE_ID, null); } } diff --git a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogTrace.java b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogTrace.java index 250c364c09..967eab7ba5 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogTrace.java +++ b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/text/SyslogTrace.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014 Ericsson + * Copyright (c) 2014, 2015 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,25 +8,33 @@ * * Contributors: * Bernd Hufmann - Initial API and implementation + * Patrick Tasse - Move field declarations to trace *******************************************************************************/ package org.eclipse.tracecompass.tmf.tests.stubs.trace.text; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Collection; import java.util.Date; import java.util.GregorianCalendar; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; +import org.eclipse.tracecompass.tmf.core.event.aspect.TmfContentFieldAspect; import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp; import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimePreferences; import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp; import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat; import org.eclipse.tracecompass.tmf.core.trace.text.TextTrace; import org.eclipse.tracecompass.tmf.core.trace.text.TextTraceEventContent; -import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType.Index; + +import com.google.common.collect.ImmutableList; /** * Extension of TmfTrace for handling of system logs. @@ -47,6 +55,27 @@ public class SyslogTrace extends TextTrace { /* The current calendar to use */ private static final Calendar CURRENT = Calendar.getInstance(); + /** The event fields */ + @SuppressWarnings({"javadoc", "nls"}) + public interface Field { + @NonNull String HOST = "Host"; + @NonNull String LOGGER = "Logger"; + @NonNull String FILE = "File"; + @NonNull String LINE = "Line"; + @NonNull String MESSAGE = "Message"; + } + + /** The event aspects */ + public static final @NonNull Collection ASPECTS = + checkNotNull(ImmutableList.of( + ITmfEventAspect.BaseAspects.TIMESTAMP, + new TmfContentFieldAspect(Field.HOST, Field.HOST), + new TmfContentFieldAspect(Field.LOGGER, Field.LOGGER), + new TmfContentFieldAspect(Field.FILE, Field.FILE), + new TmfContentFieldAspect(Field.LINE, Field.LINE), + new TmfContentFieldAspect(Field.MESSAGE, Field.MESSAGE) + )); + /** * Constructor */ @@ -81,14 +110,13 @@ public class SyslogTrace extends TextTrace { timestamp = new TmfTimestamp(); } - TextTraceEventContent content = new TextTraceEventContent(SyslogEventType.LABELS); + TextTraceEventContent content = new TextTraceEventContent(5); content.setValue(new StringBuffer(line)); - content.setFieldValue(Index.TIMESTAMP, matcher.group(1)); - content.setFieldValue(Index.HOST, matcher.group(2)); - content.setFieldValue(Index.LOGGER, matcher.group(3)); - content.setFieldValue(Index.FILE, matcher.group(4)); - content.setFieldValue(Index.LINE, matcher.group(5)); - content.setFieldValue(Index.MESSAGE, new StringBuffer(matcher.group(6) != null ? matcher.group(6) : "")); //$NON-NLS-1$ + content.addField(Field.HOST, matcher.group(2)); + content.addField(Field.LOGGER, matcher.group(3)); + content.addField(Field.FILE, matcher.group(4)); + content.addField(Field.LINE, matcher.group(5)); + content.addField(Field.MESSAGE, new StringBuffer(matcher.group(6) != null ? matcher.group(6) : "")); //$NON-NLS-1$ SyslogEvent event = new SyslogEvent( this, @@ -104,7 +132,7 @@ public class SyslogTrace extends TextTrace { TextTraceEventContent content = event.getContent(); ((StringBuffer) content.getValue()).append("\n").append(line); //$NON-NLS-1$ if (line.trim().length() > 0) { - ((StringBuffer) content.getFieldValue(Index.MESSAGE)).append(SEPARATOR + line.trim()); + ((StringBuffer) content.getFieldValue(Field.MESSAGE)).append(SEPARATOR + line.trim()); } } @@ -113,4 +141,8 @@ public class SyslogTrace extends TextTrace { return new TmfTimestamp(60, ITmfTimestamp.SECOND_SCALE); } + @Override + public Iterable getEventAspects() { + return ASPECTS; + } } diff --git a/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/CollapseEventsInTableTest.java b/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/CollapseEventsInTableTest.java index 49072ad2c4..b0e29cae22 100644 --- a/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/CollapseEventsInTableTest.java +++ b/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/CollapseEventsInTableTest.java @@ -141,36 +141,46 @@ public class CollapseEventsInTableTest { menuBot.click(); fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, "7/22", 1, 1)); - String filterString = tableBot.cell(1, 1); - assertEquals("filterString", "7/22", filterString); - - /* Verify collapsed event */ - filterString = tableBot.cell(7, 0); - assertEquals("repeatCount", "+14", filterString); - - filterString = tableBot.cell(7, 1); - assertEquals("first timestamp", "Jan 1 06:06:06", filterString); - - filterString = tableBot.cell(7, 2); - assertEquals("type", "Syslog", filterString); - - filterString = tableBot.cell(7, 3); - assertEquals("content", "Timestamp=Jan 1 06:06:06, Host=HostF, Logger=LoggerF, File=SourceFile, Line=9, Message=Message F", filterString); - - filterString = tableBot.cell(8, 0); - assertEquals("repeatCount", "+1", filterString); - - filterString = tableBot.cell(8, 1); - assertEquals("first timestamp (2nd collapse)", "Jan 1 06:06:21", filterString); - - filterString = tableBot.cell(8, 3); - assertEquals("content", "Timestamp=Jan 1 06:06:21, Host=HostF, Logger=LoggerF, File=SourceFile, Line=10, Message=Message D", filterString); + String cell = tableBot.cell(1, 1); + assertEquals("filterString", "7/22", cell); + + /* Verify first collapsed event */ + cell = tableBot.cell(7, 0); + assertEquals("1st repeatCount", "+14", cell); + cell = tableBot.cell(7, 1); + assertEquals("1st Timestamp", "Jan 1 06:06:06", cell); + cell = tableBot.cell(7, 2); + assertEquals("1st Host", "HostF", cell); + cell = tableBot.cell(7, 3); + assertEquals("1st Logger", "LoggerF", cell); + cell = tableBot.cell(7, 4); + assertEquals("1st File", "SourceFile", cell); + cell = tableBot.cell(7, 5); + assertEquals("1st Line", "9", cell); + cell = tableBot.cell(7, 6); + assertEquals("1st Message", "Message F", cell); + + /* Verify second collapsed event */ + cell = tableBot.cell(8, 0); + assertEquals("2nd repeatCount", "+1", cell); + cell = tableBot.cell(8, 1); + assertEquals("2nd Timestamp", "Jan 1 06:06:21", cell); + cell = tableBot.cell(8, 2); + assertEquals("2nd Host", "HostF", cell); + cell = tableBot.cell(8, 3); + assertEquals("2nd Logger", "LoggerF", cell); + cell = tableBot.cell(8, 4); + assertEquals("2nd File", "SourceFile", cell); + cell = tableBot.cell(8, 5); + assertEquals("2nd Line", "10", cell); + cell = tableBot.cell(8, 6); + assertEquals("2nd Message", "Message D", cell); /* Clear Filter */ menuBot = tableBot.contextMenu("Clear Filters"); menuBot.click(); fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, "Jan 1 01:01:01", 1, 1)); - assertEquals("timestamp", "Jan 1 01:01:01", tableBot.cell(1, 1)); + assertEquals("Timestamp", "Jan 1 01:01:01", tableBot.cell(1, 1)); maximizeTable(tableBot); -- 2.34.1