Rename xxx.lttng to xxx.lttng.core
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.tests / src / org / eclipse / linuxtools / lttng / tests / jni / JniTracefileTest.java
CommitLineData
03c71d1e
ASL
1
2package org.eclipse.linuxtools.lttng.tests.jni;
3
8b63111e
WB
4import junit.framework.TestCase;
5
03c71d1e
ASL
6import org.eclipse.linuxtools.lttng.jni.JniTrace;
7import org.eclipse.linuxtools.lttng.jni.JniTracefile;
9c841e9c 8import org.eclipse.linuxtools.lttng.jni.common.JniTime;
9c841e9c
WB
9import org.eclipse.linuxtools.lttng.jni.exception.JniException;
10import org.eclipse.linuxtools.lttng.jni.factory.JniTraceFactory;
86de1b08 11
03c71d1e
ASL
12/*
13 Functions tested here :
14 public JniTracefile(JniTracefile oldTracefile)
15 public JniTracefile(long newPtr) throws JniException
16
17 public int readNextEvent()
18 public int seekToTime(JniTime seekTime)
19
20 public Location requestTracefileLocation()
21
22 public boolean getIsCpuOnline()
23 public String getTracefilePath()
24 public String getTracefileName()
25 public long getCpuNumber()
26 public long getTid()
27 public long getPgid()
28 public long getCreation()
29 public long getTracePtr()
30 public long getMarkerDataPtr()
31 public int getCFileDescriptor()
32 public long getFileSize()
33 public long getBlocksNumber()
34 public boolean getIsBytesOrderReversed()
35 public boolean getIsFloatWordOrdered()
36 public long getAlignement()
37 public long getBufferHeaderSize()
38 public int getBitsOfCurrentTimestampCounter()
39 public int getBitsOfEvent()
40 public long getCurrentTimestampCounterMask()
41 public long getCurrentTimestampCounterMaskNextBit()
42 public long getEventsLost()
43 public long getSubBufferCorrupt()
44 public JniEvent getCurrentEvent()
45 public long getBufferPtr()
46 public long getBufferSize()
47 public HashMap<Integer, JniMarker> getTracefileMarkersMap()
48 public JniTrace getParentTrace()
49 public long getTracefilePtr()
50
51 public String toString()
52 public void printTracefileInformation()
53*/
54
3b38ea61 55@SuppressWarnings("nls")
03c71d1e
ASL
56public class JniTracefileTest extends TestCase
57{
58 private final static boolean printLttDebug = false;
59
1c859a36 60 private final static String tracepath1="traceset/trace-15316events_nolost_newformat";
03c71d1e
ASL
61 private final static String tracefileName1="kernel0";
62
1c859a36 63 private final static int numberOfMarkersInTracefile = 45;
03c71d1e 64
1c859a36
WB
65 private final static long firstEventTimestamp = 13589760262237L;
66 private final static long secondEventTimestamp = 13589762149621L;
67 private final static long thirdEventTimestamp = 13589762917527L;
03c71d1e 68
1c859a36
WB
69 private final static long timestampToSeekTest1 = 13589807108560L;
70 private final static long timestampAfterSeekTest1 = 13589807116344L;
03c71d1e 71
1c859a36 72 private final static long timestampToSeekLast = 13589906758692L;
03c71d1e
ASL
73
74
75 private JniTracefile prepareTracefileToTest() {
76
77 JniTracefile tmpTracefile = null;
78
79 // This trace should be valid
80 try {
a3767fd9 81 tmpTracefile = JniTraceFactory.getJniTrace(tracepath1, null, printLttDebug).requestTracefileByName(tracefileName1);
03c71d1e
ASL
82
83 }
84 catch( JniException e) { }
85
86 return tmpTracefile;
87 }
88
89
90 public void testTracefileConstructors() {
91 JniTrace testTrace = null;
9c841e9c
WB
92 @SuppressWarnings("unused")
93 JniTracefile testTracefile1 = null;
94 @SuppressWarnings("unused")
95 JniTracefile testTracefile2 = null;
03c71d1e
ASL
96
97 // This trace should be valid and will be used in test
98 try {
a3767fd9 99 testTrace = JniTraceFactory.getJniTrace(tracepath1, null, printLttDebug);
03c71d1e
ASL
100 }
101 catch( JniException e) { }
102
103 // Test constructor with pointer on a correct pointer
104 try {
9c841e9c 105 testTracefile1 = testTrace.allocateNewJniTracefile( testTrace.requestEventByName(tracefileName1).getTracefilePtr(), testTrace );
03c71d1e
ASL
106 }
107 catch( JniException e) {
108 fail("Construction with correct pointer failed!");
109 }
110
9c841e9c 111 /*
03c71d1e
ASL
112 // Test copy constructor
113 try {
114 testTracefile1 = new JniTracefile( testTrace.requestEventByName(tracefileName1).getTracefilePtr(), testTrace );
115 testTracefile2 = new JniTracefile( testTracefile1);
116 }
117 catch( JniException e) {
118 fail("Copy constructor failed!");
119 }
120 assertSame("JniTracefile name not same after using copy constructor", testTracefile1.getTracefileName() , testTracefile2.getTracefileName());
9c841e9c 121 */
03c71d1e
ASL
122
123 }
124
125 public void testGetSet() {
126
127 JniTracefile testTracefile = prepareTracefileToTest();
128
129 // Test that all Get/Set return data
130 //boolean getIsCpuOnline will always be sane...
1d1ae093 131 assertNotSame("getIsCpuOnline() failed",null, testTracefile.getIsCpuOnline() );
03c71d1e
ASL
132 assertNotSame("getTracefilePath is empty","",testTracefile.getTracefilePath() );
133 assertNotSame("getTracefileName is empty","",testTracefile.getTracefileName() );
134 assertNotSame("getCpuNumber is 0",0,testTracefile.getCpuNumber() );
135 assertNotSame("getTid is 0",0,testTracefile.getTid() );
136 assertNotSame("getPgid is 0",0,testTracefile.getPgid() );
137 assertNotSame("getCreation is 0",0,testTracefile.getCreation() );
138 assertNotSame("getTracePtr is 0",0,testTracefile.getTracePtr() );
139 assertNotSame("getMarkerDataPtr is 0",0,testTracefile.getMarkerDataPtr() );
140 assertNotSame("getCFileDescriptor is 0",0,testTracefile.getCFileDescriptor() );
141 assertNotSame("getFileSize is 0",0,testTracefile.getFileSize() );
142 assertNotSame("getBlocksNumber is 0",0,testTracefile.getBlocksNumber() );
143 //boolean getIsBytesOrderReversed will always be sane...
1d1ae093 144 assertNotSame("getIsBytesOrderReversed() failed",null, testTracefile.getIsBytesOrderReversed() );
03c71d1e 145 //boolean getIsFloatWordOrdered will always be sane...
1d1ae093 146 assertNotSame("getIsFloatWordOrdered() failed",null, testTracefile.getIsFloatWordOrdered() );
03c71d1e
ASL
147 assertNotSame("getAlignement is 0",0,testTracefile.getAlignement() );
148 assertNotSame("getBufferHeaderSize is 0",0,testTracefile.getBufferHeaderSize() );
149 assertNotSame("getBitsOfCurrentTimestampCounter is 0",0,testTracefile.getBitsOfCurrentTimestampCounter() );
150 assertNotSame("getBitsOfEvent is 0",0,testTracefile.getBitsOfEvent() );
151 assertNotSame("getCurrentTimestampCounterMask is 0",0,testTracefile.getCurrentTimestampCounterMask() );
152 assertNotSame("getCurrentTimestampCounterMaskNextBit is 0",0,testTracefile.getCurrentTimestampCounterMaskNextBit() );
153 assertNotSame("getEventsLost is 0",0,testTracefile.getEventsLost() );
154 assertNotSame("getSubBufferCorrupt is 0",0,testTracefile.getSubBufferCorrupt() );
155 // There should be at least 1 event, so it shouldn't be null
156 assertNotNull("getCurrentEvent returned null", testTracefile.getCurrentEvent() );
157
158 assertNotSame("getBufferPtr is 0",0,testTracefile.getBufferPtr() );
159 assertNotSame("getBufferSize is 0",0,testTracefile.getBufferSize() );
160
161 assertNotSame("getTracefileMarkersMap is null",null,testTracefile.getTracefileMarkersMap() );
162 // Also check that the map contain a certains number of data
163 assertSame("getTracefileMarkersMap returned an unexpected number of markers",numberOfMarkersInTracefile,testTracefile.getTracefileMarkersMap().size() );
164
165 assertNotSame("getParentTrace is null",null,testTracefile.getParentTrace() );
166
167 assertNotSame("getTracefilePtr is 0",0,testTracefile.getTracefilePtr() );
168
169 }
170
171 public void testPrintAndToString() {
172
173 JniTracefile testTracefile = prepareTracefileToTest();
174
175 // Test printTraceInformation
176 try {
177 testTracefile.printTracefileInformation();
178 }
179 catch( Exception e) {
180 fail("printTraceInformation failed!");
181 }
182
183 // Test ToString()
184 assertNotSame("toString returned empty data","",testTracefile.toString() );
185
186 }
187
188 public void testEventDisplacement() {
189
190 int readValue = -1;
191 int seekValue = -1;
192 JniTracefile testTracefile = prepareTracefileToTest();
193
194 // Test #1 readNextEvent()
195 readValue = testTracefile.readNextEvent();
196 assertSame("readNextEvent() returned error (test #1)",0,readValue);
197 assertEquals("readNextEvent() event timestamp is incoherent (test #1)",secondEventTimestamp,testTracefile.getCurrentEvent().getEventTime().getTime() );
198
199 // Test #2 readNextEvent()
200 readValue = testTracefile.readNextEvent();
201 assertSame("readNextEvent() returned error (test #1)",0,readValue);
202 assertEquals("readNextEvent() event timestamp is incoherent (test #1)",thirdEventTimestamp,testTracefile.getCurrentEvent().getEventTime().getTime() );
203
204
205 // Test #1 of seekToTime()
206 seekValue = testTracefile.seekToTime(new JniTime(timestampToSeekTest1) );
207 assertSame("seekToTime() returned error (test #1)",0,seekValue);
208 // Read SHOULD NOT be performed after a seek!
209 assertEquals("readNextEvent() event timestamp is incoherent (test #1)",timestampToSeekTest1,testTracefile.getCurrentEvent().getEventTime().getTime() );
210
211 readValue = testTracefile.readNextEvent();
212 assertEquals("readNextEvent() event timestamp is incoherent (test #1)",timestampAfterSeekTest1,testTracefile.getCurrentEvent().getEventTime().getTime() );
213
214
215 // Test #2 of seekToTime()
216 seekValue = testTracefile.seekToTime(new JniTime(timestampToSeekLast) );
217 assertSame("seekToTime() returned error (test #2)",0,seekValue);
218 // Read SHOULD NOT be performed after a seek!
219 assertEquals("readNextEvent() event timestamp is incoherent (test #2)",timestampToSeekLast,testTracefile.getCurrentEvent().getEventTime().getTime() );
220
221 // Read AFTER the last event should bring an error
222 readValue = testTracefile.readNextEvent();
223 assertNotSame("readNextEvent() AFTER last event should return error (test #2)",0,readValue);
224
225
226 // Test to see if we can seek back
227 seekValue = testTracefile.seekToTime(new JniTime(firstEventTimestamp) );
228 assertSame("seekToTime() returned error (test seek back)",0,seekValue);
229 // Read SHOULD NOT be performed after a seek!
230 assertEquals("readNextEvent() event timestamp is incoherent (test seek back)",firstEventTimestamp,testTracefile.getCurrentEvent().getEventTime().getTime() );
231
232 }
233}
This page took 0.037984 seconds and 5 git commands to generate.