/*
* Copyright (C) 2011, 2012, 2016 Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/* $Id$ */
/*! \file */
#include <config.h>
#include <atf-c.h>
#include <unistd.h>
#include <stdlib.h>
#include <dns/dbiterator.h>
#include "dnstest.h"
/*
* Helper functions
*/
static isc_result_t
isc_buffer_t b;
}
/*
* Individual unit tests
*/
/* create: make sure we can create a dbiterator */
static void
dns_db_detach(&db);
dns_test_end();
}
}
}
}
}
/* walk: walk a database */
static void
int i = 0;
dns_fixedname_init(&f);
name = dns_fixedname_name(&f);
result == ISC_R_SUCCESS;
if (result == DNS_R_NEWORIGIN)
i++;
}
dns_db_detach(&db);
dns_test_end();
}
}
}
}
}
/* reverse: walk database backwards */
int i = 0;
dns_fixedname_init(&f);
name = dns_fixedname_name(&f);
result == ISC_R_SUCCESS;
if (result == DNS_R_NEWORIGIN)
i++;
}
ATF_CHECK_EQ(i, 12);
dns_db_detach(&db);
dns_test_end();
}
}
}
}
}
/* seek: walk database starting at a particular node */
int i = 0;
while (result == ISC_R_SUCCESS) {
if (result == DNS_R_NEWORIGIN)
i++;
}
dns_db_detach(&db);
dns_test_end();
}
"a particular node");
}
}
"a particular node");
}
}
/*
* seek_emty: walk database starting at an empty nonterminal node
* (should fail)
*/
dns_db_detach(&db);
dns_test_end();
}
"empty nonterminal node");
}
}
"empty nonterminal node");
}
}
/*
* seek_emty: walk database starting at an empty nonterminal node
* (should fail)
*/
dns_db_detach(&db);
dns_test_end();
}
"at a nonexistent node");
}
}
"at a nonexistent node");
}
}
/*
* Main
*/
return (atf_no_error());
}
/*
* XXX:
* dns_dbiterator API calls that are not yet part of this unit test:
*
* dns_dbiterator_pause
* dns_dbiterator_origin
* dns_dbiterator_setcleanmode
*/