Commit | Line | Data |
---|---|---|
6c13869b | 1 | package org.eclipse.linuxtools.lttng.core.tests.event; |
03c71d1e | 2 | |
e1ab8984 FC |
3 | import java.io.File; |
4 | import java.net.URL; | |
5 | ||
03c71d1e | 6 | import junit.framework.TestCase; |
cbd4ad82 | 7 | |
e1ab8984 FC |
8 | import org.eclipse.core.runtime.FileLocator; |
9 | import org.eclipse.core.runtime.Path; | |
5945cec9 FC |
10 | import org.eclipse.linuxtools.internal.lttng.core.event.LttngTimestamp; |
11 | import org.eclipse.linuxtools.internal.lttng.core.trace.LTTngTextTrace; | |
6c13869b | 12 | import org.eclipse.linuxtools.tmf.core.trace.TmfContext; |
9269df72 | 13 | import org.osgi.framework.FrameworkUtil; |
03c71d1e ASL |
14 | |
15 | /* | |
16 | Functions tested here : | |
a610acec FC |
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() | |
03c71d1e ASL |
28 | */ |
29 | ||
3b38ea61 | 30 | @SuppressWarnings("nls") |
03c71d1e | 31 | public class LttngTimestampTest extends TestCase { |
a610acec FC |
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 | ||
e1ab8984 | 39 | private static LTTngTextTrace testStream = null; |
a610acec | 40 | |
03c71d1e | 41 | private LTTngTextTrace initializeEventStream() { |
a610acec FC |
42 | if (testStream == null) { |
43 | try { | |
9269df72 | 44 | URL location = FileLocator.find(FrameworkUtil.getBundle(this.getClass()), new Path(tracepath1), null); |
a610acec | 45 | File testfile = new File(FileLocator.toFileURL(location).toURI()); |
0710697b | 46 | LTTngTextTrace tmpStream = new LTTngTextTrace(testfile.getName(), testfile.getPath(), skipIndexing); |
a610acec FC |
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 | } | |
e1ab8984 | 55 | |
03c71d1e ASL |
56 | private LttngTimestamp prepareToTest() { |
57 | LttngTimestamp tmpTime = null; | |
58 | ||
59 | // This trace should be valid | |
60 | try { | |
61 | LTTngTextTrace tmpStream = initializeEventStream(); | |
a610acec FC |
62 | tmpTime = (LttngTimestamp) tmpStream.getNextEvent(new TmfContext(null, 0)).getTimestamp(); |
63 | } catch (Exception e) { | |
03c71d1e ASL |
64 | fail("ERROR : Failed to get reference!"); |
65 | } | |
66 | ||
67 | return tmpTime; | |
68 | } | |
a610acec | 69 | |
03c71d1e ASL |
70 | public void testConstructors() { |
71 | LttngTimestamp tmpTime = null; | |
a610acec | 72 | |
a5ec08e5 WB |
73 | // Default construction with no argument |
74 | try { | |
75 | tmpTime = new LttngTimestamp(); | |
a610acec | 76 | } catch (Exception e) { |
a5ec08e5 WB |
77 | fail("Construction failed!"); |
78 | } | |
a610acec | 79 | |
03c71d1e ASL |
80 | // Default construction with good argument |
81 | try { | |
82 | tmpTime = new LttngTimestamp(1); | |
a610acec | 83 | } catch (Exception e) { |
03c71d1e ASL |
84 | fail("Construction failed!"); |
85 | } | |
a610acec | 86 | |
03c71d1e ASL |
87 | // Copy constructor |
88 | try { | |
89 | tmpTime = new LttngTimestamp(1); | |
f9a8715c | 90 | new LttngTimestamp(tmpTime); |
a610acec | 91 | } catch (Exception e) { |
03c71d1e ASL |
92 | fail("Construction failed!"); |
93 | } | |
94 | } | |
a610acec | 95 | |
cb866e08 FC |
96 | public void testGetter() { |
97 | LttngTimestamp tmpTime = prepareToTest(); | |
a610acec FC |
98 | |
99 | assertEquals("Time in second is wrong", firstEventTimeSecond, tmpTime.getSeconds()); | |
100 | assertEquals("Time in nano second is wrong", firstEventTimeNano, tmpTime.getNanoSeconds()); | |
101 | ||
102 | assertEquals("Full time is wrong", firstEventTimeFull, tmpTime.getValue()); | |
cb866e08 | 103 | } |
a610acec | 104 | |
cb866e08 FC |
105 | public void testSetter() { |
106 | LttngTimestamp tmpTime = prepareToTest(); | |
a610acec | 107 | |
cb866e08 FC |
108 | // We will set a time and we will make sure the set is working then |
109 | tmpTime.setValue(1); | |
a610acec | 110 | assertEquals("Full time is wrong after set", 1, tmpTime.getValue()); |
cb866e08 | 111 | } |
a610acec | 112 | |
cb866e08 FC |
113 | public void testToString() { |
114 | LttngTimestamp tmpTime = prepareToTest(); | |
a610acec | 115 | |
cb866e08 | 116 | // Just make sure toString() does not return null or the java reference |
a610acec FC |
117 | assertNotSame("toString returned null", null, tmpTime.toString()); |
118 | assertNotSame("toString is not overridded!", tmpTime.getClass().getName() + '@' + Integer.toHexString(tmpTime.hashCode()), tmpTime.toString()); | |
cb866e08 | 119 | } |
a610acec FC |
120 | |
121 | // Better test... | |
122 | public void testToString2() { | |
123 | LttngTimestamp ts1 = new LttngTimestamp(2064357056377L); | |
124 | String expectedTS1 = "2064.357056377"; | |
125 | ||
126 | LttngTimestamp ts2 = new LttngTimestamp(1L); | |
127 | String expectedTS2 = "0.000000001"; | |
128 | ||
129 | LttngTimestamp ts3 = new LttngTimestamp(123456789L); | |
130 | String expectedTS3 = "0.123456789"; | |
131 | ||
132 | LttngTimestamp ts4 = new LttngTimestamp(1234567890L); | |
133 | String expectedTS4 = "1.234567890"; | |
134 | ||
135 | assertEquals("toString()", expectedTS1, ts1.toString()); | |
136 | assertEquals("toString()", expectedTS2, ts2.toString()); | |
137 | assertEquals("toString()", expectedTS3, ts3.toString()); | |
138 | assertEquals("toString()", expectedTS4, ts4.toString()); | |
73005152 BH |
139 | |
140 | LttngTimestamp ts5 = new LttngTimestamp(2234567890L); | |
141 | LttngTimestamp delta = ts4.getDelta(ts5); | |
142 | String expectedDelta = "-1.000000000"; | |
143 | assertEquals("toString()", expectedDelta, delta.toString()); | |
a610acec | 144 | } |
03c71d1e | 145 | } |