• 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;
9using System.Collections.Generic;
10using System.IO;
11using System.Text;
12using System.Threading;
13using System.Xml;
14using NUnit.Framework;
15using BerkeleyDB;
16
17namespace CsharpAPITest
18{
19	[TestFixture]
20	public class SecondaryHashDatabaseConfigTest
21	{
22		private string testFixtureHome;
23		private string testFixtureName;
24		private string testName;
25		private string testHome;
26
27		[TestFixtureSetUp]
28		public void RunBeforeTests()
29		{
30			testFixtureName = "SecondaryHashDatabaseConfigTest";
31			testFixtureHome = "./TestOut/" + testFixtureName;
32
33			Configuration.ClearDir(testFixtureHome);
34		}
35
36		[Test]
37		public void TestConfig()
38		{
39			testName = "TestConfig";
40			testHome = testFixtureHome + "/" + testName;
41			string dbFileName = testHome + "/" + testName + ".db";
42
43			Configuration.ClearDir(testHome);
44			XmlElement xmlElem = Configuration.TestSetUp(
45			    testFixtureName, testName);
46			// Open a primary btree database.
47			HashDatabaseConfig hashDBConfig =
48			    new HashDatabaseConfig();
49			hashDBConfig.Creation = CreatePolicy.IF_NEEDED;
50			HashDatabase hashDB = HashDatabase.Open(
51			    dbFileName, hashDBConfig);
52
53			SecondaryHashDatabaseConfig secDBConfig =
54			    new SecondaryHashDatabaseConfig(hashDB, null);
55
56			Config(xmlElem, ref secDBConfig, true);
57			Confirm(xmlElem, secDBConfig, true);
58
59			// Close the primary btree database.
60			hashDB.Close();
61		}
62
63		public static void Confirm(XmlElement xmlElement,
64		    SecondaryHashDatabaseConfig secHashDBConfig,
65		    bool compulsory)
66		{
67			SecondaryDatabaseConfig secDBConfig =
68			    secHashDBConfig;
69			SecondaryDatabaseConfigTest.Confirm(xmlElement,
70			    secDBConfig, compulsory);
71
72			// Confirm secondary hash database specific configuration.
73			Configuration.ConfirmCreatePolicy(xmlElement,
74			    "Creation", secHashDBConfig.Creation, compulsory);
75			Configuration.ConfirmDuplicatesPolicy(xmlElement,
76			    "Duplicates", secHashDBConfig.Duplicates, compulsory);
77			Configuration.ConfirmUint(xmlElement, "FillFactor",
78			    secHashDBConfig.FillFactor, compulsory);
79			Configuration.ConfirmUint(xmlElement,
80			    "NumElements",
81			    secHashDBConfig.TableSize, compulsory);
82		}
83
84		public static void Config(XmlElement xmlElement,
85		    ref SecondaryHashDatabaseConfig secHashDBConfig,
86		    bool compulsory)
87		{
88			uint fillFactor = new uint();
89			uint numElements = new uint();
90
91			SecondaryDatabaseConfig secDBConfig = secHashDBConfig;
92			SecondaryDatabaseConfigTest.Config(xmlElement,
93			    ref secDBConfig, compulsory);
94
95			// Configure specific fields/properties of hash db
96			Configuration.ConfigCreatePolicy(xmlElement,
97			    "Creation", ref secHashDBConfig.Creation, compulsory);
98			Configuration.ConfigDuplicatesPolicy(xmlElement,
99			    "Duplicates", ref secHashDBConfig.Duplicates, compulsory);
100			if (Configuration.ConfigUint(xmlElement, "FillFactor",
101			     ref fillFactor, compulsory))
102				secHashDBConfig.FillFactor = fillFactor;
103			if (Configuration.ConfigUint(xmlElement, "NumElements",
104			     ref numElements, compulsory))
105				secHashDBConfig.TableSize = numElements;
106		}
107	}
108}
109
110