BIND 10 trac2097, updated. 9c03bc82344de6539ba48a197add60a0c9bdcff4 [2097] Merge branch 'trac2097' of ssh://git.bind10.isc.org/var/bind10/git/bind10 into trac2097
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Aug 15 17:18:33 UTC 2012
The branch, trac2097 has been updated
via 9c03bc82344de6539ba48a197add60a0c9bdcff4 (commit)
via 4e3a85f9ba40aa0934e84eb54bf518733e56a504 (commit)
via a851fd51275ea398dd819fbaca703524f417c281 (commit)
from b59e0b908ecbf12daaee9b66d3cd77b7a8554b04 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9c03bc82344de6539ba48a197add60a0c9bdcff4
Merge: 4e3a85f b59e0b9
Author: JINMEI Tatuya <jinmei at isc.org>
Date: Wed Aug 15 10:17:44 2012 -0700
[2097] Merge branch 'trac2097' of ssh://git.bind10.isc.org/var/bind10/git/bind10 into trac2097
commit 4e3a85f9ba40aa0934e84eb54bf518733e56a504
Author: JINMEI Tatuya <jinmei at isc.org>
Date: Wed Aug 15 10:14:20 2012 -0700
[2097] added test case for too-many-RDATAs exceeding the threshold.
as suggested in review.
also updated getRRSIGWithRdataCount() to generate the data from write,
not from text as I found it took much longer time if I did it from text
(which is simpler). with large number of RRSIGs it's noticeable and not
good for unittests to run frequently.
commit a851fd51275ea398dd819fbaca703524f417c281
Author: JINMEI Tatuya <jinmei at isc.org>
Date: Wed Aug 15 09:36:51 2012 -0700
[2097] make RdataSet noncopyable.
it was indeed not expected to be copyable. making this explicit would help
prevent accidental misuse.
as suggested in review.
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/memory/rdataset.h | 3 ++-
src/lib/datasrc/memory/tests/rdataset_unittest.cc | 29 +++++++++++++++++----
2 files changed, 26 insertions(+), 6 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory/rdataset.h b/src/lib/datasrc/memory/rdataset.h
index c433eda..70cf733 100644
--- a/src/lib/datasrc/memory/rdataset.h
+++ b/src/lib/datasrc/memory/rdataset.h
@@ -23,6 +23,7 @@
#include <dns/rrttl.h>
#include <boost/interprocess/offset_ptr.hpp>
+#include <boost/noncopyable.hpp>
#include <stdint.h>
@@ -110,7 +111,7 @@ public:
/// assume any particular format of data in this region directly; it must
/// get access to it via public interfaces provided in the main \c RdataSet
/// class.
-class RdataSet {
+class RdataSet : boost::noncopyable {
public:
/// \brief Allocate and construct \c RdataSet
///
diff --git a/src/lib/datasrc/memory/tests/rdataset_unittest.cc b/src/lib/datasrc/memory/tests/rdataset_unittest.cc
index e8832da..5e7d4b9 100644
--- a/src/lib/datasrc/memory/tests/rdataset_unittest.cc
+++ b/src/lib/datasrc/memory/tests/rdataset_unittest.cc
@@ -143,6 +143,11 @@ TEST_F(RdataSetTest, createManyRRs) {
getRRsetWithRdataCount(8192),
ConstRRsetPtr()),
RdataSetError);
+ // To be very sure even try larger number than the threshold
+ EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_,
+ getRRsetWithRdataCount(65535),
+ ConstRRsetPtr()),
+ RdataSetError);
}
TEST_F(RdataSetTest, createWithRRSIG) {
@@ -169,12 +174,22 @@ ConstRRsetPtr
getRRSIGWithRdataCount(size_t sig_count) {
RRsetPtr rrset(new RRset(Name("example.com"), RRClass::IN(),
RRType::RRSIG(), RRTTL(3600)));
+ // We use a base wire-format image and tweak the original TTL field to
+ // generate unique RDATAs in the loop. (Creating them from corresponding
+ // text is simpler, but doing so for a large number of RRSIGs is
+ // relatively heavy and could be too long for unittests).
+ ConstRdataPtr rrsig_base =
+ rdata::createRdata(RRType::RRSIG(), RRClass::IN(),
+ "A 5 2 3600 20120814220826 20120715220826 1234 "
+ "example.com. FAKE");
+ isc::util::OutputBuffer ob(0);
+ rrsig_base->toWire(ob);
for (size_t i = 0; i < sig_count; ++i) {
- rrset->addRdata(rdata::createRdata(
- RRType::RRSIG(), RRClass::IN(),
- "A 5 2 3600 20120814220826 20120715220826 " +
- lexical_cast<std::string>(i) +
- " example.com. FAKE"));
+ ob.writeUint16At((i >> 16) & 0xffff, 4);
+ ob.writeUint16At(i & 0xffff, 6);
+ isc::util::InputBuffer ib(ob.getData(), ob.getLength());
+ rrset->addRdata(rdata::createRdata(RRType::RRSIG(), RRClass::IN(),
+ ib, ib.getLength()));
}
return (rrset);
}
@@ -205,6 +220,10 @@ TEST_F(RdataSetTest, createManyRRSIGs) {
EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_, a_rrset_,
getRRSIGWithRdataCount(65536)),
RdataSetError);
+ // To be very sure even try larger number than the threshold
+ EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_, a_rrset_,
+ getRRSIGWithRdataCount(70000)),
+ RdataSetError);
}
TEST_F(RdataSetTest, createWithRRSIGOnly) {
More information about the bind10-changes
mailing list