Browse Source

[trac505] No need for two different DNAMEs in test

We overflow the size of name by prolonging a name of full length by
little bit.
Michal 'vorner' Vaner 14 years ago
parent
commit
0c760d178e
1 changed files with 14 additions and 25 deletions
  1. 14 25
      src/bin/auth/tests/query_unittest.cc

+ 14 - 25
src/bin/auth/tests/query_unittest.cc

@@ -76,19 +76,14 @@ const char* const cname_nxdom_txt =
 const char* const cname_out_txt =
     "cnameout.example.com. 3600 IN CNAME www.example.org.\n";
 const char* const dname_txt =
-    "dname.example.com. 3600 IN DNAME dnametarget.example.com.\n";
+    "dname.example.com. 3600 IN DNAME "
+    "somethinglong.dnametarget.example.com.\n";
 const char* const dname_a_txt =
     "dname.example.com. 3600 IN A 192.0.2.5\n";
-const char* const dname_long_txt =
-    "longdname.example.com. 3600 IN DNAME "
-    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
-    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
-    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
-    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
-    "example.com.\n";
 // This is not inside the zone, this is created at runtime
 const char* const synthetized_cname_txt =
-    "www.dname.example.com. 3600 IN CNAME www.dnametarget.example.com.\n";
+    "www.dname.example.com. 3600 IN CNAME "
+    "www.somethinglong.dnametarget.example.com.\n";
 // The rest of data won't be referenced from the test cases.
 const char* const other_zone_rrs =
     "cnamemailer.example.com. 3600 IN CNAME www.example.com.\n"
@@ -110,7 +105,6 @@ public:
         origin_(Name("example.com")),
         delegation_name_("delegation.example.com"),
         dname_name_("dname.example.com"),
-        longdname_name_("longdname.example.com"),
         has_SOA_(true),
         has_apex_NS_(true),
         rrclass_(RRClass::IN())
@@ -119,7 +113,7 @@ public:
         zone_stream << soa_txt << zone_ns_txt << ns_addrs_txt <<
             delegation_txt << mx_txt << www_a_txt << cname_txt <<
             cname_nxdom_txt << cname_out_txt << dname_txt << dname_a_txt <<
-            dname_long_txt << other_zone_rrs;
+            other_zone_rrs;
 
         masterLoad(zone_stream, origin_, rrclass_,
                    boost::bind(&MockZone::loadRRset, this, _1));
@@ -152,22 +146,16 @@ private:
             rrset->getType() == RRType::DNAME())
         {
             dname_rrset_ = rrset;
-        } else if (rrset->getName() == longdname_name_ &&
-            rrset->getType() == RRType::DNAME())
-        {
-            longdname_rrset_ = rrset;
         }
     }
 
     const Name origin_;
     const Name delegation_name_;
     const Name dname_name_;
-    const Name longdname_name_;
     bool has_SOA_;
     bool has_apex_NS_;
     ConstRRsetPtr delegation_rrset_;
     ConstRRsetPtr dname_rrset_;
-    ConstRRsetPtr longdname_rrset_;
     const RRClass rrclass_;
 };
 
@@ -194,10 +182,6 @@ MockZone::find(const Name& name, const RRType& type,
         NameComparisonResult::SUBDOMAIN)
     {
         return (FindResult(DNAME, dname_rrset_));
-    } else if (name.compare(longdname_name_).getRelation() ==
-        NameComparisonResult::SUBDOMAIN)
-    {
-        return (FindResult(DNAME, longdname_rrset_));
     }
 
     // normal cases.  names are searched for only per exact-match basis
@@ -635,13 +619,18 @@ TEST_F(QueryTest, DNAME_NX_RRSET) {
  * YXDOMAIN.
  */
 TEST_F(QueryTest, LongDNAME) {
-    EXPECT_NO_THROW(Query(memory_datasrc,
-        Name("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
-        "somethingveryveryverylong.longdname.example.com"), RRType::A(),
+    // A name that is as long as it can be
+    Name longname(
+        "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
+        "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
+        "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
+        "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
+        "dname.example.com.");
+    EXPECT_NO_THROW(Query(memory_datasrc, longname, RRType::A(),
         response).process());
 
     responseCheck(response, Rcode::YXDOMAIN(), AA_FLAG, 1, 0, 0,
-        dname_long_txt, NULL, NULL);
+        dname_txt, NULL, NULL);
 }
 
 }