public bool cacheTests(
			DbSystem	dbSystem)
        {
            uint						uiCacheAdjustPercent = 66;
            ulong						ulCacheAdjustMin = 20000000;
            ulong						ulCacheAdjustMax = 1000000000;
            ulong						ulCacheAdjustMinToLeave = 0;
            #if !mono
            CS_XFLM_CACHE_INFO	cacheInfo;
            #endif

            beginTest( "Set dynamic cache limit test");
            try
            {
                dbSystem.setDynamicMemoryLimit( uiCacheAdjustPercent,
                    ulCacheAdjustMin, ulCacheAdjustMax,
                    ulCacheAdjustMinToLeave);
            }
            catch (XFlaimException ex)
            {
                endTest( false, ex, "calling setDynamicMemoryLimit");
                return( false);
            }
            endTest( false, true);

            #if !mono
            beginTest( "Get cache info for dynamic cache limit test");
            try
            {
                cacheInfo = dbSystem.getCacheInfo();
            }
            catch (XFlaimException ex)
            {
                endTest( false, ex, "calling getCacheInfo");
                return( false);
            }
            endTest( false, true);

            beginTest( "See if cache limits were set");
            if (cacheInfo.bDynamicCacheAdjust == 0 ||
                cacheInfo.uiCacheAdjustPercent != uiCacheAdjustPercent ||
                cacheInfo.ulCacheAdjustMin != ulCacheAdjustMin ||
                cacheInfo.ulCacheAdjustMax != ulCacheAdjustMax ||
                cacheInfo.ulCacheAdjustMinToLeave != ulCacheAdjustMinToLeave)
            {
                endTest( false, false);
                System.Console.WriteLine( "Dynamic cache adjust parameter mismatch");
                System.Console.WriteLine( "Dynamic Adjust Flag..... Set: true Get: {0}",
                    cacheInfo.bDynamicCacheAdjust != 0 ? "true" : "false");
                System.Console.WriteLine( "Adjust Percent.......... Set: {0} Get: {1}",
                    uiCacheAdjustPercent, cacheInfo.uiCacheAdjustPercent);
                System.Console.WriteLine( "Adjust Min.............. Set: {0} Get: {1}",
                    ulCacheAdjustMin, cacheInfo.ulCacheAdjustMin);
                System.Console.WriteLine( "Adjust Max.............. Set: {0} Get: {1}",
                    ulCacheAdjustMax, cacheInfo.ulCacheAdjustMax);
                System.Console.WriteLine( "Adjust Min To Leave..... Set: {0} Get: {1}",
                    ulCacheAdjustMinToLeave, cacheInfo.ulCacheAdjustMinToLeave);
                return( false);
            }
            endTest( false, true);
            #endif

            // SET AND TEST A HARD LIMIT

            beginTest( "Set hard cache limit test");
            try
            {
                dbSystem.setHardMemoryLimit( 0, false, 0, ulCacheAdjustMax,
                    0, false);
            }
            catch (XFlaimException ex)
            {
                endTest( false, ex, "calling setHardMemoryLimit");
                return( false);
            }
            endTest( false, true);

            #if !mono
            beginTest( "Get cache info for hard cache limit test");
            try
            {
                cacheInfo = dbSystem.getCacheInfo();
            }
            catch (XFlaimException ex)
            {
                endTest( false, ex, "calling getCacheInfo");
                return( false);
            }
            endTest( false, true);

            beginTest( "See if cache limits were set");
            if (cacheInfo.bDynamicCacheAdjust != 0 ||
                cacheInfo.ulCacheAdjustMax != ulCacheAdjustMax ||
                cacheInfo.ulMaxBytes != ulCacheAdjustMax)
            {
                endTest( false, false);
                System.Console.WriteLine( "Hard cache adjust parameter mismatch");
                System.Console.WriteLine( "Dynamic Adjust Flag..... Set: false Get: {0}",
                    cacheInfo.bDynamicCacheAdjust != 0 ? "true" : "false");
                System.Console.WriteLine( "Max..................... Set: {0} Get: {1}",
                    ulCacheAdjustMax, cacheInfo.ulCacheAdjustMax);
                System.Console.WriteLine( "Max Bytes............... Set: {0} Get: {1}",
                    ulCacheAdjustMax, cacheInfo.ulMaxBytes);
                return( false);
            }
            endTest( false, true);

            printCacheUsage( cacheInfo.blockCache, "BLOCK CACHE USAGE");
            printCacheUsage( cacheInfo.nodeCache, "NODE CACHE USAGE");
            #endif

            return( true);
        }