lttng: Move the UST Callstack analysis to use ILttngUstEventLayout
[deliverable/tracecompass.git] / ctf / org.eclipse.tracecompass.ctf.core.tests / src / org / eclipse / tracecompass / ctf / core / tests / event / CTFCallsiteTest.java
CommitLineData
4bd7f2db 1/*******************************************************************************
0f231de2 2 * Copyright (c) 2013, 2014 Ericsson
4bd7f2db
AM
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
f357bcd4 12package org.eclipse.tracecompass.ctf.core.tests.event;
4c9d2941
MK
13
14import static org.junit.Assert.assertEquals;
0f231de2 15import static org.junit.Assert.assertFalse;
4c9d2941 16import static org.junit.Assert.assertNotNull;
0f231de2 17import static org.junit.Assert.assertTrue;
4c9d2941
MK
18
19import java.util.Arrays;
0f231de2
MK
20import java.util.HashMap;
21import java.util.Map;
4c9d2941 22
f357bcd4 23import org.eclipse.tracecompass.ctf.core.event.CTFCallsite;
4c9d2941
MK
24import org.junit.Test;
25
26/**
27 * The class <code>CTFCallsiteTest</code> contains tests for the class
28 * <code>{@link CTFCallsite}</code>.
29 *
30 * @author Matthew Khouzam
31 * @version $Revision: 1.0 $
32 */
33
34public class CTFCallsiteTest {
4c9d2941 35
4c9d2941
MK
36 private static CTFCallsite GenerateCS(long ip){
37 return new CTFCallsite("event name", "func name", ip, "file.java", 1);
38 }
39
40 /**
41 * Test the constructor
42 */
43 @Test
44 public void constructorTest(){
45 CTFCallsite cs = GenerateCS(0x01);
46 assertNotNull(cs);
47 }
0f231de2
MK
48
49 /**
50 * Test the getters
51 */
52 @Test
53 public void getterTest(){
54 CTFCallsite cs = GenerateCS(0x01);
55 assertEquals("ip", 1, cs.getIp());
56 assertEquals("ip", "event name", cs.getEventName());
57 assertEquals("ip", "file.java", cs.getFileName());
58 assertEquals("ip", "func name", cs.getFunctionName());
59 }
60
61 /**
62 * Test the hash code
63 */
64 @Test
65 public void hashCodeTest(){
66 CTFCallsite cs = GenerateCS(0x01);
67 Map<CTFCallsite, Object> test = new HashMap<>();
68 test.put(cs, new Object());
69 assertTrue(test.containsKey(cs));
70 assertTrue(test.containsKey(GenerateCS(0x01)));
71 assertFalse(test.containsKey(GenerateCS(0x02)));
72 assertFalse(test.containsKey(new CTFCallsite("event nam", "func name", 1, "file.java", 1)));
73 assertFalse(test.containsKey(new CTFCallsite("event name", "func nam", 1, "file.java", 1)));
74 assertFalse(test.containsKey(new CTFCallsite("event name", "func name", 1, "file.jav", 1)));
75 assertFalse(test.containsKey(new CTFCallsite("event name", "func name", 1, "file.java", 2)));
76 }
4c9d2941
MK
77
78 /**
79 * Test the comparator (it should sort using the IP)
80 */
81 @Test
82 public void comparatorTest(){
83 CTFCallsite cs[] = new CTFCallsite[5];
84 long vals[] = {1L, 0L, -2L, 2L, -1L};
85 for(int i = 0 ; i < 5 ; i++ ){
86 cs[i] = GenerateCS(vals[i]);
87 }
88
89 assertEquals(1, cs[0].compareTo(cs[1]));
90 assertEquals(-1, cs[1].compareTo(cs[0]));
91 assertEquals(0, cs[0].compareTo(cs[0]));
92 assertEquals(-1, cs[0].compareTo(cs[2]));
93 assertEquals(1, cs[2].compareTo(cs[0]));
94
95 Arrays.sort(cs);
96
97 assertEquals( 0L, cs[0].getIp());
98 assertEquals( 1L, cs[1].getIp());
99 assertEquals( 2L, cs[2].getIp());
100 assertEquals( -2L , cs[3].getIp());
101 assertEquals( -1L, cs[4].getIp());
102 }
103
104 /**
105 * Tests the output of a callsite toString function
106 */
107 @Test
108 public void toStringTest(){
109 CTFCallsite cs = GenerateCS(0x01);
4a9c1f07 110 assertEquals("file.java/func name:1", cs.toString());
4c9d2941 111 }
4c9d2941 112}
This page took 0.112174 seconds and 5 git commands to generate.