rec_control_SOURCES=rec_channel.cc rec_channel.hh rec_control.cc arguments.cc arguments.hh misc.cc qtype.cc \
unix_utility.cc logger.cc statbag.cc
-testrunner_SOURCES=testrunner.cc test-misc_hh.cc
+testrunner_SOURCES=testrunner.cc test-misc_hh.cc test-nameserver_cc.cc nameserver.cc misc.cc \
+ unix_utility.cc logger.cc statbag.cc arguments.cc qtype.cc dnspacket.cc \
+ dnswriter.cc base64.cc base32.cc dnsrecords.cc dnslabeltext.cc dnsparser.cc \
+ rcpgenerator.cc ednssubnet.cc nsecrecords.cc sillyrecords.cc dnssecinfra.cc \
+ md5.cc
testrunner_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS)
testrunner_LDADD= $(BOOST_UNIT_TEST_FRAMEWORK_LIBS)
--- /dev/null
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_NO_MAIN
+
+#include <boost/test/unit_test.hpp>
+#include "iputils.hh"
+#include "nameserver.hh"
+#include "statbag.hh"
+#include "arguments.hh"
+#include <utility>
+
+extern vector<ComboAddress> g_localaddresses;
+StatBag S;
+
+ArgvMap &arg()
+{
+ static ArgvMap theArg;
+ return theArg;
+}
+
+BOOST_AUTO_TEST_SUITE(nameserver_cc)
+
+BOOST_AUTO_TEST_CASE(test_AddressIsUs4) {
+ ComboAddress local1("127.0.0.1", 53);
+ ComboAddress local2("127.0.0.2", 53);
+ ComboAddress Remote("192.168.255.255", 53);
+
+ g_localaddresses.push_back(ComboAddress("0.0.0.0", 53));
+
+ BOOST_CHECK_EQUAL(AddressIsUs(local1), true);
+ BOOST_CHECK_EQUAL(AddressIsUs(local2), false);
+ BOOST_CHECK_EQUAL(AddressIsUs(Remote), false);
+
+ g_localaddresses.clear();
+ g_localaddresses.push_back(ComboAddress("192.168.255.255", 53));
+ BOOST_CHECK_EQUAL(AddressIsUs(Remote), true);
+ Remote.sin4.sin_port = 1;
+ BOOST_CHECK_EQUAL(AddressIsUs(Remote), false);
+}
+
+BOOST_AUTO_TEST_CASE(test_AddressIsUs6) {
+ ComboAddress local1("127.0.0.1", 53);
+ ComboAddress local2("127.0.0.2", 53);
+ ComboAddress local3("::1", 53);
+ ComboAddress NotUs("192.168.255.255", 53);
+
+ g_localaddresses.clear();
+ g_localaddresses.push_back(ComboAddress("::", 53));
+
+ BOOST_CHECK_EQUAL(AddressIsUs(local1), true);
+ BOOST_CHECK_EQUAL(AddressIsUs(local2), false);
+ BOOST_CHECK_EQUAL(AddressIsUs(local3), true);
+ BOOST_CHECK_EQUAL(AddressIsUs(NotUs), false);
+}
+
+BOOST_AUTO_TEST_SUITE_END()