blob: 66305d27ebc43ff59ee0e0ef962cabb2f5111f6a [file] [log] [blame]
Paul Duffine2363012015-11-30 16:20:41 +00001package com.google.caliper.runner;
2
3import static org.junit.Assert.assertFalse;
4import static org.junit.Assert.assertTrue;
5
6import com.google.caliper.Benchmark;
7import com.google.caliper.api.Macrobenchmark;
8
9import org.junit.Test;
10import org.junit.runner.RunWith;
11import org.junit.runners.JUnit4;
12
13import java.util.Arrays;
14import java.util.Collections;
15
16/**
17 * Tests {@link BenchmarkClassChecker}.
18 */
19
20@RunWith(JUnit4.class)
21public class BenchmarkClassCheckerTest {
22
23 private BenchmarkClassChecker benchmarkClassChecker =
24 BenchmarkClassChecker.create(Collections.<String>emptyList());
25
26 @Test
27 public void testNoBenchmarkMethods() {
28 assertFalse(benchmarkClassChecker.isBenchmark(Object.class));
29 }
30
31 @Test
32 public void testBenchmarkAnnotatedMethod() {
33 assertTrue(benchmarkClassChecker.isBenchmark(BenchmarkAnnotatedMethod.class));
34 }
35
36 public static class BenchmarkAnnotatedMethod {
37 @Benchmark void benchmarkMethod() {}
38 }
39
40 @Test
41 public void testMacroBenchmarkAnnotatedMethod() {
42 assertTrue(benchmarkClassChecker.isBenchmark(MacroBenchmarkAnnotatedMethod.class));
43 }
44
45 @Test
46 public void testMacroBenchmarkAnnotatedMethod_NoSuitableInstrument() {
47 benchmarkClassChecker = BenchmarkClassChecker.create(Arrays.asList("-i", "allocation"));
48 assertFalse(benchmarkClassChecker.isBenchmark(MacroBenchmarkAnnotatedMethod.class));
49 }
50
51 public static class MacroBenchmarkAnnotatedMethod {
52 @Macrobenchmark void macrobenchmarkMethod() {}
53 }
54
55 @Test
56 public void testTimeMethod() {
57 assertTrue(benchmarkClassChecker.isBenchmark(TimeMethod.class));
58 }
59
60 public static class TimeMethod {
61 public void timeMethod() {}
62 }
63}