Browse Source

define TestDataSrc::init() to avoid initialization ordering problems
for some non local objects


git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@1128 e5f2f494-b856-4b98-b285-d166d9295462

JINMEI Tatuya 15 years ago
parent
commit
8430ef5fd1
3 changed files with 15 additions and 5 deletions
  1. 3 2
      src/lib/auth/datasrc_unittest.cc
  2. 9 1
      src/lib/auth/unittest_ds.cc
  3. 3 2
      src/lib/auth/unittest_ds.h

+ 3 - 2
src/lib/auth/datasrc_unittest.cc

@@ -45,8 +45,9 @@ TestDataSrc ds;
 
 class DataSrcTest : public ::testing::Test {
 protected:
-    DataSrcTest() : obuffer(0), renderer(obuffer), msg(Message::PARSE)
-    {}
+    DataSrcTest() : obuffer(0), renderer(obuffer), msg(Message::PARSE) {
+        ds.init();
+    }
     OutputBuffer obuffer;
     MessageRenderer renderer;
     Message msg;

+ 9 - 1
src/lib/auth/unittest_ds.cc

@@ -95,7 +95,12 @@ RRsetPtr loop1_cname;
 RRsetPtr loop2_cname;
 }
 
-TestDataSrc::TestDataSrc() {
+DataSrc::Result
+TestDataSrc::init() {
+    if (initialized) {
+        return (SUCCESS);
+    }
+
     RRset* rp;
     RRsetPtr rrsig;
 
@@ -403,6 +408,9 @@ TestDataSrc::TestDataSrc() {
     loop2_cname = RRsetPtr(new RRset(loop2, RRClass::IN(), RRType::CNAME(),
                                      RRTTL(3600)));
     loop2_cname->addRdata(generic::CNAME(loop1));
+
+    initialized = true;
+    return (SUCCESS);
 }
 
 void

+ 3 - 2
src/lib/auth/unittest_ds.h

@@ -44,7 +44,7 @@ private:
     TestDataSrc(const TestDataSrc& source);
     TestDataSrc operator=(const TestDataSrc& source); 
 public:
-    TestDataSrc();
+    TestDataSrc() : initialized(false) {}
     ~TestDataSrc() {}
     //@}
 
@@ -91,10 +91,11 @@ public:
                              const isc::dns::Name& zonename,
                              isc::dns::RRsetList& target) const;
 
-    Result init() { return (SUCCESS); }
+    Result init();
     Result close() { return (SUCCESS); }
 
 private:
+    bool initialized;
     enum Mode {
         NORMAL,
         ADDRESS,