LTTNG: Bug 436857: Keep process selection in CPU Usage tree viewer
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core.tests / src / org / eclipse / linuxtools / ctf / core / tests / io / BitBufferTest.java
CommitLineData
4bd7f2db
AM
1/*******************************************************************************
2 * Copyright (c) 2013 Ericsson
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Matthew Khouzam - Initial API and implementation
10 *******************************************************************************/
11
866e5b51
FC
12package org.eclipse.linuxtools.ctf.core.tests.io;
13
14import static org.junit.Assert.assertEquals;
15import static org.junit.Assert.assertNotNull;
16
17import java.nio.ByteBuffer;
18import java.nio.ByteOrder;
19
231c4e1f 20import org.eclipse.jdt.annotation.NonNull;
486efb2e 21import org.eclipse.linuxtools.ctf.core.event.io.BitBuffer;
4c67e724 22import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
866e5b51
FC
23import org.junit.Before;
24import org.junit.Test;
25
26/**
27 * The class <code>BitBufferTest</code> contains tests for the class
28 * <code>{@link BitBuffer}</code>.
8b8e48ed 29 *
866e5b51
FC
30 * @author ematkho
31 * @version $Revision: 1.0 $
32 */
33public class BitBufferTest {
34
35 private BitBuffer fixture;
36
866e5b51
FC
37 /**
38 * Perform pre-test initialization.
231c4e1f
MK
39 *
40 * @throws CTFReaderException
41 * An error that cannot happen (position is under 128)
866e5b51
FC
42 */
43 @Before
4c67e724 44 public void setUp() throws CTFReaderException {
91052124 45 fixture = new BitBuffer(java.nio.ByteBuffer.allocateDirect(1));
866e5b51 46 fixture.setByteOrder(ByteOrder.BIG_ENDIAN);
866e5b51
FC
47 fixture.position(1);
48 }
49
866e5b51
FC
50 /**
51 * Run the BitBuffer() constructor test.
52 */
53 @Test
54 public void testBitBuffer() {
55 BitBuffer result = new BitBuffer();
56
57 assertNotNull(result);
58 assertEquals(0, result.position());
91052124 59 assertNotNull( result.getByteBuffer());
866e5b51
FC
60 }
61
62 /**
63 * Run the BitBuffer(ByteBuffer) constructor test.
64 */
65 @Test
66 public void testBitBuffer_fromByteBuffer() {
67 ByteBuffer buf = ByteBuffer.allocate(0);
68 BitBuffer result = new BitBuffer(buf);
69
70 assertNotNull(result);
71 assertEquals(0, result.position());
72 }
73
74 /**
75 * Run the boolean canRead(int) method test.
76 */
77 @Test
78 public void testCanRead_1param() {
79 int length = 1;
80 boolean result = fixture.canRead(length);
81
91052124 82 assertEquals(true, result);
866e5b51
FC
83 }
84
866e5b51
FC
85 /**
86 * Run the void clear() method test.
87 */
88 @Test
89 public void testClear() {
90 fixture.clear();
91 }
92
93 /**
94 * Run the ByteBuffer getByteBuffer() method test.
95 */
96 @Test
97 public void testGetByteBuffer() {
98 ByteBuffer result = fixture.getByteBuffer();
99
100 assertNotNull(result);
91052124 101 assertEquals("java.nio.DirectByteBuffer[pos=0 lim=1 cap=1]", result.toString());
733c614c
MK
102 assertEquals(true, result.isDirect());
103 assertEquals(false, result.hasArray());
91052124
MK
104 assertEquals(1, result.limit());
105 assertEquals(1, result.remaining());
866e5b51 106 assertEquals(0, result.position());
91052124
MK
107 assertEquals(1, result.capacity());
108 assertEquals(true, result.hasRemaining());
866e5b51
FC
109 assertEquals(false, result.isReadOnly());
110 }
111
112 /**
113 * Run the ByteOrder getByteOrder() method test.
114 */
115 @Test
116 public void testGetByteOrder() {
117 ByteOrder result = fixture.getByteOrder();
118
119 assertNotNull(result);
4a9c1f07 120 assertEquals("BIG_ENDIAN", result.toString());
866e5b51
FC
121 }
122
123 /**
124 * Run the ByteOrder order() method test.
125 */
126 @Test
127 public void testGetOrder() {
8b8e48ed 128 ByteOrder result = fixture.getByteOrder();
866e5b51
FC
129
130 assertNotNull(result);
4a9c1f07 131 assertEquals("BIG_ENDIAN", result.toString());
866e5b51
FC
132 }
133
134 /**
135 * Run the void order(ByteOrder) method test.
136 */
137 @Test
138 public void testSetOrder() {
139 ByteOrder order = ByteOrder.BIG_ENDIAN;
140
8b8e48ed 141 fixture.setByteOrder(order);
866e5b51
FC
142 }
143
144 /**
145 * Run the int position() method test.
146 */
147 @Test
148 public void testGetPosition() {
47ca6c05 149 long result = fixture.position();
866e5b51
FC
150
151 assertEquals(1, result);
152 }
153
154 /**
155 * Run the void position(int) method test.
4c67e724
MK
156 *
157 * @throws CTFReaderException
158 * out of bounds? won't happen
866e5b51
FC
159 */
160 @Test
4c67e724 161 public void testSetPosition() throws CTFReaderException {
866e5b51
FC
162 int newPosition = 1;
163 fixture.position(newPosition);
164 }
165
866e5b51
FC
166 /**
167 * Run the void setByteOrder(ByteOrder) method test.
168 */
169 @Test
170 public void testSetByteOrder() {
171 ByteOrder byteOrder = ByteOrder.BIG_ENDIAN;
172 fixture.setByteOrder(byteOrder);
173 }
231c4e1f
MK
174
175 /**
176 * Test the get function
177 */
178 @Test
179 public void testGetBytes() {
733c614c
MK
180 @NonNull
181 byte[] data = new byte[2];
231c4e1f
MK
182 ByteBuffer bb = ByteBuffer.allocate(10);
183 bb.put((byte) 0);
184 bb.put((byte) 1);
185 bb.put((byte) 1);
186 bb.put((byte) 0);
187 fixture = new BitBuffer(bb);
188 fixture.get(data);
189 assertEquals(0, data[0]);
190 assertEquals(1, data[1]);
191 fixture.get(data);
192 assertEquals(1, data[0]);
193 assertEquals(0, data[1]);
194 }
195
196 /**
197 * Test the get function
198 *
199 * @throws CTFReaderException
200 * won't happen but we seek in a buffer
201 */
202 @Test
203 public void testGetBytesMiddle() throws CTFReaderException {
733c614c
MK
204 @NonNull
205 byte[] data = new byte[5];
231c4e1f
MK
206 // this string has been carefully selected and tested... don't change
207 // the string and expect the result to be the same.
208 ByteBuffer bb = ByteBuffer.wrap(new String("hello world").getBytes());
209 fixture = new BitBuffer(bb);
210 fixture.position(6 * 8);
211 fixture.get(data);
212 String actual = new String(data);
213 assertEquals("world", actual);
214 }
866e5b51 215}
This page took 0.055315 seconds and 5 git commands to generate.