• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/db-4.8.30/test/scr037/
1/*-
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 2009 Oracle.  All rights reserved.
5 *
6 */
7using System;
8using System.Collections.Generic;
9using System.IO;
10using System.Text;
11using System.Xml;
12using System.Xml.XPath;
13using BerkeleyDB;
14using NUnit.Framework;
15
16namespace CsharpAPITest
17{
18	[TestFixture]
19	public class DatabaseEnvironmentConfigTest
20	{
21		private string testFixtureHome;
22		private string testFixtureName;
23		private string testName;
24		private string testHome;
25
26		[TestFixtureSetUp]
27		public void RunBeforeTests()
28		{
29			testFixtureName = "DatabaseEnvironmentConfigTest";
30			testFixtureHome = "./TestOut/" + testFixtureName;
31
32			Configuration.ClearDir(testFixtureHome);
33		}
34
35		[Test]
36		public void TestConfig()
37		{
38			testName = "TestConfig";
39			XmlElement xmlElem = Configuration.TestSetUp(
40			    testFixtureName, testName);
41			DatabaseEnvironmentConfig envConfig =
42			    new DatabaseEnvironmentConfig();
43			Config(xmlElem, ref envConfig, true);
44			Confirm(xmlElem, envConfig, true);
45		}
46
47		public static void Confirm(XmlElement xmlElement,
48		    DatabaseEnvironmentConfig envConfig, bool compulsory)
49		{
50			Configuration.ConfirmBool(xmlElement, "AutoCommit",
51			    envConfig.AutoCommit, compulsory);
52			Configuration.ConfirmBool(xmlElement, "CDB_ALLDB",
53			    envConfig.CDB_ALLDB, compulsory);
54			Configuration.ConfirmBool(xmlElement, "Create",
55			    envConfig.Create, compulsory);
56			Configuration.ConfirmStringList(xmlElement, "DataDirs",
57			    envConfig.DataDirs, compulsory);
58			Configuration.ConfirmString(xmlElement, "ErrorPrefix",
59			    envConfig.ErrorPrefix, compulsory);
60			Configuration.ConfirmBool(xmlElement, "ForceFlush",
61			    envConfig.ForceFlush, compulsory);
62			Configuration.ConfirmBool(xmlElement, "FreeThreaded",
63			    envConfig.FreeThreaded, compulsory);
64			Configuration.ConfirmBool(xmlElement, "InitRegions",
65			    envConfig.InitRegions, compulsory);
66			Configuration.ConfirmString(xmlElement,
67			    "IntermediateDirMode",
68			    envConfig.IntermediateDirMode, compulsory);
69			Configuration.ConfirmBool(xmlElement, "Lockdown",
70			    envConfig.Lockdown, compulsory);
71			Configuration.ConfirmUint(xmlElement, "LockTimeout",
72			    envConfig.LockTimeout, compulsory);
73			Configuration.ConfirmUint(xmlElement, "MaxTransactions",
74			    envConfig.MaxTransactions, compulsory);
75			Configuration.ConfirmBool(xmlElement, "NoBuffer",
76			    envConfig.NoBuffer, compulsory);
77			Configuration.ConfirmBool(xmlElement, "NoLocking",
78			    envConfig.NoLocking, compulsory);
79			Configuration.ConfirmBool(xmlElement, "NoMMap",
80			    envConfig.NoMMap, compulsory);
81			Configuration.ConfirmBool(xmlElement, "NoLocking",
82			    envConfig.NoLocking, compulsory);
83			Configuration.ConfirmBool(xmlElement, "NoPanic",
84			    envConfig.NoPanic, compulsory);
85			Configuration.ConfirmBool(xmlElement, "Overwrite",
86			    envConfig.Overwrite, compulsory);
87			Configuration.ConfirmBool(xmlElement, "Private",
88			    envConfig.Private, compulsory);
89			Configuration.ConfirmBool(xmlElement, "Register",
90			    envConfig.Register, compulsory);
91			Configuration.ConfirmBool(xmlElement, "RunFatalRecovery",
92			    envConfig.RunFatalRecovery, compulsory);
93			Configuration.ConfirmBool(xmlElement, "RunRecovery",
94			    envConfig.RunRecovery, compulsory);
95			Configuration.ConfirmBool(xmlElement, "SystemMemory",
96			    envConfig.SystemMemory, compulsory);
97			Configuration.ConfirmString(xmlElement, "TempDir",
98			    envConfig.TempDir, compulsory);
99			Configuration.ConfirmBool(xmlElement, "TimeNotGranted",
100			    envConfig.TimeNotGranted, compulsory);
101			Configuration.ConfirmBool(xmlElement, "TxnNoSync",
102			    envConfig.TxnNoSync, compulsory);
103			Configuration.ConfirmBool(xmlElement, "TxnNoWait",
104			    envConfig.TxnNoWait, compulsory);
105			Configuration.ConfirmBool(xmlElement, "TxnSnapshot",
106			    envConfig.TxnSnapshot, compulsory);
107			Configuration.ConfirmDateTime(xmlElement,"TxnTimestamp",
108			    envConfig.TxnTimestamp, compulsory);
109			Configuration.ConfirmBool(xmlElement, "TxnWriteNoSync",
110			    envConfig.TxnWriteNoSync, compulsory);
111			Configuration.ConfirmBool(xmlElement, "UseCDB",
112			    envConfig.UseCDB, compulsory);
113			Configuration.ConfirmBool(xmlElement, "UseLocking",
114			    envConfig.UseLocking, compulsory);
115			Configuration.ConfirmBool(xmlElement, "UseLogging",
116			    envConfig.UseLogging, compulsory);
117			Configuration.ConfirmBool(xmlElement, "UseMPool",
118			    envConfig.UseMPool, compulsory);
119			Configuration.ConfirmBool(xmlElement, "UseMVCC",
120			    envConfig.UseMVCC, compulsory);
121			Configuration.ConfirmBool(xmlElement, "UseReplication",
122			    envConfig.UseReplication, compulsory);
123			Configuration.ConfirmBool(xmlElement, "UseTxns",
124			    envConfig.UseTxns, compulsory);
125			envConfig.Verbosity = new VerboseMessages();
126			Configuration.ConfirmVerboseMessages(xmlElement,
127			    "Verbosity", envConfig.Verbosity, compulsory);
128			Configuration.ConfirmBool(xmlElement, "YieldCPU",
129			    envConfig.YieldCPU, compulsory);
130		}
131
132		public static void Config(XmlElement xmlElement,
133		    ref DatabaseEnvironmentConfig envConfig, bool compulsory)
134		{
135			uint value = new uint();
136			DateTime time = new DateTime();
137
138			Configuration.ConfigBool(xmlElement, "AutoCommit",
139			    ref envConfig.AutoCommit, compulsory);
140			Configuration.ConfigBool(xmlElement, "CDB_ALLDB",
141			    ref envConfig.CDB_ALLDB, compulsory);
142			Configuration.ConfigBool(xmlElement, "Create",
143			    ref envConfig.Create, compulsory);
144            Configuration.ConfigString(xmlElement, "CreationDir",
145                ref envConfig.CreationDir, compulsory);
146			Configuration.ConfigStringList(xmlElement, "DataDirs",
147			    ref envConfig.DataDirs, compulsory);
148			Configuration.ConfigString(xmlElement, "ErrorPrefix",
149			    ref envConfig.ErrorPrefix, compulsory);
150			Configuration.ConfigBool(xmlElement, "ForceFlush",
151			    ref envConfig.ForceFlush, compulsory);
152			Configuration.ConfigBool(xmlElement, "FreeThreaded",
153			    ref envConfig.FreeThreaded, compulsory);
154			Configuration.ConfigBool(xmlElement, "InitRegions",
155			    ref envConfig.InitRegions, compulsory);
156			Configuration.ConfigString(xmlElement, "IntermediateDirMode",
157			    ref envConfig.IntermediateDirMode, compulsory);
158			Configuration.ConfigBool(xmlElement, "Lockdown",
159			    ref envConfig.Lockdown, compulsory);
160			if (Configuration.ConfigUint(xmlElement, "LockTimeout",
161			    ref value, compulsory))
162				envConfig.LockTimeout = value;
163			if (Configuration.ConfigUint(xmlElement, "MaxTransactions",
164			    ref value, compulsory))
165				envConfig.MaxTransactions = value;
166			Configuration.ConfigBool(xmlElement, "NoBuffer",
167			    ref envConfig.NoBuffer, compulsory);
168			Configuration.ConfigBool(xmlElement, "NoLocking",
169			    ref envConfig.NoLocking, compulsory);
170			Configuration.ConfigBool(xmlElement, "NoMMap",
171			    ref envConfig.NoMMap, compulsory);
172			Configuration.ConfigBool(xmlElement, "NoLocking",
173			    ref envConfig.NoLocking, compulsory);
174			Configuration.ConfigBool(xmlElement, "NoPanic",
175			    ref envConfig.NoPanic, compulsory);
176			Configuration.ConfigBool(xmlElement, "Overwrite",
177			    ref envConfig.Overwrite, compulsory);
178			Configuration.ConfigBool(xmlElement, "Private",
179			    ref envConfig.Private, compulsory);
180			Configuration.ConfigBool(xmlElement, "Register",
181			    ref envConfig.Register, compulsory);
182			Configuration.ConfigBool(xmlElement, "RunFatalRecovery",
183			    ref envConfig.RunFatalRecovery, compulsory);
184			Configuration.ConfigBool(xmlElement, "RunRecovery",
185			    ref envConfig.RunRecovery, compulsory);
186			Configuration.ConfigBool(xmlElement, "SystemMemory",
187			    ref envConfig.SystemMemory, compulsory);
188			Configuration.ConfigString(xmlElement, "TempDir",
189			    ref envConfig.TempDir, compulsory);
190			Configuration.ConfigBool(xmlElement, "TimeNotGranted",
191			    ref envConfig.TimeNotGranted, compulsory);
192			Configuration.ConfigBool(xmlElement, "TxnNoSync",
193			    ref envConfig.TxnNoSync, compulsory);
194			Configuration.ConfigBool(xmlElement, "TxnNoWait",
195			    ref envConfig.TxnNoWait, compulsory);
196			Configuration.ConfigBool(xmlElement, "TxnSnapshot",
197			    ref envConfig.TxnSnapshot, compulsory);
198			if (Configuration.ConfigDateTime(xmlElement, "TxnTimestamp",
199			    ref time, compulsory))
200				envConfig.TxnTimestamp = time;
201			Configuration.ConfigBool(xmlElement, "TxnWriteNoSync",
202			    ref envConfig.TxnWriteNoSync, compulsory);
203			Configuration.ConfigBool(xmlElement, "UseLocking",
204			    ref envConfig.UseLocking, compulsory);
205			Configuration.ConfigBool(xmlElement, "UseLogging",
206			    ref envConfig.UseLogging, compulsory);
207			Configuration.ConfigBool(xmlElement, "UseMPool",
208			    ref envConfig.UseMPool, compulsory);
209			Configuration.ConfigBool(xmlElement, "UseMVCC",
210			    ref envConfig.UseMVCC, compulsory);
211			Configuration.ConfigBool(xmlElement, "UseReplication",
212			    ref envConfig.UseReplication, compulsory);
213			Configuration.ConfigBool(xmlElement, "UseTxns",
214			    ref envConfig.UseTxns, compulsory);
215			envConfig.Verbosity = new VerboseMessages();
216			Configuration.ConfigVerboseMessages(xmlElement,
217			    "Verbosity", ref envConfig.Verbosity, compulsory);
218			Configuration.ConfigBool(xmlElement, "YieldCPU",
219			    ref envConfig.YieldCPU, compulsory);
220		}
221
222		[Test]
223		public void TestConfigLock()
224		{
225			testName = "TestConfigLock";
226			XmlElement xmlElem = Configuration.TestSetUp(
227			    testFixtureName, testName);
228			DatabaseEnvironmentConfig cfg =
229			    new DatabaseEnvironmentConfig();
230			cfg.LockSystemCfg = new LockingConfig();
231			LockingConfigTest.Config(xmlElem,
232			    ref cfg.LockSystemCfg, true);
233			LockingConfigTest.Confirm(xmlElem,
234			    cfg.LockSystemCfg, true);
235		}
236
237		[Test]
238		public void TestConfigLog()
239		{
240			testName = "TestConfigLog";
241			XmlElement xmlElem = Configuration.TestSetUp(
242			    testFixtureName, testName);
243			DatabaseEnvironmentConfig cfg =
244			    new DatabaseEnvironmentConfig();
245			cfg.LogSystemCfg = new LogConfig();
246			LogConfigTest.Config(xmlElem, ref cfg.LogSystemCfg, true);
247			LogConfigTest.Confirm(xmlElem, cfg.LogSystemCfg, true);
248		}
249
250		[Test]
251		public void TestConfigMutex()
252		{
253			testName = "TestConfigMutex";
254			XmlElement xmlElem = Configuration.TestSetUp(
255			    testFixtureName, testName);
256			DatabaseEnvironmentConfig cfg =
257			    new DatabaseEnvironmentConfig();
258			cfg.MutexSystemCfg = new MutexConfig();
259			MutexConfigTest.Config(xmlElem, ref cfg.MutexSystemCfg, true);
260			MutexConfigTest.Confirm(xmlElem, cfg.MutexSystemCfg, true);
261		}
262
263		[Test]
264		public void TestConfigReplication()
265		{
266			testName = "TestConfigReplication";
267			XmlElement xmlElem = Configuration.TestSetUp(
268			    testFixtureName, testName);
269			DatabaseEnvironmentConfig cfg =
270			    new DatabaseEnvironmentConfig();
271			cfg.RepSystemCfg = new ReplicationConfig();
272			ReplicationConfigTest.Config(xmlElem,
273			    ref cfg.RepSystemCfg, true);
274			ReplicationConfigTest.Confirm(xmlElem,
275			    cfg.RepSystemCfg, true);
276		}
277
278		[Test]
279		public void TestSetEncryption()
280		{
281			testName = "TestSetEncryption";
282			testHome = testFixtureHome + "/" + testName;
283
284			Configuration.ClearDir(testHome);
285			DatabaseEnvironmentConfig envConfig =
286			    new DatabaseEnvironmentConfig();
287			envConfig.Create = true;
288            envConfig.SetEncryption("key", EncryptionAlgorithm.AES);
289			Assert.AreEqual("key", envConfig.EncryptionPassword);
290            Assert.AreEqual(EncryptionAlgorithm.AES, envConfig.EncryptAlgorithm);
291			DatabaseEnvironment env = DatabaseEnvironment.Open(
292			    testHome, envConfig);
293            Assert.AreEqual(EncryptionAlgorithm.AES, env.EncryptAlgorithm);
294			env.Close();
295		}
296
297	}
298}
299
300