Clover Coverage Report
Coverage timestamp: Fri May 9 2008 10:54:27 EST
9   89   5   2.25
0   27   0.56   2
4     1.25  
2    
 
  TestLock       Line # 61 6 2 85.7% 0.85714287
  TestLock.LockMock       Line # 75 3 3 50% 0.5
 
  (1)
 
1    package org.apache.lucene.store;
2   
3    /* ====================================================================
4    * The Apache Software License, Version 1.1
5    *
6    * Copyright (c) 2001,2004 The Apache Software Foundation. All rights
7    * reserved.
8    *
9    * Redistribution and use in source and binary forms, with or without
10    * modification, are permitted provided that the following conditions
11    * are met:
12    *
13    * 1. Redistributions of source code must retain the above copyright
14    * notice, this list of conditions and the following disclaimer.
15    *
16    * 2. Redistributions in binary form must reproduce the above copyright
17    * notice, this list of conditions and the following disclaimer in
18    * the documentation and/or other materials provided with the
19    * distribution.
20    *
21    * 3. The end-user documentation included with the redistribution,
22    * if any, must include the following acknowledgment:
23    * "This product includes software developed by the
24    * Apache Software Foundation (http://www.apache.org/)."
25    * Alternately, this acknowledgment may appear in the software itself,
26    * if and wherever such third-party acknowledgments normally appear.
27    *
28    * 4. The names "Apache" and "Apache Software Foundation" and
29    * "Apache Lucene" must not be used to endorse or promote products
30    * derived from this software without prior written permission. For
31    * written permission, please contact apache@apache.org.
32    *
33    * 5. Products derived from this software may not be called "Apache",
34    * "Apache Lucene", nor may "Apache" appear in their name, without
35    * prior written permission of the Apache Software Foundation.
36    *
37    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40    * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48    * SUCH DAMAGE.
49    * ====================================================================
50    *
51    * This software consists of voluntary contributions made by many
52    * individuals on behalf of the Apache Software Foundation. For more
53    * information on the Apache Software Foundation, please see
54    * <http://www.apache.org/>.
55    */
56   
57   
58    import java.io.IOException;
59    import junit.framework.TestCase;
60   
 
61    public class TestLock extends TestCase {
62   
 
63  1 toggle public void testObtain() {
64  1 LockMock lock = new LockMock();
65  1 Lock.LOCK_POLL_INTERVAL = 10;
66   
67  1 try {
68  1 lock.obtain(Lock.LOCK_POLL_INTERVAL);
69  0 fail("Should have failed to obtain lock");
70    } catch (IOException e) {
71  1 assertEquals("should attempt to lock more than once", lock.lockAttempts, 2);
72    }
73    }
74   
 
75    private class LockMock extends Lock {
76    public int lockAttempts;
77   
 
78  2 toggle public boolean obtain() {
79  2 lockAttempts++;
80  2 return false;
81    }
 
82  0 toggle public void release() {
83    // do nothing
84    }
 
85  0 toggle public boolean isLocked() {
86  0 return false;
87    }
88    }
89    }