org.h2.test.unit
Class TestValueMemory

java.lang.Object
  extended by org.h2.test.TestBase
      extended by org.h2.test.unit.TestValueMemory
All Implemented Interfaces:
DataHandler

public class TestValueMemory
extends TestBase
implements DataHandler

Tests the memory consumption of values. Values can estimate how much memory they occupy, and this tests if this estimation is correct.


Field Summary
 
Fields inherited from class org.h2.test.TestBase
baseDir, config, start
 
Constructor Summary
TestValueMemory()
           
 
Method Summary
 int allocateObjectId(boolean needFresh, boolean dataFile)
          Get the next object id.
 void checkPowerOff()
          Check if the simulated power failure occurred.
 void checkWritingAllowed()
          Check if writing is allowed.
 int compareTypeSave(Value a, Value b)
          Compare two values.
 java.lang.String createTempFile()
          Create a temporary file and return the file name.
 void freeUpDiskSpace()
          Free up disk space if possible.
 int getChecksum(byte[] data, int start, int end)
          Calculate the checksum for the byte array.
 java.lang.String getDatabasePath()
          Get the database path.
 java.lang.String getLobCompressionAlgorithm(int type)
          Get the compression algorithm used for large objects.
 SmallLRUCache<java.lang.String,java.lang.String[]> getLobFileListCache()
          Get the lob file list cache if it is used.
 boolean getLobFilesInDirectories()
          Checks if the lob files stored in directories.
 java.lang.Object getLobSyncObject()
          Get the synchronization object for lob operations.
 int getMaxLengthInplaceLob()
          Get the maximum length of a in-place large object
 TempFileDeleter getTempFileDeleter()
          Get the temp file deleter mechanism.
 Trace getTrace()
          Get the trace writer.
 void handleInvalidChecksum()
          Called when the checksum was invalid.
static void main(java.lang.String... a)
          Run just this test.
 FileStore openFile(java.lang.String name, java.lang.String mode, boolean mustExist)
          Open a file at the given location.
 void test()
          This method will be called by the test framework.
 
Methods inherited from class org.h2.test.TestBase
assertContains, assertEqualDatabases, assertEqualReaders, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEqualStreams, assertFalse, assertFalse, assertKnownException, assertKnownException, assertResult, assertResultRowCount, assertResultSetMeta, assertResultSetOrdered, assertSingleValue, assertSmaller, assertStartsWith, assertTrue, assertTrue, crash, createCaller, createCaller, deleteDb, deleteDb, eatMemory, fail, fail, freeMemory, getClassPath, getConnection, getConnection, getMemoryUsed, getPageStoreProperty, getPassword, getPassword, getSize, getTestDir, getURL, getUser, init, init, logError, println, printTime, printTimeMemory, readString, runTest, startServerIfRequired, testCase, trace, trace, traceMemory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TestValueMemory

public TestValueMemory()
Method Detail

main

public static void main(java.lang.String... a)
                 throws java.lang.Exception
Run just this test.

Parameters:
a - ignored
Throws:
java.lang.Exception

test

public void test()
          throws java.sql.SQLException
Description copied from class: TestBase
This method will be called by the test framework.

Specified by:
test in class TestBase
Throws:
java.sql.SQLException

allocateObjectId

public int allocateObjectId(boolean needFresh,
                            boolean dataFile)
Description copied from interface: DataHandler
Get the next object id. This method is not required if LOB_FILES_IN_DIRECTORIES is enabled.

Specified by:
allocateObjectId in interface DataHandler
Parameters:
needFresh - if a fresh id is required
dataFile - true if the id is for the data file
Returns:
the new id

checkPowerOff

public void checkPowerOff()
Description copied from interface: DataHandler
Check if the simulated power failure occurred. This call will decrement the countdown.

Specified by:
checkPowerOff in interface DataHandler

checkWritingAllowed

public void checkWritingAllowed()
Description copied from interface: DataHandler
Check if writing is allowed.

Specified by:
checkWritingAllowed in interface DataHandler

compareTypeSave

public int compareTypeSave(Value a,
                           Value b)
Description copied from interface: DataHandler
Compare two values.

Specified by:
compareTypeSave in interface DataHandler
Parameters:
a - the first value
b - the second value
Returns:
0 for equal, 1 if a is larger than b, and -1 otherwise

createTempFile

public java.lang.String createTempFile()
                                throws java.sql.SQLException
Description copied from interface: DataHandler
Create a temporary file and return the file name.

Specified by:
createTempFile in interface DataHandler
Returns:
the file name
Throws:
java.sql.SQLException

freeUpDiskSpace

public void freeUpDiskSpace()
Description copied from interface: DataHandler
Free up disk space if possible. This method is called if more space is needed.

Specified by:
freeUpDiskSpace in interface DataHandler

getChecksum

public int getChecksum(byte[] data,
                       int start,
                       int end)
Description copied from interface: DataHandler
Calculate the checksum for the byte array.

Specified by:
getChecksum in interface DataHandler
Parameters:
data - the byte array
start - the starting offset
end - the end offset
Returns:
the checksum

getDatabasePath

public java.lang.String getDatabasePath()
Description copied from interface: DataHandler
Get the database path.

Specified by:
getDatabasePath in interface DataHandler
Returns:
the database path

getLobCompressionAlgorithm

public java.lang.String getLobCompressionAlgorithm(int type)
Description copied from interface: DataHandler
Get the compression algorithm used for large objects.

Specified by:
getLobCompressionAlgorithm in interface DataHandler
Parameters:
type - the data type (CLOB or BLOB)
Returns:
the compression algorithm, or null

getLobSyncObject

public java.lang.Object getLobSyncObject()
Description copied from interface: DataHandler
Get the synchronization object for lob operations.

Specified by:
getLobSyncObject in interface DataHandler
Returns:
the synchronization object

getMaxLengthInplaceLob

public int getMaxLengthInplaceLob()
Description copied from interface: DataHandler
Get the maximum length of a in-place large object

Specified by:
getMaxLengthInplaceLob in interface DataHandler
Returns:
the maximum size

handleInvalidChecksum

public void handleInvalidChecksum()
Description copied from interface: DataHandler
Called when the checksum was invalid.

Specified by:
handleInvalidChecksum in interface DataHandler

openFile

public FileStore openFile(java.lang.String name,
                          java.lang.String mode,
                          boolean mustExist)
                   throws java.sql.SQLException
Description copied from interface: DataHandler
Open a file at the given location.

Specified by:
openFile in interface DataHandler
Parameters:
name - the file name
mode - the mode
mustExist - whether the file must already exist
Returns:
the file
Throws:
java.sql.SQLException

getLobFilesInDirectories

public boolean getLobFilesInDirectories()
Description copied from interface: DataHandler
Checks if the lob files stored in directories.

Specified by:
getLobFilesInDirectories in interface DataHandler
Returns:
true if lob files are stored in directories.

getLobFileListCache

public SmallLRUCache<java.lang.String,java.lang.String[]> getLobFileListCache()
Description copied from interface: DataHandler
Get the lob file list cache if it is used.

Specified by:
getLobFileListCache in interface DataHandler
Returns:
the cache or null

getTempFileDeleter

public TempFileDeleter getTempFileDeleter()
Description copied from interface: DataHandler
Get the temp file deleter mechanism.

Specified by:
getTempFileDeleter in interface DataHandler
Returns:
the temp file deleter

getTrace

public Trace getTrace()
Description copied from interface: DataHandler
Get the trace writer.

Specified by:
getTrace in interface DataHandler
Returns:
the trace writer