From: JINMEI Tatuya Date: Thu, 7 Feb 2013 03:46:52 +0000 (-0800) Subject: [2679] move enableNSEC3 logic to the parameter. now remove TestSQLite3Accessor. X-Git-Tag: bind10-1.1.0beta1-release~95^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=905792e57908a04539e76abdd32e67289ca9d4c6;p=thirdparty%2Fkea.git [2679] move enableNSEC3 logic to the parameter. now remove TestSQLite3Accessor. --- diff --git a/src/lib/datasrc/tests/database_unittest.cc b/src/lib/datasrc/tests/database_unittest.cc index fa865be629..e1554c4b04 100644 --- a/src/lib/datasrc/tests/database_unittest.cc +++ b/src/lib/datasrc/tests/database_unittest.cc @@ -1152,6 +1152,7 @@ TEST(DatabaseConnectionTest, getAllRecords) { // otherwise it could cause initialization fiasco at the instantiation time. struct DatabaseClientTestParam { boost::shared_ptr (*accessor_creator)(); + void (*enable_nsec3_fn)(DatabaseAccessor& accessor); }; // This test fixture is parameterized so that we can share (most of) the test @@ -1372,57 +1373,6 @@ public: TestNSEC3HashCreator test_nsec3_hash_creator_; }; -class TestSQLite3Accessor : public SQLite3Accessor { -public: - TestSQLite3Accessor() : SQLite3Accessor( - TEST_DATA_BUILDDIR "/rwtest.sqlite3.copied", "IN") - { - startUpdateZone("example.org.", true); - string columns[ADD_COLUMN_COUNT]; - for (int i = 0; TEST_RECORDS[i][0] != NULL; ++i) { - columns[ADD_NAME] = TEST_RECORDS[i][0]; - columns[ADD_REV_NAME] = Name(columns[ADD_NAME]).reverse().toText(); - columns[ADD_TYPE] = TEST_RECORDS[i][1]; - columns[ADD_TTL] = TEST_RECORDS[i][2]; - columns[ADD_SIGTYPE] = TEST_RECORDS[i][3]; - columns[ADD_RDATA] = TEST_RECORDS[i][4]; - - addRecordToZone(columns); - } - // We don't add NSEC3s until we are explicitly told we need them - // in enableNSEC3(); these would break some non NSEC3 tests. - commit(); - } - - void enableNSEC3() { - startUpdateZone("example.org.", false); - - // Add NSECPARAM at the zone origin - for (int i = 0; TEST_NSEC3PARAM_RECORDS[i][0] != NULL; ++i) { - const string param_columns[ADD_COLUMN_COUNT] = { - TEST_NSEC3PARAM_RECORDS[i][0], // name - Name(param_columns[ADD_NAME]).reverse().toText(), // revname - TEST_NSEC3PARAM_RECORDS[i][2], // TTL - TEST_NSEC3PARAM_RECORDS[i][1], // RR type - TEST_NSEC3PARAM_RECORDS[i][3], // sigtype - TEST_NSEC3PARAM_RECORDS[i][4] }; // RDATA - addRecordToZone(param_columns); - } - - // Add NSEC3s - for (int i = 0; TEST_NSEC3_RECORDS[i][0] != NULL; ++i) { - const string nsec3_columns[ADD_NSEC3_COLUMN_COUNT] = { - Name(TEST_NSEC3_RECORDS[i][0]).split(0, 1).toText(true), - TEST_NSEC3_RECORDS[i][2], // TTL - TEST_NSEC3_RECORDS[i][1], // RR type - TEST_NSEC3_RECORDS[i][4] }; // RDATA - addNSEC3RecordToZone(nsec3_columns); - } - - commit(); - } -}; - // The following two lines instantiate test cases with concrete accessor // classes to be tested. @@ -1431,13 +1381,73 @@ createMockAccessor() { return (boost::shared_ptr(new MockAccessor())); } +void +mockEnableNSEC3(DatabaseAccessor& accessor) { + dynamic_cast(accessor).enableNSEC3(); +} + boost::shared_ptr createSQLite3Accessor() { - return (boost::shared_ptr(new TestSQLite3Accessor())); + boost::shared_ptr accessor( + new SQLite3Accessor(TEST_DATA_BUILDDIR "/rwtest.sqlite3.copied", + "IN")); + + accessor->startUpdateZone("example.org.", true); + string columns[DatabaseAccessor::ADD_COLUMN_COUNT]; + for (int i = 0; TEST_RECORDS[i][0] != NULL; ++i) { + columns[DatabaseAccessor::ADD_NAME] = TEST_RECORDS[i][0]; + columns[DatabaseAccessor::ADD_REV_NAME] = + Name(columns[DatabaseAccessor::ADD_NAME]).reverse().toText(); + columns[DatabaseAccessor::ADD_TYPE] = TEST_RECORDS[i][1]; + columns[DatabaseAccessor::ADD_TTL] = TEST_RECORDS[i][2]; + columns[DatabaseAccessor::ADD_SIGTYPE] = TEST_RECORDS[i][3]; + columns[DatabaseAccessor::ADD_RDATA] = TEST_RECORDS[i][4]; + + accessor->addRecordToZone(columns); + } + // We don't add NSEC3s until we are explicitly told we need them + // in enableNSEC3(); these would break some non NSEC3 tests. + accessor->commit(); + + return (accessor); +} + +void +sqlite3EnableNSEC3(DatabaseAccessor& accessor) { + accessor.startUpdateZone("example.org.", false); + + // Add NSECPARAM at the zone origin + for (int i = 0; TEST_NSEC3PARAM_RECORDS[i][0] != NULL; ++i) { + const string param_columns[DatabaseAccessor::ADD_COLUMN_COUNT] = { + TEST_NSEC3PARAM_RECORDS[i][0], // name + Name(param_columns[DatabaseAccessor::ADD_NAME]).reverse().toText(), + // revname + TEST_NSEC3PARAM_RECORDS[i][2], // TTL + TEST_NSEC3PARAM_RECORDS[i][1], // RR type + TEST_NSEC3PARAM_RECORDS[i][3], // sigtype + TEST_NSEC3PARAM_RECORDS[i][4] }; // RDATA + accessor.addRecordToZone(param_columns); + } + + // Add NSEC3s + for (int i = 0; TEST_NSEC3_RECORDS[i][0] != NULL; ++i) { + const string nsec3_columns[DatabaseAccessor::ADD_NSEC3_COLUMN_COUNT] = + { + Name(TEST_NSEC3_RECORDS[i][0]).split(0, 1).toText(true), + TEST_NSEC3_RECORDS[i][2], // TTL + TEST_NSEC3_RECORDS[i][1], // RR type + TEST_NSEC3_RECORDS[i][4] // RDATA + }; + accessor.addNSEC3RecordToZone(nsec3_columns); + } + + accessor.commit(); } -const DatabaseClientTestParam mock_param = { createMockAccessor }; -const DatabaseClientTestParam sqlite3_param = { createSQLite3Accessor }; +const DatabaseClientTestParam mock_param = { createMockAccessor, + mockEnableNSEC3 }; +const DatabaseClientTestParam sqlite3_param = { createSQLite3Accessor, + sqlite3EnableNSEC3 }; INSTANTIATE_TEST_CASE_P(, DatabaseClientTest, ::testing::Values(&mock_param, &sqlite3_param)); @@ -1817,7 +1827,6 @@ doFindTest(ZoneFinder& finder, expected_flags, expected_name, options); } -#if 0 void doFindAtOriginTest(ZoneFinder& finder, const isc::dns::Name& origin, @@ -1843,6 +1852,7 @@ doFindAtOriginTest(ZoneFinder& finder, expected_flags, expected_name, options); } +#if 0 void doFindAllTestResult(ZoneFinder& finder, const isc::dns::Name& name, ZoneFinder::Result expected_result, @@ -2177,7 +2187,6 @@ TEST_P(DatabaseClientTest, find) { expected_rdatas_, expected_sig_rdatas_); } -#if 0 TEST_P(DatabaseClientTest, findAtOrigin) { ZoneFinderPtr finder(getFinder()); @@ -2218,7 +2227,7 @@ TEST_P(DatabaseClientTest, findAtOrigin) { zname_, ZoneFinder::FIND_DNSSEC); // Specified type of RR doesn't exist, with DNSSEC, enabling NSEC3 - current_accessor_->enableNSEC3(); + (GetParam()->enable_nsec3_fn)(*current_accessor_); expected_rdatas_.clear(); expected_sig_rdatas_.clear(); doFindAtOriginTest(*finder, zname_, RRType::TXT(), RRType::TXT(), @@ -2228,6 +2237,7 @@ TEST_P(DatabaseClientTest, findAtOrigin) { zname_, ZoneFinder::FIND_DNSSEC); } +#if 0 TEST_P(DatabaseClientTest, findAtOriginWithMinTTL) { // First, replace the SOA of the test zone so that its RR TTL is larger // than MINTTL (the original data are used in many places, so replacing