Commit | Line | Data |
---|---|---|
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 | ||
4c9d2941 MK |
12 | package org.eclipse.linuxtools.ctf.core.tests.event; |
13 | ||
14 | import static org.junit.Assert.assertEquals; | |
0f231de2 | 15 | import static org.junit.Assert.assertFalse; |
4c9d2941 | 16 | import static org.junit.Assert.assertNotNull; |
0f231de2 | 17 | import static org.junit.Assert.assertTrue; |
4c9d2941 MK |
18 | |
19 | import java.util.Arrays; | |
0f231de2 MK |
20 | import java.util.HashMap; |
21 | import java.util.Map; | |
4c9d2941 MK |
22 | |
23 | import org.eclipse.linuxtools.ctf.core.event.CTFCallsite; | |
4c9d2941 MK |
24 | import 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 | ||
34 | public 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 | } |