You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2011/10/29 14:37:06 UTC

svn commit: r1194881 - /directory/apacheds/branches/apacheds-txns/core/src/test/java/org/apache/directory/server/core/log/LogTest.java

Author: elecharny
Date: Sat Oct 29 12:37:06 2011
New Revision: 1194881

URL: http://svn.apache.org/viewvc?rev=1194881&view=rev
Log:
Added a test to demonstrate that using a buffer smaller than the user record leads to some error

Modified:
    directory/apacheds/branches/apacheds-txns/core/src/test/java/org/apache/directory/server/core/log/LogTest.java

Modified: directory/apacheds/branches/apacheds-txns/core/src/test/java/org/apache/directory/server/core/log/LogTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core/src/test/java/org/apache/directory/server/core/log/LogTest.java?rev=1194881&r1=1194880&r2=1194881&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core/src/test/java/org/apache/directory/server/core/log/LogTest.java (original)
+++ directory/apacheds/branches/apacheds-txns/core/src/test/java/org/apache/directory/server/core/log/LogTest.java Sat Oct 29 12:37:06 2011
@@ -26,7 +26,6 @@ import static org.junit.Assert.fail;
 import java.io.IOException;
 import java.util.Arrays;
 
-import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -41,12 +40,6 @@ public class LogTest
     /** Logger */
     private Log log;
     
-    /** Log buffer size : 4096 bytes */
-    private int logBufferSize = 1 << 12;
-    
-    /** Log File Size : 8192 bytes */
-    private long logFileSize = 1 << 13;
-    
     /** log suffix */
     private static String LOG_SUFFIX = "log";
 
@@ -65,18 +58,67 @@ public class LogTest
     }
 
 
-    @Before
-    public void setup() throws IOException, InvalidLogException
+    @Test
+    public void testLog() throws IOException, InvalidLogException
     {
         log = new DefaultLog();
-        log.init( getLogFolder(), LOG_SUFFIX, logBufferSize, logFileSize );
+        log.init( getLogFolder(), LOG_SUFFIX, 4096, 8192 );
+
+        int dataLength = 1024;
+        UserLogRecord userLogRecord = new UserLogRecord();
+        byte recordData[] = new byte[dataLength];
+        LogAnchor startingLogAnchor = new LogAnchor();
+        
+        try
+        {
+            // Log 10 buffers
+            for ( int i = 0; i < 10; i++ )
+            {
+                Arrays.fill( recordData, (byte )i );
+            
+                userLogRecord.setData( recordData, dataLength );
+                log.log( userLogRecord, true );
+            }
+            
+            LogScanner logScanner = log.beginScan( startingLogAnchor );
+            int recordNumber = 0;
+            
+            while ( logScanner.getNextRecord( userLogRecord ) )
+            {
+                recordData = userLogRecord.getDataBuffer();
+                assertTrue( userLogRecord.getDataLength() == dataLength );
+                
+                for ( int idx = 0; idx < dataLength; idx++ )
+                {
+                    assertTrue( recordData[idx] == recordNumber );
+                }
+                
+                recordNumber++;
+            }
+            
+            // Here, the expected number of record read should be 10, not 8...
+            // assertEquals( 10, recordNumber );
+            assertEquals( 10, recordNumber );
+        }
+        catch( IOException e )
+        {
+            e.printStackTrace();
+            fail();
+        }
+        catch( InvalidLogException e )
+        {
+            e.printStackTrace();
+            fail();
+        }
     }
     
     
     @Test
-    public void testLog()
+    public void testLogSmallBuffer() throws IOException, InvalidLogException
     {
-        int idx;
+        log = new DefaultLog();
+        log.init( getLogFolder(), LOG_SUFFIX, 512, 8192 );
+
         int dataLength = 1024;
         UserLogRecord userLogRecord = new UserLogRecord();
         byte recordData[] = new byte[dataLength];
@@ -104,7 +146,7 @@ public class LogTest
                 recordData = userLogRecord.getDataBuffer();
                 assertTrue( userLogRecord.getDataLength() == dataLength );
                 
-                for ( idx = 0; idx < dataLength; idx++ )
+                for ( int idx = 0; idx < dataLength; idx++ )
                 {
                     assertTrue( recordData[idx] == recordNumber );
                 }