Re-structure LTTng sub-project as per the Linux Tools guidelines
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.core.tests / src / org / eclipse / linuxtools / lttng / core / tests / event / LttngTimestampTest.java
1 package org.eclipse.linuxtools.lttng.core.tests.event;
2
3 import java.io.File;
4 import java.net.URL;
5
6 import junit.framework.TestCase;
7
8 import org.eclipse.core.runtime.FileLocator;
9 import org.eclipse.core.runtime.Path;
10 import org.eclipse.linuxtools.lttng.core.event.LttngTimestamp;
11 import org.eclipse.linuxtools.lttng.core.tests.LTTngCoreTestPlugin;
12 import org.eclipse.linuxtools.lttng.core.trace.LTTngTextTrace;
13 import org.eclipse.linuxtools.tmf.core.trace.TmfContext;
14
15 /*
16 Functions tested here :
17 public LttngTimestamp()
18 public LttngTimestamp(long newEventTime)
19 public LttngTimestamp(TmfTimestamp oldEventTime)
20
21 public long getValue()
22 public String getSeconds()
23 public String getNanoSeconds()
24
25 public void setValue(long newValue)
26
27 public String toString()
28 */
29
30 @SuppressWarnings("nls")
31 public class LttngTimestampTest extends TestCase {
32 private final static String tracepath1 = "traceset/trace-15316events_nolost_newformat.txt";
33 private final static boolean skipIndexing = true;
34
35 private final static String firstEventTimeSecond = "13589";
36 private final static String firstEventTimeNano = "759412128";
37 private final static long firstEventTimeFull = 13589759412128L;
38
39 private static LTTngTextTrace testStream = null;
40
41 private LTTngTextTrace initializeEventStream() {
42 if (testStream == null) {
43 try {
44 URL location = FileLocator.find(LTTngCoreTestPlugin.getPlugin().getBundle(), new Path(tracepath1), null);
45 File testfile = new File(FileLocator.toFileURL(location).toURI());
46 LTTngTextTrace tmpStream = new LTTngTextTrace(testfile.getPath(), skipIndexing);
47 testStream = tmpStream;
48 } catch (Exception e) {
49 System.out.println("ERROR : Could not open " + tracepath1);
50 testStream = null;
51 }
52 }
53 return testStream;
54 }
55
56 private LttngTimestamp prepareToTest() {
57 LttngTimestamp tmpTime = null;
58
59 // This trace should be valid
60 try {
61 LTTngTextTrace tmpStream = initializeEventStream();
62 tmpTime = (LttngTimestamp) tmpStream.getNextEvent(new TmfContext(null, 0)).getTimestamp();
63 } catch (Exception e) {
64 fail("ERROR : Failed to get reference!");
65 }
66
67 return tmpTime;
68 }
69
70 public void testConstructors() {
71 LttngTimestamp tmpTime = null;
72 @SuppressWarnings("unused")
73 LttngTimestamp tmpTime2 = null;
74
75 // Default construction with no argument
76 try {
77 tmpTime = new LttngTimestamp();
78 } catch (Exception e) {
79 fail("Construction failed!");
80 }
81
82 // Default construction with good argument
83 try {
84 tmpTime = new LttngTimestamp(1);
85 } catch (Exception e) {
86 fail("Construction failed!");
87 }
88
89 // Copy constructor
90 try {
91 tmpTime = new LttngTimestamp(1);
92 tmpTime2 = new LttngTimestamp(tmpTime);
93 } catch (Exception e) {
94 fail("Construction failed!");
95 }
96 }
97
98 public void testGetter() {
99 LttngTimestamp tmpTime = prepareToTest();
100
101 assertEquals("Time in second is wrong", firstEventTimeSecond, tmpTime.getSeconds());
102 assertEquals("Time in nano second is wrong", firstEventTimeNano, tmpTime.getNanoSeconds());
103
104 assertEquals("Full time is wrong", firstEventTimeFull, tmpTime.getValue());
105 }
106
107 public void testSetter() {
108 LttngTimestamp tmpTime = prepareToTest();
109
110 // We will set a time and we will make sure the set is working then
111 tmpTime.setValue(1);
112 assertEquals("Full time is wrong after set", 1, tmpTime.getValue());
113 }
114
115 public void testToString() {
116 LttngTimestamp tmpTime = prepareToTest();
117
118 // Just make sure toString() does not return null or the java reference
119 assertNotSame("toString returned null", null, tmpTime.toString());
120 assertNotSame("toString is not overridded!", tmpTime.getClass().getName() + '@' + Integer.toHexString(tmpTime.hashCode()), tmpTime.toString());
121 }
122
123 // Better test...
124 public void testToString2() {
125 LttngTimestamp ts1 = new LttngTimestamp(2064357056377L);
126 String expectedTS1 = "2064.357056377";
127
128 LttngTimestamp ts2 = new LttngTimestamp(1L);
129 String expectedTS2 = "0.000000001";
130
131 LttngTimestamp ts3 = new LttngTimestamp(123456789L);
132 String expectedTS3 = "0.123456789";
133
134 LttngTimestamp ts4 = new LttngTimestamp(1234567890L);
135 String expectedTS4 = "1.234567890";
136
137 assertEquals("toString()", expectedTS1, ts1.toString());
138 assertEquals("toString()", expectedTS2, ts2.toString());
139 assertEquals("toString()", expectedTS3, ts3.toString());
140 assertEquals("toString()", expectedTS4, ts4.toString());
141
142 LttngTimestamp ts5 = new LttngTimestamp(2234567890L);
143 LttngTimestamp delta = ts4.getDelta(ts5);
144 String expectedDelta = "-1.000000000";
145 assertEquals("toString()", expectedDelta, delta.toString());
146 }
147 }
This page took 0.03391 seconds and 5 git commands to generate.