]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Try serialize invalid values to test certain assertions during serialization
authorAki Tuomi <cmouse@desteem.org>
Sun, 25 Jan 2015 22:02:00 +0000 (00:02 +0200)
committerAki Tuomi <cmouse@desteem.org>
Sun, 25 Jan 2015 22:02:00 +0000 (00:02 +0200)
pdns/test-dnsrecords_cc.cc

index e43ce1441db89515c41d9199b10fb7838d3ac0d8..102bc02605828b0317e418f91ad481014171c3d1 100644 (file)
@@ -254,10 +254,13 @@ BOOST_AUTO_TEST_CASE(test_record_types_bad_values) {
     BOOST_TEST_CHECKPOINT("Checking bad value for record type " << q.getName() << " test #" << n);
     BOOST_TEST_MESSAGE("Checking bad value for record type " << q.getName() << " test #" << n);
  
+    vector<uint8_t> packet;
+    DNSPacketWriter pw(packet, "unit.test", q.getCode());
+
     if (val.get<2>()) {
-      BOOST_WARN_EXCEPTION( DNSRecordContent::mastermake(q.getCode(), 1, val.get<1>()), std::runtime_error, test_dnsrecords_cc_predicate );
+      BOOST_WARN_EXCEPTION( { DNSRecordContent* drc = DNSRecordContent::mastermake(q.getCode(), 1, val.get<1>()); pw.startRecord("unit.test", q.getCode()); drc->toPacket(pw); }, std::runtime_error, test_dnsrecords_cc_predicate );
     } else {
-      BOOST_CHECK_EXCEPTION( DNSRecordContent::mastermake(q.getCode(), 1, val.get<1>()), std::runtime_error, test_dnsrecords_cc_predicate );
+      BOOST_CHECK_EXCEPTION( { DNSRecordContent* drc = DNSRecordContent::mastermake(q.getCode(), 1, val.get<1>()); pw.startRecord("unit.test", q.getCode()); drc->toPacket(pw); }, std::runtime_error, test_dnsrecords_cc_predicate );
     }
   };
 }