Commit d78d0dbc authored by JINMEI Tatuya's avatar JINMEI Tatuya
Browse files

[1781] cleanup: moved textToRRset to testutils to share it from multiple tests.

parent be9562a0
......@@ -2750,25 +2750,6 @@ TYPED_TEST(DatabaseClientTest, addRRsetToNewZone) {
this->checkLastAdded(rrset_added);
}
// TODO: maybe we should share this stuff
// A helper callback of masterLoad() used in InMemoryZoneFinderTest.
void
setRRset(RRsetPtr rrset, vector<RRsetPtr*>::iterator& it) {
*(*it) = rrset;
++it;
}
ConstRRsetPtr
textToRRset(const string& text_rrset, const RRClass& rrclass = RRClass::IN()) {
stringstream ss(text_rrset);
RRsetPtr rrset;
vector<RRsetPtr*> rrsets;
rrsets.push_back(&rrset);
masterLoad(ss, Name::ROOT_NAME(), rrclass,
boost::bind(setRRset, _1, rrsets.begin()));
return (rrset);
}
// Below we define a set of NSEC3 update tests. Right now this only works
// for the mock DB, but the plan is to make it a TYPED_TEST to share the case
// with SQLite3 implementation, too.
......
......@@ -285,17 +285,6 @@ setRRset(RRsetPtr rrset, vector<RRsetPtr*>::iterator& it) {
++it;
}
ConstRRsetPtr
textToRRset(const string& text_rrset, const RRClass& rrclass = RRClass::IN()) {
stringstream ss(text_rrset);
RRsetPtr rrset;
vector<RRsetPtr*> rrsets;
rrsets.push_back(&rrset);
masterLoad(ss, Name::ROOT_NAME(), rrclass,
boost::bind(setRRset, _1, rrsets.begin()));
return (rrset);
}
// Some faked NSEC3 hash values commonly used in tests and the faked NSEC3Hash
// object.
//
......
......@@ -23,6 +23,12 @@
#include <testutils/dnsmessage_test.h>
#include <boost/bind.hpp>
#include <string>
#include <sstream>
using namespace std;
using namespace isc::dns;
namespace isc {
......@@ -82,6 +88,26 @@ matchRdata(const char*, const char*,
}
}
// TODO: maybe we should share this stuff
// A helper callback of masterLoad() used in InMemoryZoneFinderTest.
void
setRRset(RRsetPtr rrset, RRsetPtr* rrsetp) {
if (*rrsetp) {
isc_throw(isc::Unexpected,
"multiple RRsets are given to textToRRset");
}
*rrsetp = rrset;
}
RRsetPtr
textToRRset(const string& text_rrset, const RRClass& rrclass) {
stringstream ss(text_rrset);
RRsetPtr rrset;
masterLoad(ss, Name::ROOT_NAME(), rrclass,
boost::bind(setRRset, _1, &rrset));
return (rrset);
}
void
rrsetCheck(isc::dns::ConstRRsetPtr expected_rrset,
isc::dns::ConstRRsetPtr actual_rrset)
......
......@@ -174,6 +174,23 @@ private:
};
}
/// \brief A converter from a string to RRset.
///
/// This is a convenient shortcut for tests that need to create an RRset
/// from textual representation with a single call to a function.
///
/// An RRset consisting of multiple RRs can be constructed, but only one
/// RRset is allowed. If the given string contains mixed types of RRs
/// it throws an \c isc::Unexpected exception.
///
/// \param text_rrset A complete textual representation of an RRset.
/// It must meets the assumption of the \c dns::masterLoad() function.
/// \param rrclass The RR class of the RRset. Note that \c text_rrset should
/// contain the RR class, but it's needed for \c dns::masterLoad().
isc::dns::RRsetPtr textToRRset(const std::string& text_rrset,
const isc::dns::RRClass& rrclass =
isc::dns::RRClass::IN());
/// Set of unit tests to check if two sets of RRsets are identical.
///
/// This templated function takes two sets of sequences, each defined by
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment