You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/09/14 20:04:08 UTC
svn commit: r997023 -
/directory/apacheds/trunk/jdbm/src/test/java/jdbm/btree/TestBTree.java
Author: seelmann
Date: Tue Sep 14 18:04:08 2010
New Revision: 997023
URL: http://svn.apache.org/viewvc?rev=997023&view=rev
Log:
DIRSERVER-1549: use JUnit TemporaryFolder rule
Modified:
directory/apacheds/trunk/jdbm/src/test/java/jdbm/btree/TestBTree.java
Modified: directory/apacheds/trunk/jdbm/src/test/java/jdbm/btree/TestBTree.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/jdbm/src/test/java/jdbm/btree/TestBTree.java?rev=997023&r1=997022&r2=997023&view=diff
==============================================================================
--- directory/apacheds/trunk/jdbm/src/test/java/jdbm/btree/TestBTree.java (original)
+++ directory/apacheds/trunk/jdbm/src/test/java/jdbm/btree/TestBTree.java Tue Sep 14 18:04:08 2010
@@ -53,12 +53,9 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.io.File;
import java.io.IOException;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -71,8 +68,9 @@ import jdbm.helper.TupleBrowser;
import org.apache.directory.junit.tools.Concurrent;
import org.apache.directory.junit.tools.ConcurrentJunitRunner;
-import org.junit.AfterClass;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
@@ -85,6 +83,9 @@ import org.junit.runner.RunWith;
@Concurrent()
public class TestBTree
{
+ @Rule
+ public TemporaryFolder folder = new TemporaryFolder();
+
static final boolean DEBUG = false;
// the number of threads to be started in the synchronization test
@@ -97,41 +98,11 @@ public class TestBTree
// for how long should the threads run.
static final int THREAD_RUNTIME = 10 * 1000;
- public static final List<String> createdFiles = new ArrayList<String>();
-
- private static void deleteFile( String filename )
+ private String getTemporaryFile( String name ) throws IOException
{
- File file = new File( filename );
-
- if ( file.exists() ) {
- try
- {
- file.delete();
- }
- catch ( Exception except )
- {
- except.printStackTrace();
- }
-
- if ( file.exists() )
- {
- System.out.println( "WARNING: Cannot delete file: " + file );
- }
- }
- }
-
-
- @AfterClass
- public static void tearDown()
- {
- System.gc();
- for(String createdFile : createdFiles)
- {
- deleteFile( createdFile );
- deleteFile( createdFile + ".db" );
- deleteFile( createdFile + ".lg" );
- }
+ String file = folder.newFile( name ).getAbsolutePath();
+ return file;
}
@@ -151,10 +122,9 @@ public class TestBTree
byte[] value1 = "value1".getBytes();
byte[] value2 = "value2".getBytes();
- recman = RecordManagerFactory.createRecordManager( "testBasics" );
- createdFiles.add( "testBasics" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testBasics" ) );
tree = new BTree<byte[], byte[]>( recman, new ByteArrayComparator() );
-
+
tree.insert( test1, value1, false );
tree.insert( test2, value2, false );
byte[] result = tree.find( test0 );
@@ -177,7 +147,7 @@ public class TestBTree
recman.close();
}
-
+
/**
* Basic tests, just use the simple test possibilities of junit (cdaller)
*/
@@ -193,18 +163,17 @@ public class TestBTree
byte[] value1 = "value1".getBytes();
byte[] value2 = "value2".getBytes();
- recman = RecordManagerFactory.createRecordManager( "testBasics2" );
- createdFiles.add( "testBasics2" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testBasics2" ) );
tree = new BTree<byte[], byte[]>( recman, new ByteArrayComparator() );
tree.insert( test1, value1, false );
tree.insert( test2, value2, false );
-
+
assertEquals( null, tree.find( test0 ) );
assertEquals( 0, ByteArrayComparator.compareByteArray( value1, ( byte[] ) tree.find( test1 ) ) );
assertEquals( 0, ByteArrayComparator.compareByteArray( value2, ( byte[] ) tree.find( test2 ) ) );
assertEquals( null, ( byte[] ) tree.find( test3 ) );
-
+
recman.close();
}
@@ -226,18 +195,17 @@ public class TestBTree
byte[] value1 = "value1".getBytes();
byte[] value2 = "value2".getBytes();
- recman = RecordManagerFactory.createRecordManager( "testClose" );
- createdFiles.add( "testClose" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testClose" ) );
tree = new BTree<byte[], byte[]>( recman, new ByteArrayComparator() );
tree.insert( test1, value1, false );
tree.insert( test2, value2, false );
-
+
assertEquals( null, tree.find( test0 ) );
assertEquals( 0, ByteArrayComparator.compareByteArray( value1, ( byte[] ) tree.find( test1 ) ) );
assertEquals( 0, ByteArrayComparator.compareByteArray( value2, ( byte[] ) tree.find( test2 ) ) );
assertEquals( null, ( byte[] ) tree.find( test3 ) );
-
+
recman.close();
try
@@ -301,8 +269,7 @@ public class TestBTree
RecordManager recman;
BTree<String, Object> tree;
- recman = RecordManagerFactory.createRecordManager( "testInsert" );
- createdFiles.add( "testInsert" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testInsert" ) );
tree = new BTree<String, Object>( recman, new StringComparator() );
// insert different objects and retrieve them
@@ -311,7 +278,7 @@ public class TestBTree
tree.insert( "one", Integer.valueOf( 1 ), false );
tree.insert( "two", Long.valueOf( 2 ), false );
tree.insert( "myownobject", new ObjectStore( Integer.valueOf( 234 ) ), false );
-
+
assertEquals( "value2", tree.find( "test2" ) );
assertEquals( "value1", tree.find( "test1" ) );
assertEquals( Integer.valueOf( 1 ), tree.find( "one" ) );
@@ -323,12 +290,12 @@ public class TestBTree
assertEquals( "value1", tree.find( "test1" ) ); // still the old value?
assertEquals( "value1", tree.insert( "test1", "value11", true ) );
assertEquals( "value11", tree.find( "test1" ) ); // now the new value!
-
+
ObjectStore expectedObj = new ObjectStore( Integer.valueOf( 234 ) );
ObjectStore btreeObj = ( ObjectStore ) tree.find( "myownobject" );
-
+
assertEquals( expectedObj, btreeObj );
-
+
recman.close();
}
@@ -341,8 +308,7 @@ public class TestBTree
{
BTree<String, String> tree;
- RecordManager recordManager = RecordManagerFactory.createRecordManager( "testInsertMany" );
- createdFiles.add( "testInsertMany" );
+ RecordManager recordManager = RecordManagerFactory.createRecordManager( getTemporaryFile( "testInsertMany" ) );
tree = new BTree<String, String>( recordManager, new StringComparator() );
tree.setPageSize( 4 );
@@ -353,7 +319,7 @@ public class TestBTree
tree.insert( "test4", "value4", false );
tree.insert( "test5", "value5", false );
tree.insert( "test6", "value6", false );
-
+
assertEquals( "value2", tree.find( "test2" ) );
assertEquals( "value1", tree.find( "test1" ) );
@@ -370,25 +336,24 @@ public class TestBTree
RecordManager recman;
BTree<String, Object> tree;
- recman = RecordManagerFactory.createRecordManager( "testRemove" );
- createdFiles.add( "testRemove" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testRemove" ) );
tree = new BTree<String, Object>( recman, new StringComparator() );
tree.insert( "test1", "value1", false );
tree.insert( "test2", "value2", false );
-
+
assertEquals( "value1", tree.find( "test1" ) );
assertEquals( "value2", tree.find( "test2" ) );
-
+
tree.remove( "test1" );
-
+
assertEquals( null, tree.find( "test1" ) );
assertEquals( "value2", tree.find( "test2" ) );
-
+
tree.remove( "test2" );
-
+
assertEquals( null, tree.find( "test2" ) );
-
+
int iterations = 1000;
for ( int count = 0; count < iterations; count++ )
@@ -409,7 +374,7 @@ public class TestBTree
}
assertEquals( 0, tree.size() );
-
+
recman.close();
}
@@ -423,23 +388,22 @@ public class TestBTree
RecordManager recman;
BTree<String, String> tree;
- recman = RecordManagerFactory.createRecordManager( "testFind" );
- createdFiles.add( "testFind" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testFind" ) );
tree = new BTree<String, String>( recman, new StringComparator() );
tree.insert( "test1", "value1", false );
tree.insert( "test2", "value2", false );
-
+
Object value = tree.find( "test1" );
-
+
assertTrue( value instanceof String );
assertEquals( "value1", value );
-
+
tree.insert( "", "Empty String as key", false );
-
+
assertEquals( "Empty String as key", tree.find( "" ) );
assertEquals( null, tree.find( "someoneelse" ) );
-
+
recman.close();
}
@@ -453,8 +417,7 @@ public class TestBTree
RecordManager recman;
BTree<String, Object> tree;
- recman = RecordManagerFactory.createRecordManager( "testLargeDataAmount" );
- createdFiles.add( "testLargeDataAmount" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testLargeDataAmount" ) );
// recman = new jdbm.recman.BaseRecordManager( "test" );
tree = new BTree<String, Object>( recman, new StringComparator() );
@@ -471,7 +434,7 @@ public class TestBTree
{
assertEquals( Integer.valueOf( count ), tree.find( "num" + count ) );
}
-
+
// delete data
for ( int count = 0; count < iterations; count++ )
{
@@ -496,10 +459,9 @@ public class TestBTree
RecordManager recman;
BTree<String, Integer> tree;
- recman = RecordManagerFactory.createRecordManager( "testMultithreadAccess" );
- createdFiles.add( "testMultithreadAccess" );
+ recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testMultithreadAccess" ) );
tree = new BTree<String, Integer>( recman, new StringComparator() );
- TestThread<String, Integer>[] threadPool = (TestThread<String, Integer>[])new TestThread[THREAD_NUMBER];
+ TestThread<String, Integer>[] threadPool = ( TestThread<String, Integer>[] ) new TestThread[THREAD_NUMBER];
String name;
Map<String, Integer> content;
@@ -587,7 +549,6 @@ public class TestBTree
return ( tree_obj.equals( entry.getValue() ) );
}
-
/**
* Inner class for testing puroposes only (multithreaded access)
*/
@@ -638,7 +599,7 @@ public class TestBTree
assertTrue( contains( entry, btree ) );
assertNotNull( btree.find( entry.getKey() ) );
-
+
assertTrue( containsValue( entry.getValue(), btree ) );
}
@@ -679,7 +640,6 @@ public class TestBTree
} // end of class TestThread
}
-
/**
* class for testing purposes only (store as value in btree) not
* implemented as inner class, as this prevents Serialization if
@@ -689,7 +649,6 @@ class ObjectStore implements Serializabl
{
private static final long serialVersionUID = 1L;
-
/**
*
*/