This file is indexed.

/usr/share/doc/junit4/api/src-html/org/junit/runner/notification/RunListener.html is in junit4-doc 4.12-6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>package org.junit.runner.notification;<a name="line.1"></a>
<span class="sourceLineNo">002</span><a name="line.2"></a>
<span class="sourceLineNo">003</span>import java.lang.annotation.Documented;<a name="line.3"></a>
<span class="sourceLineNo">004</span>import java.lang.annotation.ElementType;<a name="line.4"></a>
<span class="sourceLineNo">005</span>import java.lang.annotation.Retention;<a name="line.5"></a>
<span class="sourceLineNo">006</span>import java.lang.annotation.RetentionPolicy;<a name="line.6"></a>
<span class="sourceLineNo">007</span>import java.lang.annotation.Target;<a name="line.7"></a>
<span class="sourceLineNo">008</span><a name="line.8"></a>
<span class="sourceLineNo">009</span>import org.junit.runner.Description;<a name="line.9"></a>
<span class="sourceLineNo">010</span>import org.junit.runner.Result;<a name="line.10"></a>
<span class="sourceLineNo">011</span><a name="line.11"></a>
<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
<span class="sourceLineNo">013</span> * Register an instance of this class with {@link RunNotifier} to be notified<a name="line.13"></a>
<span class="sourceLineNo">014</span> * of events that occur during a test run. All of the methods in this class<a name="line.14"></a>
<span class="sourceLineNo">015</span> * are abstract and have no implementation; override one or more methods to<a name="line.15"></a>
<span class="sourceLineNo">016</span> * receive events.<a name="line.16"></a>
<span class="sourceLineNo">017</span> * &lt;p&gt;<a name="line.17"></a>
<span class="sourceLineNo">018</span> * For example, suppose you have a &lt;code&gt;Cowbell&lt;/code&gt;<a name="line.18"></a>
<span class="sourceLineNo">019</span> * class that you want to make a noise whenever a test fails. You could write:<a name="line.19"></a>
<span class="sourceLineNo">020</span> * &lt;pre&gt;<a name="line.20"></a>
<span class="sourceLineNo">021</span> * public class RingingListener extends RunListener {<a name="line.21"></a>
<span class="sourceLineNo">022</span> *    public void testFailure(Failure failure) {<a name="line.22"></a>
<span class="sourceLineNo">023</span> *       Cowbell.ring();<a name="line.23"></a>
<span class="sourceLineNo">024</span> *    }<a name="line.24"></a>
<span class="sourceLineNo">025</span> * }<a name="line.25"></a>
<span class="sourceLineNo">026</span> * &lt;/pre&gt;<a name="line.26"></a>
<span class="sourceLineNo">027</span> * &lt;p&gt;<a name="line.27"></a>
<span class="sourceLineNo">028</span> * To invoke your listener, you need to run your tests through &lt;code&gt;JUnitCore&lt;/code&gt;.<a name="line.28"></a>
<span class="sourceLineNo">029</span> * &lt;pre&gt;<a name="line.29"></a>
<span class="sourceLineNo">030</span> * public void main(String... args) {<a name="line.30"></a>
<span class="sourceLineNo">031</span> *    JUnitCore core= new JUnitCore();<a name="line.31"></a>
<span class="sourceLineNo">032</span> *    core.addListener(new RingingListener());<a name="line.32"></a>
<span class="sourceLineNo">033</span> *    core.run(MyTestClass.class);<a name="line.33"></a>
<span class="sourceLineNo">034</span> * }<a name="line.34"></a>
<span class="sourceLineNo">035</span> * &lt;/pre&gt;<a name="line.35"></a>
<span class="sourceLineNo">036</span> * &lt;p&gt;<a name="line.36"></a>
<span class="sourceLineNo">037</span> * If a listener throws an exception for a test event, the other listeners will<a name="line.37"></a>
<span class="sourceLineNo">038</span> * have their {@link RunListener#testFailure(Failure)} called with a {@code Description}<a name="line.38"></a>
<span class="sourceLineNo">039</span> * of {@link Description#TEST_MECHANISM} to indicate the failure.<a name="line.39"></a>
<span class="sourceLineNo">040</span> * &lt;p&gt;<a name="line.40"></a>
<span class="sourceLineNo">041</span> * By default, JUnit will synchronize calls to your listener. If your listener<a name="line.41"></a>
<span class="sourceLineNo">042</span> * is thread-safe and you want to allow JUnit to call your listener from<a name="line.42"></a>
<span class="sourceLineNo">043</span> * multiple threads when tests are run in parallel, you can annotate your<a name="line.43"></a>
<span class="sourceLineNo">044</span> * test class with {@link RunListener.ThreadSafe}.<a name="line.44"></a>
<span class="sourceLineNo">045</span> * &lt;p&gt;<a name="line.45"></a>
<span class="sourceLineNo">046</span> * Listener methods will be called from the same thread as is running<a name="line.46"></a>
<span class="sourceLineNo">047</span> * the test, unless otherwise indicated by the method Javadoc<a name="line.47"></a>
<span class="sourceLineNo">048</span> *<a name="line.48"></a>
<span class="sourceLineNo">049</span> * @see org.junit.runner.JUnitCore<a name="line.49"></a>
<span class="sourceLineNo">050</span> * @since 4.0<a name="line.50"></a>
<span class="sourceLineNo">051</span> */<a name="line.51"></a>
<span class="sourceLineNo">052</span>public class RunListener {<a name="line.52"></a>
<span class="sourceLineNo">053</span><a name="line.53"></a>
<span class="sourceLineNo">054</span>    /**<a name="line.54"></a>
<span class="sourceLineNo">055</span>     * Called before any tests have been run. This may be called on an<a name="line.55"></a>
<span class="sourceLineNo">056</span>     * arbitrary thread.<a name="line.56"></a>
<span class="sourceLineNo">057</span>     *<a name="line.57"></a>
<span class="sourceLineNo">058</span>     * @param description describes the tests to be run<a name="line.58"></a>
<span class="sourceLineNo">059</span>     */<a name="line.59"></a>
<span class="sourceLineNo">060</span>    public void testRunStarted(Description description) throws Exception {<a name="line.60"></a>
<span class="sourceLineNo">061</span>    }<a name="line.61"></a>
<span class="sourceLineNo">062</span><a name="line.62"></a>
<span class="sourceLineNo">063</span>    /**<a name="line.63"></a>
<span class="sourceLineNo">064</span>     * Called when all tests have finished. This may be called on an<a name="line.64"></a>
<span class="sourceLineNo">065</span>     * arbitrary thread.<a name="line.65"></a>
<span class="sourceLineNo">066</span>     *<a name="line.66"></a>
<span class="sourceLineNo">067</span>     * @param result the summary of the test run, including all the tests that failed<a name="line.67"></a>
<span class="sourceLineNo">068</span>     */<a name="line.68"></a>
<span class="sourceLineNo">069</span>    public void testRunFinished(Result result) throws Exception {<a name="line.69"></a>
<span class="sourceLineNo">070</span>    }<a name="line.70"></a>
<span class="sourceLineNo">071</span><a name="line.71"></a>
<span class="sourceLineNo">072</span>    /**<a name="line.72"></a>
<span class="sourceLineNo">073</span>     * Called when an atomic test is about to be started.<a name="line.73"></a>
<span class="sourceLineNo">074</span>     *<a name="line.74"></a>
<span class="sourceLineNo">075</span>     * @param description the description of the test that is about to be run<a name="line.75"></a>
<span class="sourceLineNo">076</span>     * (generally a class and method name)<a name="line.76"></a>
<span class="sourceLineNo">077</span>     */<a name="line.77"></a>
<span class="sourceLineNo">078</span>    public void testStarted(Description description) throws Exception {<a name="line.78"></a>
<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
<span class="sourceLineNo">080</span><a name="line.80"></a>
<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
<span class="sourceLineNo">082</span>     * Called when an atomic test has finished, whether the test succeeds or fails.<a name="line.82"></a>
<span class="sourceLineNo">083</span>     *<a name="line.83"></a>
<span class="sourceLineNo">084</span>     * @param description the description of the test that just ran<a name="line.84"></a>
<span class="sourceLineNo">085</span>     */<a name="line.85"></a>
<span class="sourceLineNo">086</span>    public void testFinished(Description description) throws Exception {<a name="line.86"></a>
<span class="sourceLineNo">087</span>    }<a name="line.87"></a>
<span class="sourceLineNo">088</span><a name="line.88"></a>
<span class="sourceLineNo">089</span>    /**<a name="line.89"></a>
<span class="sourceLineNo">090</span>     * Called when an atomic test fails, or when a listener throws an exception.<a name="line.90"></a>
<span class="sourceLineNo">091</span>     *<a name="line.91"></a>
<span class="sourceLineNo">092</span>     * &lt;p&gt;In the case of a failure of an atomic test, this method will be called<a name="line.92"></a>
<span class="sourceLineNo">093</span>     * with the same {@code Description} passed to<a name="line.93"></a>
<span class="sourceLineNo">094</span>     * {@link #testStarted(Description)}, from the same thread that called<a name="line.94"></a>
<span class="sourceLineNo">095</span>     * {@link #testStarted(Description)}.<a name="line.95"></a>
<span class="sourceLineNo">096</span>     *<a name="line.96"></a>
<span class="sourceLineNo">097</span>     * &lt;p&gt;In the case of a listener throwing an exception, this will be called with<a name="line.97"></a>
<span class="sourceLineNo">098</span>     * a {@code Description} of {@link Description#TEST_MECHANISM}, and may be called<a name="line.98"></a>
<span class="sourceLineNo">099</span>     * on an arbitrary thread.<a name="line.99"></a>
<span class="sourceLineNo">100</span>     *<a name="line.100"></a>
<span class="sourceLineNo">101</span>     * @param failure describes the test that failed and the exception that was thrown<a name="line.101"></a>
<span class="sourceLineNo">102</span>     */<a name="line.102"></a>
<span class="sourceLineNo">103</span>    public void testFailure(Failure failure) throws Exception {<a name="line.103"></a>
<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
<span class="sourceLineNo">105</span><a name="line.105"></a>
<span class="sourceLineNo">106</span>    /**<a name="line.106"></a>
<span class="sourceLineNo">107</span>     * Called when an atomic test flags that it assumes a condition that is<a name="line.107"></a>
<span class="sourceLineNo">108</span>     * false<a name="line.108"></a>
<span class="sourceLineNo">109</span>     *<a name="line.109"></a>
<span class="sourceLineNo">110</span>     * @param failure describes the test that failed and the<a name="line.110"></a>
<span class="sourceLineNo">111</span>     * {@link org.junit.AssumptionViolatedException} that was thrown<a name="line.111"></a>
<span class="sourceLineNo">112</span>     */<a name="line.112"></a>
<span class="sourceLineNo">113</span>    public void testAssumptionFailure(Failure failure) {<a name="line.113"></a>
<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
<span class="sourceLineNo">115</span><a name="line.115"></a>
<span class="sourceLineNo">116</span>    /**<a name="line.116"></a>
<span class="sourceLineNo">117</span>     * Called when a test will not be run, generally because a test method is annotated<a name="line.117"></a>
<span class="sourceLineNo">118</span>     * with {@link org.junit.Ignore}.<a name="line.118"></a>
<span class="sourceLineNo">119</span>     *<a name="line.119"></a>
<span class="sourceLineNo">120</span>     * @param description describes the test that will not be run<a name="line.120"></a>
<span class="sourceLineNo">121</span>     */<a name="line.121"></a>
<span class="sourceLineNo">122</span>    public void testIgnored(Description description) throws Exception {<a name="line.122"></a>
<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
<span class="sourceLineNo">124</span><a name="line.124"></a>
<span class="sourceLineNo">125</span><a name="line.125"></a>
<span class="sourceLineNo">126</span>    /**<a name="line.126"></a>
<span class="sourceLineNo">127</span>     * Indicates a {@code RunListener} that can have its methods called<a name="line.127"></a>
<span class="sourceLineNo">128</span>     * concurrently. This implies that the class is thread-safe (i.e. no set of<a name="line.128"></a>
<span class="sourceLineNo">129</span>     * listener calls can put the listener into an invalid state, even if those<a name="line.129"></a>
<span class="sourceLineNo">130</span>     * listener calls are being made by multiple threads without<a name="line.130"></a>
<span class="sourceLineNo">131</span>     * synchronization).<a name="line.131"></a>
<span class="sourceLineNo">132</span>     *<a name="line.132"></a>
<span class="sourceLineNo">133</span>     * @since 4.12<a name="line.133"></a>
<span class="sourceLineNo">134</span>     */<a name="line.134"></a>
<span class="sourceLineNo">135</span>    @Documented<a name="line.135"></a>
<span class="sourceLineNo">136</span>    @Target(ElementType.TYPE)<a name="line.136"></a>
<span class="sourceLineNo">137</span>    @Retention(RetentionPolicy.RUNTIME)<a name="line.137"></a>
<span class="sourceLineNo">138</span>    public @interface ThreadSafe {<a name="line.138"></a>
<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
<span class="sourceLineNo">140</span>}<a name="line.140"></a>




























































</pre>
</div>
</body>
</html>