* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: masterdump.c,v 1.108 2011/06/08 22:13:50 each Exp $ */
+/* $Id: masterdump.c,v 1.109 2011/09/07 19:11:13 each Exp $ */
/*! \file */
rdataset->attributes |= DNS_RDATASETATTR_LOADORDER;
result = dns_rdataset_first(rdataset);
- REQUIRE(result == ISC_R_SUCCESS);
current_ttl = ctx->current_ttl;
current_ttl_valid = ctx->current_ttl_valid;
- do {
+ while (result == ISC_R_SUCCESS) {
column = 0;
/*
first = ISC_FALSE;
result = dns_rdataset_next(rdataset);
- } while (result == ISC_R_SUCCESS);
+ }
if (result != ISC_R_NOMORE)
return (result);
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: master_test.c,v 1.5 2011/09/02 21:15:37 each Exp $ */
+/* $Id: master_test.c,v 1.6 2011/09/07 19:11:14 each Exp $ */
/*! \file */
#include <dns/cache.h>
#include <dns/callbacks.h>
#include <dns/master.h>
+#include <dns/masterdump.h>
#include <dns/name.h>
#include <dns/rdata.h>
+#include <dns/rdatalist.h>
#include <dns/rdataset.h>
#include "dnstest.h"
dns_test_end();
}
+ATF_TC(master_totext);
+ATF_TC_HEAD(master_totext, tc) {
+ atf_tc_set_md_var(tc, "descr", "masterfile totext tests");
+}
+ATF_TC_BODY(master_totext, tc) {
+ isc_result_t result;
+ dns_rdataset_t rdataset;
+ dns_rdatalist_t rdatalist;
+ isc_buffer_t target;
+ unsigned char buf[BIGBUFLEN];
+
+ UNUSED(tc);
+
+ result = dns_test_begin(NULL, ISC_FALSE);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ /* First, test with an empty rdataset */
+ rdatalist.rdclass = dns_rdataclass_in;
+ rdatalist.type = dns_rdatatype_none;
+ rdatalist.covers = dns_rdatatype_none;
+ rdatalist.ttl = 0;
+ ISC_LIST_INIT(rdatalist.rdata);
+ ISC_LINK_INIT(&rdatalist, link);
+
+ dns_rdataset_init(&rdataset);
+ result = dns_rdatalist_tordataset(&rdatalist, &rdataset);
+ ATF_CHECK_EQ(result, ISC_R_SUCCESS);
+
+ isc_buffer_init(&target, buf, BIGBUFLEN);
+ result = dns_master_rdatasettotext(dns_rootname,
+ &rdataset, &dns_master_style_debug,
+ &target);
+ ATF_CHECK_EQ(result, ISC_R_SUCCESS);
+ ATF_CHECK_EQ(isc_buffer_usedlength(&target), 0);
+
+ /*
+ * XXX: We will also need to add tests for dumping various
+ * rdata types, classes, etc, and comparing the results against
+ * known-good output.
+ */
+
+ dns_test_end();
+}
+
/*
* Main
*/
ATF_TP_ADD_TC(tp, master_includefail);
ATF_TP_ADD_TC(tp, master_blanklines);
ATF_TP_ADD_TC(tp, master_leadingzero);
+ ATF_TP_ADD_TC(tp, master_totext);
return (atf_no_error());
}