From: bert hubert Date: Sun, 7 Dec 2014 21:11:24 +0000 (+0100) Subject: add a bunch of packet based regression tests to the packetcache X-Git-Tag: rec-3.7.0-rc1~142 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c2ff5f42fe773185eb508df9289d952e00728585;p=pdns add a bunch of packet based regression tests to the packetcache --- diff --git a/pdns/test-packetcache_cc.cc b/pdns/test-packetcache_cc.cc index 80075566d..1d35b0afb 100644 --- a/pdns/test-packetcache_cc.cc +++ b/pdns/test-packetcache_cc.cc @@ -123,8 +123,6 @@ BOOST_AUTO_TEST_CASE(test_PacketCacheThreaded) { BOOST_CHECK(S.read("deferred-cache-inserts") + S.read("deferred-cache-lookup") >= g_missing); // BOOST_CHECK_EQUAL(S.read("deferred-cache-lookup"), 0); // cache cleaning invalidates this - - } catch(PDNSException& e) { cerr<<"Had error: "< pak; + vector > opts; + + DNSPacketWriter pw(pak, "www.powerdns.com", QType::A); + DNSPacket q, r, r2; + q.parse((char*)&pak[0], pak.size()); + + pak.clear(); + DNSPacketWriter pw2(pak, "www.powerdns.com", QType::A); + pw2.startRecord("www.powerdns.com", QType::A, 16, 1, DNSPacketWriter::ANSWER); + pw2.xfrIP(htonl(0x7f000001)); + pw2.commit(); + + q.parse((char*)&pak[0], pak.size()); + + + PC.insert(&q, &r, false, 3600); + + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 1); + + PC.purge("www.powerdns.com"); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 0); + + PC.insert(&q, &r, false, 3600); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 1); + PC.purge("com$"); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 0); + + PC.insert(&q, &r, false, 3600); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 1); + PC.purge("powerdns.com$"); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 0); + + PC.insert(&q, &r, false, 3600); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 1); + PC.purge("www.powerdns.com$"); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 0); + + PC.insert(&q, &r, false, 3600); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, true), 0); + PC.purge("www.powerdns.com$"); + + PC.insert(&q, &r, true, 3600); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, false), 0); + PC.purge("www.powerdns.com$"); + + PC.insert(&q, &r, true, 3600); + PC.purge("www.powerdns.net"); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, true), 1); + PC.purge("net$"); + BOOST_CHECK_EQUAL(PC.get(&q, &r2, true), 1); + + PC.purge("www.powerdns.com$"); + BOOST_CHECK_EQUAL(PC.size(), 0); + } + catch(PDNSException& e) { + cerr<<"Had error in threadReader: "<