diff options
Diffstat (limited to 'test/csharp/LogConfigTest.cs')
-rw-r--r-- | test/csharp/LogConfigTest.cs | 107 |
1 files changed, 106 insertions, 1 deletions
diff --git a/test/csharp/LogConfigTest.cs b/test/csharp/LogConfigTest.cs index 9c9ee520..fa99a4e5 100644 --- a/test/csharp/LogConfigTest.cs +++ b/test/csharp/LogConfigTest.cs @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 2009, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2015 Oracle and/or its affiliates. All rights reserved. * */ using System; @@ -61,8 +61,10 @@ namespace CsharpAPITest cfg.LogSystemCfg.BufferSize = 409600; cfg.LogSystemCfg.MaxFileSize = 10480; cfg.LogSystemCfg.NoBuffer = false; + cfg.LogSystemCfg.NoSync = true; cfg.LogSystemCfg.ZeroOnCreate = true; cfg.LogSystemCfg.InMemory = true; + cfg.LogSystemCfg.LogBlobContent = true; DatabaseEnvironment env = DatabaseEnvironment.Open(testHome, cfg); BTreeDatabase db; @@ -146,14 +148,17 @@ namespace CsharpAPITest cfg.LogSystemCfg.FileMode = 755; cfg.LogSystemCfg.ForceSync = true; cfg.LogSystemCfg.InMemory = false; + cfg.LogSystemCfg.LogBlobContent = false; cfg.LogSystemCfg.MaxFileSize = 1048576; cfg.LogSystemCfg.NoBuffer = false; + cfg.LogSystemCfg.NoSync = true; cfg.LogSystemCfg.RegionSize = 204800; cfg.LogSystemCfg.ZeroOnCreate = true; DatabaseEnvironment env = DatabaseEnvironment.Open(testHome, cfg); LogStats stats = env.LoggingSystemStats(); + env.Msgfile = testHome + "/" + testName+ ".log"; env.PrintLoggingSystemStats(); Assert.AreEqual(10240, stats.BufferSize); Assert.AreEqual(1, stats.CurrentFile); @@ -216,6 +221,98 @@ namespace CsharpAPITest db.Close(); env.Close(); } + + [Test] + public void TestLogStatPrint() + { + testName = "TestLogStatPrint"; + SetUpTest(true); + + string[] messageInfo = new string[] + { + "Log magic number", + "Log version number", + "Log record cache size", + "Log file mode", + "Current log file size", + "Initial fileid allocation", + "Current fileids in use", + "Maximum fileids used", + "Records entered into the log", + "Log bytes written", + "Log bytes written since last checkpoint", + "Total log file I/O writes", + "Total log file I/O writes due to overflow", + "Total log file flushes", + "Total log file I/O reads", + "Current log file number", + "Current log file offset", + "On-disk log file number", + "On-disk log file offset", + "Maximum commits in a log flush", + "Minimum commits in a log flush", + "Region size", + "The number of region locks that required waiting (0%)" + }; + + string logDir = "./"; + Directory.CreateDirectory(testHome + "/" + logDir); + + // Configure and open an environment. + DatabaseEnvironmentConfig envConfig = + new DatabaseEnvironmentConfig(); + envConfig.Create = true; + envConfig.UseTxns = true; + + envConfig.LogSystemCfg = new LogConfig(); + envConfig.LogSystemCfg.AutoRemove = false; + envConfig.LogSystemCfg.BufferSize = 10240; + envConfig.LogSystemCfg.Dir = logDir; + envConfig.LogSystemCfg.FileMode = 755; + envConfig.LogSystemCfg.ForceSync = true; + envConfig.LogSystemCfg.InMemory = false; + envConfig.LogSystemCfg.LogBlobContent = false; + envConfig.LogSystemCfg.MaxFileSize = 1048576; + envConfig.LogSystemCfg.NoBuffer = false; + envConfig.LogSystemCfg.NoSync = true; + envConfig.LogSystemCfg.RegionSize = 204800; + envConfig.LogSystemCfg.ZeroOnCreate = true; + + DatabaseEnvironment env = + DatabaseEnvironment.Open(testHome, envConfig); + + // Confirm message file does not exist. + string messageFile = testHome + "/" + "msgfile"; + Assert.AreEqual(false, File.Exists(messageFile)); + + // Call set_msgfile() of env. + env.Msgfile = messageFile; + + // Print env statistic to message file. + env.PrintLoggingSystemStats(); + + // Confirm message file exists now. + Assert.AreEqual(true, File.Exists(messageFile)); + + env.Msgfile = ""; + int counter = 0; + string line; + line = null; + + // Read the message file line by line. + System.IO.StreamReader file = new System.IO.StreamReader(@"" + messageFile); + while ((line = file.ReadLine()) != null) + { + string[] tempStr = line.Split('\t'); + // Confirm the content of the message file. + Assert.AreEqual(tempStr[1], messageInfo[counter]); + counter++; + } + Assert.AreNotEqual(counter, 0); + + file.Close(); + env.Close(); + } [Test] public void TestLsn() @@ -247,10 +344,14 @@ namespace CsharpAPITest logConfig.ForceSync, compulsory); Configuration.ConfirmBool(xmlElement, "InMemory", logConfig.InMemory, compulsory); + Configuration.ConfirmBool(xmlElement, "LogBlobContent", + logConfig.LogBlobContent, compulsory); Configuration.ConfirmUint(xmlElement, "MaxFileSize", logConfig.MaxFileSize, compulsory); Configuration.ConfirmBool(xmlElement, "NoBuffer", logConfig.NoBuffer, compulsory); + Configuration.ConfirmBool(xmlElement, "NoSync", + logConfig.NoSync, compulsory); Configuration.ConfirmUint(xmlElement, "RegionSize", logConfig.RegionSize, compulsory); Configuration.ConfirmBool(xmlElement, "ZeroOnCreate", @@ -277,11 +378,15 @@ namespace CsharpAPITest ref logConfig.ForceSync, compulsory); Configuration.ConfigBool(xmlElement, "InMemory", ref logConfig.InMemory, compulsory); + Configuration.ConfigBool(xmlElement, "LogBlobContent", + ref logConfig.LogBlobContent, compulsory); if (Configuration.ConfigUint(xmlElement, "MaxFileSize", ref uintValue, compulsory)) logConfig.MaxFileSize = uintValue; Configuration.ConfigBool(xmlElement, "NoBuffer", ref logConfig.NoBuffer, compulsory); + Configuration.ConfigBool(xmlElement, "NoSync", + ref logConfig.NoSync, compulsory); if (Configuration.ConfigUint(xmlElement, "RegionSize", ref uintValue, compulsory)) logConfig.RegionSize = uintValue; |