blob: aff85e88ebbc9258dfc008d92c5ba9e292be01f6 [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:
* Matthew Khouzam - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.ctf.core.tests.scope;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.eclipse.tracecompass.ctf.core.event.scope.ILexicalScope;
import org.eclipse.tracecompass.ctf.core.event.scope.LexicalScope;
import org.junit.Test;
/**
* Lexical test
*
* @author Matthew Khouzam
*/
public class LexicalScopeTest {
/**
* Root test
*/
@Test
public void testRoot() {
ILexicalScope scope = ILexicalScope.ROOT;
assertNotNull(scope);
}
/**
* Test a more complex node
*/
@Test
public void testComplexNode() {
ILexicalScope scope = ILexicalScope.STREAM_EVENT_CONTEXT;
assertEquals("context", scope.getName());
assertEquals("stream.event.context", scope.getPath());
}
/**
* Test that getChild returns the same items for event headers
*/
@Test
public void testEventHeaders() {
ILexicalScope child = ILexicalScope.ROOT.getChild("event");
assertNotNull(child);
ILexicalScope scope2 = child.getChild("header");
ILexicalScope scope3 = ILexicalScope.ROOT.getChild("event.header");
assertEquals(ILexicalScope.EVENT_HEADER, scope2);
assertEquals(ILexicalScope.EVENT_HEADER, scope3);
// they should be the same
assert (ILexicalScope.EVENT_HEADER == scope2);
assertNotNull(scope2);
ILexicalScope id = scope2.getChild("id");
assertNotNull(id);
assert (ILexicalScope.EVENT_HEADER_ID == id);
ILexicalScope ts = scope2.getChild("v.timestamp");
ILexicalScope v = scope2.getChild("v");
assert (ILexicalScope.EVENT_HEADER_V_TIMESTAMP == ts);
assert (ILexicalScope.EVENT_HEADER_V == v);
assertNotNull(v);
ILexicalScope ts2 = v.getChild("timestamp");
assert (ILexicalScope.EVENT_HEADER_V_TIMESTAMP == ts2);
assertNotNull(v);
id = v.getChild("id");
assert (ILexicalScope.EVENT_HEADER_V_ID == id);
assertNotNull(v);
ILexicalScope other = v.getChild("other");
assertNull(other);
}
/**
* Test that getChild returns the same items for event headers
*/
@Test
public void testFields() {
ILexicalScope child = ILexicalScope.ROOT.getChild("fields");
assertNotNull(child);
ILexicalScope scope2 = child.getChild("_ret");
ILexicalScope scope3 = child.getChild("_tid");
ILexicalScope empty = child.getChild("other");
assertEquals(ILexicalScope.FIELDS_RET, scope2);
// they should be the same
assert (ILexicalScope.FIELDS_RET == scope2);
assertEquals(ILexicalScope.FIELDS_TID, scope3);
// they should be the same
assert (ILexicalScope.FIELDS_TID == scope2);
assertNull(empty);
}
/**
* Check contexts are not equals
*/
@Test
public void testNotEquals() {
assertNotEquals(ILexicalScope.CONTEXT, ILexicalScope.EVENT);
LexicalScope context = new LexicalScope(ILexicalScope.CONTEXT, "context");
LexicalScope otherContext = new LexicalScope(ILexicalScope.CONTEXT, "context2");
assertNotEquals(context, otherContext);
assertNotEquals(context, null);
}
/**
* Test to strings
*/
@Test
public void testGetPath() {
ILexicalScope child = ILexicalScope.ROOT.getChild("fields");
assertNotNull(child);
ILexicalScope scope2 = child.getChild("_ret");
assertNotNull(scope2);
assertEquals("fields._ret", scope2.getPath());
}
}