comparison truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/CoverageTrackerTest.java @ 22219:1c0f490984d5

Merge with f47b601edbc626dcfe8b3636933b4834c89f7779
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Wed, 16 Sep 2015 15:36:22 -0700
parents dc83cc1f94f2 3aad794eec0e
children 20380d1d41f2
comparison
equal deleted inserted replaced
22160:0599e2df6a9f 22219:1c0f490984d5
22 * or visit www.oracle.com if you need additional information or have any 22 * or visit www.oracle.com if you need additional information or have any
23 * questions. 23 * questions.
24 */ 24 */
25 package com.oracle.truffle.tools.test; 25 package com.oracle.truffle.tools.test;
26 26
27 import static com.oracle.truffle.tools.test.TestNodes.createExpr13TestRootNode;
28 import static org.junit.Assert.assertEquals;
29 import static org.junit.Assert.assertNotNull;
30 import static org.junit.Assert.assertNull;
31 import static org.junit.Assert.assertTrue;
32
33 import org.junit.Test;
34
35 import com.oracle.truffle.api.instrument.Instrumenter;
27 import com.oracle.truffle.api.instrument.Probe; 36 import com.oracle.truffle.api.instrument.Probe;
28 import com.oracle.truffle.api.instrument.StandardSyntaxTag; 37 import com.oracle.truffle.api.instrument.StandardSyntaxTag;
29 import com.oracle.truffle.api.nodes.Node; 38 import com.oracle.truffle.api.nodes.Node;
30 import com.oracle.truffle.api.nodes.RootNode; 39 import com.oracle.truffle.api.nodes.RootNode;
31 import com.oracle.truffle.tools.CoverageTracker; 40 import com.oracle.truffle.tools.CoverageTracker;
32 import static com.oracle.truffle.tools.test.TestNodes.createExpr13TestRootNode;
33 import static org.junit.Assert.assertEquals;
34 import static org.junit.Assert.assertNotNull;
35 import static org.junit.Assert.assertNull;
36 import static org.junit.Assert.assertTrue;
37 import org.junit.Test;
38 41
39 public class CoverageTrackerTest { 42 public class CoverageTrackerTest {
40 43
41 @Test 44 @Test
42 public void testNoExecution() { 45 public void testNoExecution() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
46 final Instrumenter instrumenter = TestNodes.createInstrumenter();
43 final CoverageTracker tool = new CoverageTracker(); 47 final CoverageTracker tool = new CoverageTracker();
44 assertEquals(tool.getCounts().entrySet().size(), 0); 48 assertEquals(tool.getCounts().entrySet().size(), 0);
45 tool.install(); 49 tool.install(instrumenter);
46 assertEquals(tool.getCounts().entrySet().size(), 0); 50 assertEquals(tool.getCounts().entrySet().size(), 0);
47 tool.setEnabled(false); 51 tool.setEnabled(false);
48 assertEquals(tool.getCounts().entrySet().size(), 0); 52 assertEquals(tool.getCounts().entrySet().size(), 0);
49 tool.setEnabled(true); 53 tool.setEnabled(true);
50 assertEquals(tool.getCounts().entrySet().size(), 0); 54 assertEquals(tool.getCounts().entrySet().size(), 0);
53 tool.dispose(); 57 tool.dispose();
54 assertEquals(tool.getCounts().entrySet().size(), 0); 58 assertEquals(tool.getCounts().entrySet().size(), 0);
55 } 59 }
56 60
57 @Test 61 @Test
58 public void testToolCreatedTooLate() { 62 public void testToolCreatedTooLate() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
59 final RootNode expr13rootNode = createExpr13TestRootNode(); 63 final Instrumenter instrumenter = TestNodes.createInstrumenter();
64 final RootNode expr13rootNode = TestNodes.createExpr13TestRootNode(instrumenter);
60 final CoverageTracker tool = new CoverageTracker(); 65 final CoverageTracker tool = new CoverageTracker();
61 tool.install(); 66 tool.install(instrumenter);
62 assertEquals(13, expr13rootNode.execute(null)); 67 assertEquals(13, expr13rootNode.execute(null));
63 assertTrue(tool.getCounts().isEmpty()); 68 assertTrue(tool.getCounts().isEmpty());
64 tool.dispose(); 69 tool.dispose();
65 } 70 }
66 71
67 @Test 72 @Test
68 public void testToolInstalledcTooLate() { 73 public void testToolInstalledcTooLate() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
74 final Instrumenter instrumenter = TestNodes.createInstrumenter();
69 final CoverageTracker tool = new CoverageTracker(); 75 final CoverageTracker tool = new CoverageTracker();
70 final RootNode expr13rootNode = createExpr13TestRootNode(); 76 final RootNode expr13rootNode = createExpr13TestRootNode(instrumenter);
71 tool.install(); 77 tool.install(instrumenter);
72 assertEquals(13, expr13rootNode.execute(null)); 78 assertEquals(13, expr13rootNode.execute(null));
73 assertTrue(tool.getCounts().isEmpty()); 79 assertTrue(tool.getCounts().isEmpty());
74 tool.dispose(); 80 tool.dispose();
75 } 81 }
76 82
77 @Test 83 @Test
78 public void testCountingCoverage() { 84 public void testCountingCoverage() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
85 final Instrumenter instrumenter = TestNodes.createInstrumenter();
79 final CoverageTracker tool = new CoverageTracker(); 86 final CoverageTracker tool = new CoverageTracker();
80 tool.install(); 87 tool.install(instrumenter);
81 final RootNode expr13rootNode = createExpr13TestRootNode(); 88 final RootNode expr13rootNode = createExpr13TestRootNode(instrumenter);
82 89
83 // Not probed yet. 90 // Not probed yet.
84 assertEquals(13, expr13rootNode.execute(null)); 91 assertEquals(13, expr13rootNode.execute(null));
85 assertTrue(tool.getCounts().isEmpty()); 92 assertTrue(tool.getCounts().isEmpty());
86 93
87 final Node addNode = expr13rootNode.getChildren().iterator().next(); 94 final Node addNode = expr13rootNode.getChildren().iterator().next();
88 final Probe probe = addNode.probe(); 95 final Probe probe = instrumenter.probe(addNode);
89 96
90 // Probed but not tagged yet. 97 // Probed but not tagged yet.
91 assertEquals(13, expr13rootNode.execute(null)); 98 assertEquals(13, expr13rootNode.execute(null));
92 assertTrue(tool.getCounts().isEmpty()); 99 assertTrue(tool.getCounts().isEmpty());
93 100