View Javadoc

1   /**
2    * Copyright (c) 2012, University of Konstanz, Distributed Systems Group
3    * All rights reserved.
4    * 
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    * * Redistributions of source code must retain the above copyright
8    * notice, this list of conditions and the following disclaimer.
9    * * Redistributions in binary form must reproduce the above copyright
10   * notice, this list of conditions and the following disclaimer in the
11   * documentation and/or other materials provided with the distribution.
12   * * Neither the name of the University of Konstanz nor the
13   * names of its contributors may be used to endorse or promote products
14   * derived from this software without specific prior written permission.
15   * 
16   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19   * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
20   * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26   */
27  package org.perfidix.annotation;
28  
29  import java.lang.annotation.ElementType;
30  import java.lang.annotation.Retention;
31  import java.lang.annotation.RetentionPolicy;
32  import java.lang.annotation.Target;
33  
34  /**
35   * This Annotation marks a simple bench. Each Method annotated with <code>Bench</code> is executed by
36   * perfidix.
37   * 
38   * @author Sebastian Graf, University of Konstanz
39   */
40  
41  @Retention(RetentionPolicy.RUNTIME)
42  @Target(ElementType.METHOD)
43  public @interface Bench {
44  
45      /**
46       * Constant for NONE_RUN_Counter
47       */
48      final static int NONE_RUN = -1;
49  
50      /**
51       * Parameter of the method which works as a setUp-like, but just once for
52       * all runs. For more information to setUp, look at JUnit.
53       */
54      String beforeFirstRun() default "";
55  
56      /**
57       * Parameter of the method which works as a tearDown-like, but just once for
58       * all runs. For more information to setUp, look at JUnit.
59       */
60      String afterLastRun() default "";
61  
62      /**
63       * Parameter of the method which works as a setUp-like. For more information
64       * to setUp, look at JUnit.
65       */
66      String beforeEachRun() default "";
67  
68      /**
69       * Parameter of the method which works as a tearDown-like. For more
70       * information to setUp, look at JUnit.
71       */
72      String afterEachRun() default "";
73  
74      /**
75       * Parameter for the number of runs of this bench.
76       */
77      int runs() default NONE_RUN;
78  
79  }