| /******************************************************************************* |
| * 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 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.types; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| |
| import java.nio.ByteBuffer; |
| import java.nio.ByteOrder; |
| |
| import org.eclipse.jdt.annotation.NonNull; |
| import org.eclipse.tracecompass.ctf.core.CTFException; |
| import org.eclipse.tracecompass.ctf.core.event.io.BitBuffer; |
| import org.eclipse.tracecompass.ctf.core.event.scope.IDefinitionScope; |
| import org.eclipse.tracecompass.ctf.core.event.types.Encoding; |
| import org.eclipse.tracecompass.ctf.core.event.types.IntegerDeclaration; |
| import org.eclipse.tracecompass.ctf.core.event.types.IntegerDefinition; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * The class <code>IntegerDefinitionTest</code> contains tests for the class |
| * <code>{@link IntegerDefinition}</code>. |
| * |
| * @author ematkho |
| * @version $Revision: 1.0 $ |
| */ |
| public class IntegerDefinitionTest { |
| |
| private IntegerDefinition fixture; |
| @NonNull private static final String NAME = "testInt"; |
| @NonNull private static final String clockName = "clock"; |
| |
| /** |
| * Perform pre-test initialization. |
| * |
| * @throws CTFException |
| * won't happen |
| */ |
| @Before |
| public void setUp() throws CTFException { |
| IntegerDeclaration id = IntegerDeclaration.createDeclaration(1, false, 1, ByteOrder.BIG_ENDIAN, Encoding.NONE, clockName, 8); |
| ByteBuffer byb = ByteBuffer.allocate(128); |
| byb.mark(); |
| byb.putInt(1); |
| byb.reset(); |
| BitBuffer bb = new BitBuffer(byb); |
| fixture = id.createDefinition(null, NAME, bb); |
| } |
| |
| /** |
| * Run the IntegerDefinition(IntegerDeclaration,DefinitionScope,String) |
| * constructor test. |
| */ |
| @Test |
| public void testIntegerDefinition() { |
| IntegerDeclaration declaration = IntegerDeclaration.createDeclaration(1, false, 1, |
| ByteOrder.BIG_ENDIAN, Encoding.ASCII, "", 8); |
| IDefinitionScope definitionScope = null; |
| String fieldName = ""; |
| |
| IntegerDefinition result = new IntegerDefinition(declaration, |
| definitionScope, fieldName, 1); |
| assertNotNull(result); |
| } |
| |
| /** |
| * Run the IntegerDeclaration getDeclaration() method test. |
| */ |
| @Test |
| public void testGetDeclaration() { |
| IntegerDeclaration result = fixture.getDeclaration(); |
| assertNotNull(result); |
| } |
| |
| /** |
| * Run the long getValue() method test. |
| */ |
| @Test |
| public void testGetValue() { |
| long result = fixture.getValue(); |
| assertEquals(0L, result); |
| } |
| |
| /** |
| * Run the String toString() method test. |
| */ |
| @Test |
| public void testToString() { |
| String result = fixture.toString(); |
| assertEquals("0", result); |
| } |
| |
| /** |
| * Run the IntegerDefinition formatNumber(Long, int, boolean) method test |
| * for unsigned values. |
| */ |
| @Test |
| public void testFormatNumber_unsignedLong() { |
| |
| long unsignedLongValue = -64; |
| String result = IntegerDefinition.formatNumber(unsignedLongValue, 10, false); |
| // -64 + 2^64 = 18446744073709551552 |
| assertEquals("18446744073709551552", result); |
| |
| unsignedLongValue = -131940199973272L; |
| result = IntegerDefinition.formatNumber(unsignedLongValue, 10, false); |
| // -131940199973272l + 2^64 = 18446612133509578344 |
| assertEquals("18446612133509578344", result); |
| |
| unsignedLongValue = 123456789L; |
| result = IntegerDefinition.formatNumber(unsignedLongValue, 10, false); |
| assertEquals("123456789", result); |
| } |
| |
| /** |
| * Run the IntegerDefinition formatNumber(Long, int, boolean) method test |
| * for signed values. |
| */ |
| @Test |
| public void testFormatNumber_signedLong() { |
| long signedValue = -64L; |
| String result = IntegerDefinition.formatNumber(signedValue, 10, true); |
| assertEquals("-64", result); |
| |
| signedValue = -131940199973272L; |
| result = IntegerDefinition.formatNumber(signedValue, 10, true); |
| assertEquals("-131940199973272", result); |
| |
| signedValue = 123456789L; |
| result = IntegerDefinition.formatNumber(signedValue, 10, true); |
| assertEquals("123456789", result); |
| } |
| } |