lttng: Move plugins to the Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.tracecompass.lttng2.control.core.tests / src / org / eclipse / linuxtools / lttng2 / control / core / tests / model / impl / ChannelInfoTest.java
CommitLineData
eb1bab5b 1/**********************************************************************
60ae41e1 2 * Copyright (c) 2012, 2014 Ericsson
b0318660 3 *
eb1bab5b
BH
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
b0318660
AM
8 *
9 * Contributors:
eb1bab5b 10 * Bernd Hufmann - Initial API and implementation
2ba3d0a1 11 * Alexandre Montplaisir - Port to JUnit4
eb1bab5b 12 **********************************************************************/
2ba3d0a1 13
8e8c0226 14package org.eclipse.linuxtools.lttng2.control.core.tests.model.impl;
eb1bab5b 15
2ba3d0a1
AM
16import static org.junit.Assert.*;
17
eb1bab5b
BH
18import java.util.LinkedList;
19import java.util.List;
20
8e8c0226
AM
21import org.eclipse.linuxtools.internal.lttng2.control.core.model.IChannelInfo;
22import org.eclipse.linuxtools.internal.lttng2.control.core.model.IEventInfo;
0ad9fc89 23import org.eclipse.linuxtools.internal.lttng2.control.core.model.TraceChannelOutputType;
8e8c0226
AM
24import org.eclipse.linuxtools.internal.lttng2.control.core.model.TraceEnablement;
25import org.eclipse.linuxtools.internal.lttng2.control.core.model.impl.BufferType;
26import org.eclipse.linuxtools.internal.lttng2.control.core.model.impl.ChannelInfo;
27import org.eclipse.linuxtools.internal.lttng2.control.core.model.impl.EventInfo;
2ba3d0a1
AM
28import org.junit.Before;
29import org.junit.Test;
eb1bab5b
BH
30
31/**
2ba3d0a1
AM
32 * The class <code>ChannelInfoTest</code> contains tests for the class
33 * <code>{@link ChannelInfo}</code>.
eb1bab5b 34 */
2ba3d0a1
AM
35public class ChannelInfoTest {
36
eb1bab5b
BH
37 // ------------------------------------------------------------------------
38 // Test data
39 // ------------------------------------------------------------------------
2ba3d0a1 40
eb1bab5b
BH
41 private IChannelInfo fChannelInfo1 = null;
42 private IChannelInfo fChannelInfo2 = null;
b0318660 43
eb1bab5b
BH
44 // ------------------------------------------------------------------------
45 // Housekeeping
46 // ------------------------------------------------------------------------
b0318660 47
eb1bab5b
BH
48 /**
49 * Perform pre-test initialization.
eb1bab5b 50 */
2ba3d0a1 51 @Before
eb1bab5b
BH
52 public void setUp() {
53 ModelImplFactory factory = new ModelImplFactory();
54 fChannelInfo1 = factory.getChannel1();
55 fChannelInfo2 = factory.getChannel2();
56 }
57
eb1bab5b
BH
58 // ------------------------------------------------------------------------
59 // Tests
60 // ------------------------------------------------------------------------
b0318660 61
eb1bab5b
BH
62 // ------------------------------------------------------------------------
63 // Constructors
64 // ------------------------------------------------------------------------
65
66 /**
67 * Run the ChannelInfo() constructor test.
eb1bab5b 68 */
2ba3d0a1 69 @Test
eb1bab5b
BH
70 public void testChannelInfo() {
71 ChannelInfo result = new ChannelInfo("test");
72 assertNotNull(result);
b0318660 73
eb1bab5b
BH
74 assertEquals("test", result.getName());
75 assertEquals(0, result.getNumberOfSubBuffers());
0ad9fc89
JRJ
76 assertEquals("unknown", result.getOutputType().getInName());
77 assertEquals(TraceChannelOutputType.UNKNOWN, result.getOutputType());
eb1bab5b
BH
78 assertEquals(false, result.isOverwriteMode());
79 assertEquals(0, result.getReadTimer());
80 assertEquals("disabled", result.getState().getInName());
81 assertEquals(0, result.getSubBufferSize());
82 assertEquals(0, result.getSwitchTimer());
e799e5f3
SD
83 assertEquals(0, result.getMaxSizeTraceFiles());
84 assertEquals(0, result.getMaxNumberTraceFiles());
6303c000 85 assertEquals(BufferType.BUFFER_TYPE_UNKNOWN, result.getBufferType());
eb1bab5b
BH
86 }
87
2ba3d0a1
AM
88 /**
89 * Test copy constructor.
90 */
91 @Test
eb1bab5b
BH
92 public void testChannelInfoCopy() {
93 ChannelInfo channelInfo = new ChannelInfo((ChannelInfo)fChannelInfo1);
b0318660 94
eb1bab5b
BH
95 assertEquals(fChannelInfo1.getName(), channelInfo.getName());
96 assertEquals(fChannelInfo1.getNumberOfSubBuffers(), channelInfo.getNumberOfSubBuffers());
97 assertEquals(fChannelInfo1.getOutputType(), channelInfo.getOutputType());
98 assertEquals(fChannelInfo1.isOverwriteMode(), channelInfo.isOverwriteMode());
99 assertEquals(fChannelInfo1.getReadTimer(), channelInfo.getReadTimer());
100 assertEquals(fChannelInfo1.getState(), channelInfo.getState());
101 assertEquals(fChannelInfo1.getSwitchTimer(), channelInfo.getSwitchTimer());
102 assertEquals(fChannelInfo1.getEvents().length, channelInfo.getEvents().length);
e799e5f3
SD
103 assertEquals(fChannelInfo1.getMaxSizeTraceFiles(), channelInfo.getMaxSizeTraceFiles());
104 assertEquals(fChannelInfo1.getMaxNumberTraceFiles(), channelInfo.getMaxNumberTraceFiles());
83051fc3 105 assertEquals(fChannelInfo1.getBufferType(), channelInfo.getBufferType());
b0318660 106
eb1bab5b
BH
107 IEventInfo[] orignalEvents = fChannelInfo1.getEvents();
108 IEventInfo[] resultEvents = channelInfo.getEvents();
109 for (int i = 0; i < orignalEvents.length; i++) {
110 assertEquals(orignalEvents[i], resultEvents[i]);
111 }
112 }
113
2ba3d0a1
AM
114 /**
115 * Test copy constructor with a null value.
116 */
117 @Test
eb1bab5b
BH
118 public void testChannelCopy2() {
119 try {
120 ChannelInfo channel = null;
121 new ChannelInfo(channel);
122 fail("null copy");
123 }
124 catch (IllegalArgumentException e) {
125 // Success
126 }
127 }
128
129 /**
130 * Run the IEventInfo[] getEvents() method test.
eb1bab5b 131 */
2ba3d0a1 132 @Test
eb1bab5b
BH
133 public void testAddAndGetEvents_1() {
134 ChannelInfo fixture = new ChannelInfo("test");
135 fixture.setSwitchTimer(1L);
136 fixture.setOverwriteMode(true);
137 fixture.setReadTimer(1L);
138 fixture.setState(TraceEnablement.DISABLED);
139 fixture.setNumberOfSubBuffers(1);
140 fixture.setOutputType("");
141 fixture.setSubBufferSize(1L);
b0318660 142
eb1bab5b
BH
143 // add an event
144 IEventInfo event = new EventInfo("event");
145 fixture.addEvent(event);
146
147 // Verify the stored events
148 IEventInfo[] result = fixture.getEvents();
149
150 assertNotNull(result);
151 assertEquals(1, result.length);
152 assertNotNull(result[0]);
153 assertTrue(event.equals(result[0]));
154 }
155
156 /**
157 * Run the long getNumberOfSubBuffers() method test.
eb1bab5b 158 */
2ba3d0a1 159 @Test
eb1bab5b
BH
160 public void testGetAndSetters() {
161 ChannelInfo fixture = new ChannelInfo("test");
162 fixture.setSwitchTimer(2L);
163 fixture.setOverwriteMode(true);
164 fixture.setReadTimer(3L);
165 fixture.setState(TraceEnablement.DISABLED);
166 fixture.setNumberOfSubBuffers(4);
167 fixture.setOutputType("splice()");
168 fixture.setSubBufferSize(1L);
e799e5f3
SD
169 fixture.setMaxSizeTraceFiles(1024);
170 fixture.setMaxNumberTraceFiles(20);
83051fc3 171 fixture.setBufferType(BufferType.BUFFER_PER_UID);
eb1bab5b
BH
172 fixture.addEvent(new EventInfo("event"));
173
174 long switchTimer = fixture.getSwitchTimer();
175 assertEquals(2L, switchTimer);
b0318660 176
eb1bab5b
BH
177 boolean mode = fixture.isOverwriteMode();
178 assertTrue(mode);
b0318660 179
eb1bab5b
BH
180 long readTimer = fixture.getReadTimer();
181 assertEquals(3L, readTimer);
b0318660 182
eb1bab5b
BH
183 TraceEnablement state = fixture.getState();
184 assertEquals("disabled", state.getInName());
b0318660 185
eb1bab5b
BH
186 long numSubBuffers = fixture.getNumberOfSubBuffers();
187 assertEquals(4, numSubBuffers);
b0318660 188
0ad9fc89 189 String outputType = fixture.getOutputType().getInName();
eb1bab5b 190 assertEquals("splice()", outputType);
b0318660 191
eb1bab5b
BH
192 long subBufferSize = fixture.getSubBufferSize();
193 assertEquals(1L, subBufferSize);
194
e799e5f3
SD
195 int maxSizeTraceFiles = fixture.getMaxSizeTraceFiles();
196 assertEquals(1024, maxSizeTraceFiles);
197
198 int maxNumberTraceFiles = fixture.getMaxNumberTraceFiles();
199 assertEquals(20, maxNumberTraceFiles);
200
83051fc3
BH
201 BufferType bufferType = fixture.getBufferType();
202 assertTrue(bufferType == BufferType.BUFFER_PER_UID);
e799e5f3 203
eb1bab5b
BH
204 fixture.setSwitchTimer(5L);
205 fixture.setOverwriteMode(false);
206 fixture.setReadTimer(6L);
207 fixture.setState(TraceEnablement.ENABLED);
208 fixture.setNumberOfSubBuffers(7);
209 fixture.setOutputType("mmap()");
210 fixture.setSubBufferSize(8L);
e799e5f3
SD
211 fixture.setMaxSizeTraceFiles(4096);
212 fixture.setMaxNumberTraceFiles(10);
83051fc3 213 fixture.setBufferType(BufferType.BUFFER_PER_PID);
eb1bab5b
BH
214
215 switchTimer = fixture.getSwitchTimer();
216 assertEquals(5L, switchTimer);
b0318660 217
eb1bab5b
BH
218 mode = fixture.isOverwriteMode();
219 assertFalse(mode);
b0318660 220
eb1bab5b
BH
221 readTimer = fixture.getReadTimer();
222 assertEquals(6L, readTimer);
b0318660 223
eb1bab5b
BH
224 state = fixture.getState();
225 assertEquals("enabled", state.getInName());
b0318660 226
eb1bab5b
BH
227 numSubBuffers = fixture.getNumberOfSubBuffers();
228 assertEquals(7, numSubBuffers);
b0318660 229
0ad9fc89 230 outputType = fixture.getOutputType().getInName();
eb1bab5b 231 assertEquals("mmap()", outputType);
b0318660 232
eb1bab5b
BH
233 subBufferSize = fixture.getSubBufferSize();
234 assertEquals(8L, subBufferSize);
e799e5f3
SD
235
236 maxSizeTraceFiles = fixture.getMaxSizeTraceFiles();
237 assertEquals(4096, maxSizeTraceFiles);
238
239 maxNumberTraceFiles = fixture.getMaxNumberTraceFiles();
240 assertEquals(10, maxNumberTraceFiles);
241
83051fc3
BH
242 bufferType = fixture.getBufferType();
243 assertTrue(bufferType == BufferType.BUFFER_PER_PID);
eb1bab5b
BH
244 }
245
246 /**
247 * Run the void setEvents(List<IEventInfo>) method test.
eb1bab5b 248 */
2ba3d0a1 249 @Test
eb1bab5b
BH
250 public void testSetEvents_1() {
251 ChannelInfo fixture = new ChannelInfo("test");
252 fixture.setSwitchTimer(1L);
253 fixture.setOverwriteMode(true);
254 fixture.setReadTimer(1L);
255 fixture.setState(TraceEnablement.DISABLED);
256 fixture.setNumberOfSubBuffers(1);
257 fixture.setOutputType("");
258 fixture.setSubBufferSize(1L);
e0838ca1 259 List<IEventInfo> events = new LinkedList<>();
b0318660 260
eb1bab5b
BH
261 for (int i = 0; i < 2; i++) {
262 IEventInfo info = new EventInfo("event" + i);
263 info.setEventType("tracepoint");
264 info.setState((i % 2 == 0 ? "enabled" : "disabled"));
265 events.add(info);
266 }
267
268 fixture.setEvents(events);
269
270 IEventInfo[] infos = fixture.getEvents();
b0318660 271
eb1bab5b 272 assertEquals(events.size(), infos.length);
b0318660 273
eb1bab5b
BH
274 for (int i = 0; i < infos.length; i++) {
275 assertEquals(events.get(i), infos[i]);
276 }
277 }
278
2ba3d0a1
AM
279 /**
280 * Run the String toString() method test.
281 */
282 @Test
eb1bab5b
BH
283 public void testToString_1() {
284 ChannelInfo fixture = new ChannelInfo("channel");
285 fixture.setSwitchTimer(1L);
286 fixture.setOverwriteMode(true);
287 fixture.setReadTimer(1L);
288 fixture.setState(TraceEnablement.DISABLED);
289 fixture.setNumberOfSubBuffers(1);
290 fixture.setOutputType("splice()");
291 fixture.setSubBufferSize(1L);
292
293 String result = fixture.toString();
294
295 // add additional test code here
296 assertEquals("[ChannelInfo([TraceInfo(Name=channel)],State=DISABLED,OverwriteMode=true,SubBuffersSize=1,NumberOfSubBuffers=1,SwitchTimer=1,ReadTimer=1,output=splice(),Events=None)]", result);
297 }
298
299 /**
2ba3d0a1 300 * Run another String toString() method test.
eb1bab5b 301 */
2ba3d0a1 302 @Test
eb1bab5b
BH
303 public void testToString_2() {
304 String result = fChannelInfo1.toString();
305
306 // add additional test code here
54f2dcc0 307 assertEquals("[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice(),Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED,levelType=LOGLEVEL_ONLY)])]", result);
eb1bab5b 308 }
b0318660 309
eb1bab5b
BH
310 // ------------------------------------------------------------------------
311 // equals
312 // ------------------------------------------------------------------------
313
2ba3d0a1
AM
314 /**
315 * Run the equals() method test.
316 */
317 @Test
eb1bab5b
BH
318 public void testEqualsReflexivity() {
319 assertTrue("equals", fChannelInfo1.equals(fChannelInfo1));
320 assertTrue("equals", fChannelInfo2.equals(fChannelInfo2));
321
322 assertTrue("equals", !fChannelInfo1.equals(fChannelInfo2));
323 assertTrue("equals", !fChannelInfo2.equals(fChannelInfo1));
324 }
b0318660 325
2ba3d0a1
AM
326 /**
327 * Run the equals() method test.
328 */
329 @Test
eb1bab5b
BH
330 public void testEqualsSymmetry() {
331 ChannelInfo event1 = new ChannelInfo((ChannelInfo)fChannelInfo1);
332 ChannelInfo event2 = new ChannelInfo((ChannelInfo)fChannelInfo2);
333
334 assertTrue("equals", event1.equals(fChannelInfo1));
335 assertTrue("equals", fChannelInfo1.equals(event1));
336
337 assertTrue("equals", event2.equals(fChannelInfo2));
338 assertTrue("equals", fChannelInfo2.equals(event2));
339 }
b0318660 340
2ba3d0a1
AM
341 /**
342 * Run the equals() method test.
343 */
344 @Test
eb1bab5b
BH
345 public void testEqualsTransivity() {
346 ChannelInfo channel1 = new ChannelInfo((ChannelInfo)fChannelInfo1);
347 ChannelInfo channel2 = new ChannelInfo((ChannelInfo)fChannelInfo1);
348 ChannelInfo channel3 = new ChannelInfo((ChannelInfo)fChannelInfo1);
349
350 assertTrue("equals", channel1.equals(channel2));
351 assertTrue("equals", channel2.equals(channel3));
352 assertTrue("equals", channel1.equals(channel3));
353 }
b0318660 354
2ba3d0a1
AM
355 /**
356 * Run the equals() method test.
357 */
358 @Test
ea21cd65 359 public void testEqualsNull() {
eb1bab5b
BH
360 assertTrue("equals", !fChannelInfo1.equals(null));
361 assertTrue("equals", !fChannelInfo2.equals(null));
362 }
b0318660 363
eb1bab5b
BH
364 // ------------------------------------------------------------------------
365 // hashCode
366 // ------------------------------------------------------------------------
367
2ba3d0a1
AM
368 /**
369 * Run the hashCode() method test.
370 */
371 @Test
eb1bab5b
BH
372 public void testHashCode() {
373 ChannelInfo channel1 = new ChannelInfo((ChannelInfo)fChannelInfo1);
374 ChannelInfo channel2 = new ChannelInfo((ChannelInfo)fChannelInfo2);
375
376 assertTrue("hashCode", fChannelInfo1.hashCode() == channel1.hashCode());
377 assertTrue("hashCode", fChannelInfo2.hashCode() == channel2.hashCode());
378
379 assertTrue("hashCode", fChannelInfo1.hashCode() != channel2.hashCode());
380 assertTrue("hashCode", fChannelInfo2.hashCode() != channel1.hashCode());
381 }
382}
This page took 0.065979 seconds and 5 git commands to generate.