This file is indexed.

/usr/share/doc/libcobertura-java/api/src-html/net/sourceforge/cobertura/ant/CheckTask.html is in libcobertura-java-doc 1.9.4.1+dfsg-4.

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
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
<!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>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> * The Apache Software License, Version 1.1<a name="line.2"></a>
<span class="sourceLineNo">003</span> *<a name="line.3"></a>
<span class="sourceLineNo">004</span> * Copyright (C) 2000-2002 The Apache Software Foundation.  All rights<a name="line.4"></a>
<span class="sourceLineNo">005</span> * reserved.<a name="line.5"></a>
<span class="sourceLineNo">006</span> * Copyright (C) 2003 jcoverage ltd.<a name="line.6"></a>
<span class="sourceLineNo">007</span> * Copyright (C) 2005 Mark Doliner<a name="line.7"></a>
<span class="sourceLineNo">008</span> * Copyright (C) 2005 Nathan Wilson<a name="line.8"></a>
<span class="sourceLineNo">009</span> * Copyright (C) 2005 Alex Ruiz<a name="line.9"></a>
<span class="sourceLineNo">010</span> *<a name="line.10"></a>
<span class="sourceLineNo">011</span> * Redistribution and use in source and binary forms, with or without<a name="line.11"></a>
<span class="sourceLineNo">012</span> * modification, are permitted provided that the following conditions<a name="line.12"></a>
<span class="sourceLineNo">013</span> * are met:<a name="line.13"></a>
<span class="sourceLineNo">014</span> *<a name="line.14"></a>
<span class="sourceLineNo">015</span> * 1. Redistributions of source code must retain the above copyright<a name="line.15"></a>
<span class="sourceLineNo">016</span> *    notice, this list of conditions and the following disclaimer.<a name="line.16"></a>
<span class="sourceLineNo">017</span> *<a name="line.17"></a>
<span class="sourceLineNo">018</span> * 2. Redistributions in binary form must reproduce the above copyright<a name="line.18"></a>
<span class="sourceLineNo">019</span> *    notice, this list of conditions and the following disclaimer in<a name="line.19"></a>
<span class="sourceLineNo">020</span> *    the documentation and/or other materials provided with the<a name="line.20"></a>
<span class="sourceLineNo">021</span> *    distribution.<a name="line.21"></a>
<span class="sourceLineNo">022</span> *<a name="line.22"></a>
<span class="sourceLineNo">023</span> * 3. The end-user documentation included with the redistribution, if<a name="line.23"></a>
<span class="sourceLineNo">024</span> *    any, must include the following acknowlegement:<a name="line.24"></a>
<span class="sourceLineNo">025</span> *       "This product includes software developed by the<a name="line.25"></a>
<span class="sourceLineNo">026</span> *        Apache Software Foundation (http://www.apache.org/)."<a name="line.26"></a>
<span class="sourceLineNo">027</span> *    Alternately, this acknowlegement may appear in the software itself,<a name="line.27"></a>
<span class="sourceLineNo">028</span> *    if and wherever such third-party acknowlegements normally appear.<a name="line.28"></a>
<span class="sourceLineNo">029</span> *<a name="line.29"></a>
<span class="sourceLineNo">030</span> * 4. The names "Ant" and "Apache Software<a name="line.30"></a>
<span class="sourceLineNo">031</span> *    Foundation" must not be used to endorse or promote products derived<a name="line.31"></a>
<span class="sourceLineNo">032</span> *    from this software without prior written permission. For written<a name="line.32"></a>
<span class="sourceLineNo">033</span> *    permission, please contact apache@apache.org.<a name="line.33"></a>
<span class="sourceLineNo">034</span> *<a name="line.34"></a>
<span class="sourceLineNo">035</span> * 5. Products derived from this software may not be called "Apache"<a name="line.35"></a>
<span class="sourceLineNo">036</span> *    nor may "Apache" appear in their names without prior written<a name="line.36"></a>
<span class="sourceLineNo">037</span> *    permission of the Apache Group.<a name="line.37"></a>
<span class="sourceLineNo">038</span> *<a name="line.38"></a>
<span class="sourceLineNo">039</span> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED<a name="line.39"></a>
<span class="sourceLineNo">040</span> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES<a name="line.40"></a>
<span class="sourceLineNo">041</span> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE<a name="line.41"></a>
<span class="sourceLineNo">042</span> * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR<a name="line.42"></a>
<span class="sourceLineNo">043</span> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<a name="line.43"></a>
<span class="sourceLineNo">044</span> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<a name="line.44"></a>
<span class="sourceLineNo">045</span> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF<a name="line.45"></a>
<span class="sourceLineNo">046</span> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND<a name="line.46"></a>
<span class="sourceLineNo">047</span> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,<a name="line.47"></a>
<span class="sourceLineNo">048</span> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT<a name="line.48"></a>
<span class="sourceLineNo">049</span> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF<a name="line.49"></a>
<span class="sourceLineNo">050</span> * SUCH DAMAGE.<a name="line.50"></a>
<span class="sourceLineNo">051</span> * ====================================================================<a name="line.51"></a>
<span class="sourceLineNo">052</span> *<a name="line.52"></a>
<span class="sourceLineNo">053</span> * This software consists of voluntary contributions made by many<a name="line.53"></a>
<span class="sourceLineNo">054</span> * individuals on behalf of the Apache Software Foundation.  For more<a name="line.54"></a>
<span class="sourceLineNo">055</span> * information on the Apache Software Foundation, please see<a name="line.55"></a>
<span class="sourceLineNo">056</span> * &lt;http://www.apache.org/&gt;.<a name="line.56"></a>
<span class="sourceLineNo">057</span> */<a name="line.57"></a>
<span class="sourceLineNo">058</span><a name="line.58"></a>
<span class="sourceLineNo">059</span>package net.sourceforge.cobertura.ant;<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
<span class="sourceLineNo">061</span>import java.util.HashSet;<a name="line.61"></a>
<span class="sourceLineNo">062</span>import java.util.Iterator;<a name="line.62"></a>
<span class="sourceLineNo">063</span>import java.util.Set;<a name="line.63"></a>
<span class="sourceLineNo">064</span><a name="line.64"></a>
<span class="sourceLineNo">065</span>import org.apache.tools.ant.BuildException;<a name="line.65"></a>
<span class="sourceLineNo">066</span><a name="line.66"></a>
<span class="sourceLineNo">067</span>/**<a name="line.67"></a>
<span class="sourceLineNo">068</span> * An ant task that can be used to optionally fail an ant build if<a name="line.68"></a>
<span class="sourceLineNo">069</span> * the coverage percentage for lines or branches is below a certain,<a name="line.69"></a>
<span class="sourceLineNo">070</span> * user specifiable threshold.<a name="line.70"></a>
<span class="sourceLineNo">071</span> */<a name="line.71"></a>
<span class="sourceLineNo">072</span>public class CheckTask extends CommonMatchingTask<a name="line.72"></a>
<span class="sourceLineNo">073</span>{<a name="line.73"></a>
<span class="sourceLineNo">074</span><a name="line.74"></a>
<span class="sourceLineNo">075</span>        private String dataFile = null;<a name="line.75"></a>
<span class="sourceLineNo">076</span><a name="line.76"></a>
<span class="sourceLineNo">077</span>        final Set regexes = new HashSet();<a name="line.77"></a>
<span class="sourceLineNo">078</span><a name="line.78"></a>
<span class="sourceLineNo">079</span>        private String branchRate = null;<a name="line.79"></a>
<span class="sourceLineNo">080</span><a name="line.80"></a>
<span class="sourceLineNo">081</span>        private String lineRate = null;<a name="line.81"></a>
<span class="sourceLineNo">082</span><a name="line.82"></a>
<span class="sourceLineNo">083</span>        private String packageBranchRate = null;<a name="line.83"></a>
<span class="sourceLineNo">084</span><a name="line.84"></a>
<span class="sourceLineNo">085</span>        private String packageLineRate = null;<a name="line.85"></a>
<span class="sourceLineNo">086</span><a name="line.86"></a>
<span class="sourceLineNo">087</span>        private String totalBranchRate = null;<a name="line.87"></a>
<span class="sourceLineNo">088</span><a name="line.88"></a>
<span class="sourceLineNo">089</span>        private String totalLineRate = null;<a name="line.89"></a>
<span class="sourceLineNo">090</span><a name="line.90"></a>
<span class="sourceLineNo">091</span>        private String failureProperty = null;<a name="line.91"></a>
<span class="sourceLineNo">092</span><a name="line.92"></a>
<span class="sourceLineNo">093</span>        private boolean haltOnFailure = true;<a name="line.93"></a>
<span class="sourceLineNo">094</span><a name="line.94"></a>
<span class="sourceLineNo">095</span>        public CheckTask() {<a name="line.95"></a>
<span class="sourceLineNo">096</span>                super("net.sourceforge.cobertura.check.Main");<a name="line.96"></a>
<span class="sourceLineNo">097</span>        }<a name="line.97"></a>
<span class="sourceLineNo">098</span>        <a name="line.98"></a>
<span class="sourceLineNo">099</span>        public void execute() throws BuildException<a name="line.99"></a>
<span class="sourceLineNo">100</span>        {<a name="line.100"></a>
<span class="sourceLineNo">101</span>                if (dataFile != null)<a name="line.101"></a>
<span class="sourceLineNo">102</span>                {<a name="line.102"></a>
<span class="sourceLineNo">103</span>                        getJava().createArg().setValue("--datafile");<a name="line.103"></a>
<span class="sourceLineNo">104</span>                        getJava().createArg().setValue(dataFile);<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>                if (branchRate != null)<a name="line.107"></a>
<span class="sourceLineNo">108</span>                {<a name="line.108"></a>
<span class="sourceLineNo">109</span>                        getJava().createArg().setValue("--branch");<a name="line.109"></a>
<span class="sourceLineNo">110</span>                        getJava().createArg().setValue(branchRate);<a name="line.110"></a>
<span class="sourceLineNo">111</span>                }<a name="line.111"></a>
<span class="sourceLineNo">112</span><a name="line.112"></a>
<span class="sourceLineNo">113</span>                if (lineRate != null)<a name="line.113"></a>
<span class="sourceLineNo">114</span>                {<a name="line.114"></a>
<span class="sourceLineNo">115</span>                        getJava().createArg().setValue("--line");<a name="line.115"></a>
<span class="sourceLineNo">116</span>                        getJava().createArg().setValue(lineRate);<a name="line.116"></a>
<span class="sourceLineNo">117</span>                }<a name="line.117"></a>
<span class="sourceLineNo">118</span><a name="line.118"></a>
<span class="sourceLineNo">119</span>                if (packageBranchRate != null)<a name="line.119"></a>
<span class="sourceLineNo">120</span>                {<a name="line.120"></a>
<span class="sourceLineNo">121</span>                        getJava().createArg().setValue("--packagebranch");<a name="line.121"></a>
<span class="sourceLineNo">122</span>                        getJava().createArg().setValue(packageBranchRate);<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>                if (packageLineRate != null)<a name="line.125"></a>
<span class="sourceLineNo">126</span>                {<a name="line.126"></a>
<span class="sourceLineNo">127</span>                        getJava().createArg().setValue("--packageline");<a name="line.127"></a>
<span class="sourceLineNo">128</span>                        getJava().createArg().setValue(packageLineRate);<a name="line.128"></a>
<span class="sourceLineNo">129</span>                }<a name="line.129"></a>
<span class="sourceLineNo">130</span><a name="line.130"></a>
<span class="sourceLineNo">131</span>                if (totalBranchRate != null)<a name="line.131"></a>
<span class="sourceLineNo">132</span>                {<a name="line.132"></a>
<span class="sourceLineNo">133</span>                        getJava().createArg().setValue("--totalbranch");<a name="line.133"></a>
<span class="sourceLineNo">134</span>                        getJava().createArg().setValue(totalBranchRate);<a name="line.134"></a>
<span class="sourceLineNo">135</span>                }<a name="line.135"></a>
<span class="sourceLineNo">136</span><a name="line.136"></a>
<span class="sourceLineNo">137</span>                if (totalLineRate != null)<a name="line.137"></a>
<span class="sourceLineNo">138</span>                {<a name="line.138"></a>
<span class="sourceLineNo">139</span>                        getJava().createArg().setValue("--totalline");<a name="line.139"></a>
<span class="sourceLineNo">140</span>                        getJava().createArg().setValue(totalLineRate);<a name="line.140"></a>
<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
<span class="sourceLineNo">142</span><a name="line.142"></a>
<span class="sourceLineNo">143</span>                Iterator iter = regexes.iterator();<a name="line.143"></a>
<span class="sourceLineNo">144</span>                while (iter.hasNext())<a name="line.144"></a>
<span class="sourceLineNo">145</span>                {<a name="line.145"></a>
<span class="sourceLineNo">146</span>                        getJava().createArg().setValue("--regex");<a name="line.146"></a>
<span class="sourceLineNo">147</span>                        getJava().createArg().setValue(iter.next().toString());<a name="line.147"></a>
<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
<span class="sourceLineNo">149</span><a name="line.149"></a>
<span class="sourceLineNo">150</span>                AntUtil.transferCoberturaDataFileProperty(getJava());<a name="line.150"></a>
<span class="sourceLineNo">151</span>                int returnCode = getJava().executeJava();<a name="line.151"></a>
<span class="sourceLineNo">152</span><a name="line.152"></a>
<span class="sourceLineNo">153</span>                // Check the return code and print a message<a name="line.153"></a>
<span class="sourceLineNo">154</span>                if (returnCode == 0)<a name="line.154"></a>
<span class="sourceLineNo">155</span>                {<a name="line.155"></a>
<span class="sourceLineNo">156</span>                        System.out.println("All checks passed.");<a name="line.156"></a>
<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
<span class="sourceLineNo">158</span>                else<a name="line.158"></a>
<span class="sourceLineNo">159</span>                {<a name="line.159"></a>
<span class="sourceLineNo">160</span>                        if (haltOnFailure)<a name="line.160"></a>
<span class="sourceLineNo">161</span>                                throw new BuildException(<a name="line.161"></a>
<span class="sourceLineNo">162</span>                                                "Coverage check failed. See messages above.");<a name="line.162"></a>
<span class="sourceLineNo">163</span>                        else if (failureProperty != null)<a name="line.163"></a>
<span class="sourceLineNo">164</span>                                getProject().setProperty(failureProperty, "true");<a name="line.164"></a>
<span class="sourceLineNo">165</span>                        else<a name="line.165"></a>
<span class="sourceLineNo">166</span>                                System.err<a name="line.166"></a>
<span class="sourceLineNo">167</span>                                                .println("Coverage check failed. See messages above.");<a name="line.167"></a>
<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
<span class="sourceLineNo">170</span><a name="line.170"></a>
<span class="sourceLineNo">171</span>        public Regex createRegex()<a name="line.171"></a>
<span class="sourceLineNo">172</span>        {<a name="line.172"></a>
<span class="sourceLineNo">173</span>                Regex regex = new Regex();<a name="line.173"></a>
<span class="sourceLineNo">174</span>                regexes.add(regex);<a name="line.174"></a>
<span class="sourceLineNo">175</span>                return regex;<a name="line.175"></a>
<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
<span class="sourceLineNo">177</span><a name="line.177"></a>
<span class="sourceLineNo">178</span>        public void setDataFile(String dataFile)<a name="line.178"></a>
<span class="sourceLineNo">179</span>        {<a name="line.179"></a>
<span class="sourceLineNo">180</span>                this.dataFile = dataFile;<a name="line.180"></a>
<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
<span class="sourceLineNo">182</span><a name="line.182"></a>
<span class="sourceLineNo">183</span>        public void setBranchRate(String branchRate)<a name="line.183"></a>
<span class="sourceLineNo">184</span>        {<a name="line.184"></a>
<span class="sourceLineNo">185</span>                this.branchRate = branchRate;<a name="line.185"></a>
<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
<span class="sourceLineNo">187</span><a name="line.187"></a>
<span class="sourceLineNo">188</span>        public void setLineRate(String lineRate)<a name="line.188"></a>
<span class="sourceLineNo">189</span>        {<a name="line.189"></a>
<span class="sourceLineNo">190</span>                this.lineRate = lineRate;<a name="line.190"></a>
<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
<span class="sourceLineNo">192</span><a name="line.192"></a>
<span class="sourceLineNo">193</span>        public void setPackageBranchRate(String packageBranchRate)<a name="line.193"></a>
<span class="sourceLineNo">194</span>        {<a name="line.194"></a>
<span class="sourceLineNo">195</span>                this.packageBranchRate = packageBranchRate;<a name="line.195"></a>
<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
<span class="sourceLineNo">197</span><a name="line.197"></a>
<span class="sourceLineNo">198</span>        public void setPackageLineRate(String packageLineRate)<a name="line.198"></a>
<span class="sourceLineNo">199</span>        {<a name="line.199"></a>
<span class="sourceLineNo">200</span>                this.packageLineRate = packageLineRate;<a name="line.200"></a>
<span class="sourceLineNo">201</span>        }<a name="line.201"></a>
<span class="sourceLineNo">202</span><a name="line.202"></a>
<span class="sourceLineNo">203</span>        public void setTotalBranchRate(String totalBranchRate)<a name="line.203"></a>
<span class="sourceLineNo">204</span>        {<a name="line.204"></a>
<span class="sourceLineNo">205</span>                this.totalBranchRate = totalBranchRate;<a name="line.205"></a>
<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
<span class="sourceLineNo">207</span><a name="line.207"></a>
<span class="sourceLineNo">208</span>        public void setTotalLineRate(String totalLineRate)<a name="line.208"></a>
<span class="sourceLineNo">209</span>        {<a name="line.209"></a>
<span class="sourceLineNo">210</span>                this.totalLineRate = totalLineRate;<a name="line.210"></a>
<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
<span class="sourceLineNo">212</span><a name="line.212"></a>
<span class="sourceLineNo">213</span>        public void setFailureProperty(String failureProperty)<a name="line.213"></a>
<span class="sourceLineNo">214</span>        {<a name="line.214"></a>
<span class="sourceLineNo">215</span>                this.failureProperty = failureProperty;<a name="line.215"></a>
<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
<span class="sourceLineNo">217</span><a name="line.217"></a>
<span class="sourceLineNo">218</span>        public void setHaltOnFailure(boolean haltOnFailure)<a name="line.218"></a>
<span class="sourceLineNo">219</span>        {<a name="line.219"></a>
<span class="sourceLineNo">220</span>                this.haltOnFailure = haltOnFailure;<a name="line.220"></a>
<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
<span class="sourceLineNo">222</span><a name="line.222"></a>
<span class="sourceLineNo">223</span>}<a name="line.223"></a>




























































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