mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Add unit testing for DNS_Mgr and related classes
This commit is contained in:
parent
824bc372c5
commit
e6e9144da6
8 changed files with 870 additions and 311 deletions
|
@ -21,11 +21,13 @@ class RecordType;
|
|||
class Val;
|
||||
class ListVal;
|
||||
class TableVal;
|
||||
class StringVal;
|
||||
|
||||
template <class T> class IntrusivePtr;
|
||||
using ValPtr = IntrusivePtr<Val>;
|
||||
using ListValPtr = IntrusivePtr<ListVal>;
|
||||
using TableValPtr = IntrusivePtr<TableVal>;
|
||||
using StringValPtr = IntrusivePtr<StringVal>;
|
||||
|
||||
} // namespace zeek
|
||||
|
||||
|
@ -65,7 +67,7 @@ public:
|
|||
// a set of addr.
|
||||
TableValPtr LookupHost(const char* host);
|
||||
|
||||
ValPtr LookupAddr(const IPAddr& addr);
|
||||
StringValPtr LookupAddr(const IPAddr& addr);
|
||||
|
||||
// Define the directory where to store the data.
|
||||
void SetDir(const char* arg_dir) { dir = util::copy_string(arg_dir); }
|
||||
|
@ -109,6 +111,14 @@ public:
|
|||
|
||||
void Terminate();
|
||||
|
||||
static TableValPtr empty_addr_set();
|
||||
|
||||
/**
|
||||
* This method is used to call the private Process() method during unit testing
|
||||
* and shouldn't be used otherwise.
|
||||
*/
|
||||
void TestProcess();
|
||||
|
||||
protected:
|
||||
friend class LookupCallback;
|
||||
friend class DNS_Mgr_Request;
|
||||
|
@ -183,38 +193,9 @@ protected:
|
|||
|
||||
bool IsAddrReq() const { return name.empty(); }
|
||||
|
||||
void Resolved(const char* name)
|
||||
{
|
||||
for ( CallbackList::iterator i = callbacks.begin(); i != callbacks.end(); ++i )
|
||||
{
|
||||
(*i)->Resolved(name);
|
||||
delete *i;
|
||||
}
|
||||
callbacks.clear();
|
||||
processed = true;
|
||||
}
|
||||
|
||||
void Resolved(TableVal* addrs)
|
||||
{
|
||||
for ( CallbackList::iterator i = callbacks.begin(); i != callbacks.end(); ++i )
|
||||
{
|
||||
(*i)->Resolved(addrs);
|
||||
delete *i;
|
||||
}
|
||||
callbacks.clear();
|
||||
processed = true;
|
||||
}
|
||||
|
||||
void Timeout()
|
||||
{
|
||||
for ( CallbackList::iterator i = callbacks.begin(); i != callbacks.end(); ++i )
|
||||
{
|
||||
(*i)->Timeout();
|
||||
delete *i;
|
||||
}
|
||||
callbacks.clear();
|
||||
processed = true;
|
||||
}
|
||||
void Resolved(const char* name);
|
||||
void Resolved(TableVal* addrs);
|
||||
void Timeout();
|
||||
};
|
||||
|
||||
using AsyncRequestAddrMap = std::map<IPAddr, AsyncRequest*>;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue