mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-25 16:18:03 -04:00
Delete the render benchmark
Instead of fixing a Coverity complaint (and other style nits), delete it because it needs input data that can't be generated with the tools that ship with BIND.
This commit is contained in:
parent
2bd3b452cf
commit
c51fda86ac
3 changed files with 0 additions and 163 deletions
1
tests/bench/.gitignore
vendored
1
tests/bench/.gitignore
vendored
|
|
@ -1,4 +1,3 @@
|
|||
/ascii
|
||||
/compress
|
||||
/render
|
||||
/siphash
|
||||
|
|
|
|||
|
|
@ -11,5 +11,4 @@ LDADD += \
|
|||
noinst_PROGRAMS = \
|
||||
ascii \
|
||||
compress \
|
||||
render \
|
||||
siphash
|
||||
|
|
|
|||
|
|
@ -1,161 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/time.h>
|
||||
|
||||
#include <dns/message.h>
|
||||
|
||||
static void
|
||||
CHECKRESULT(isc_result_t result, const char *msg) {
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
printf("%s: %s\n", msg, isc_result_totext(result));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
isc_result_t result;
|
||||
ssize_t r;
|
||||
|
||||
isc_mem_t *mctx = NULL;
|
||||
isc_mem_create(&mctx);
|
||||
|
||||
dns_message_t **message;
|
||||
message = isc_mem_allocate(mctx, argc * sizeof(*message));
|
||||
|
||||
for (int i = 1; i < argc; i++) {
|
||||
const char *filename = argv[i];
|
||||
|
||||
int fd = open(filename, O_RDONLY);
|
||||
if (fd < 0)
|
||||
err(1, "open(%s)", filename);
|
||||
|
||||
isc_buffer_t *filebuf = NULL;
|
||||
isc_buffer_allocate(mctx, &filebuf, 64 * 1024);
|
||||
|
||||
struct stat st;
|
||||
r = fstat(fd, &st);
|
||||
if (r < 0)
|
||||
err(1, "stat(%s)", filename);
|
||||
if (st.st_size > isc_buffer_availablelength(filebuf))
|
||||
errx(1, "%s is too large", filename);
|
||||
unsigned int filelen = (unsigned int)st.st_size;
|
||||
|
||||
isc_buffer_reserve(&filebuf, filelen);
|
||||
r = read(fd, isc_buffer_base(filebuf), filelen);
|
||||
if (r < 0)
|
||||
err(1, "read(%s)", filename);
|
||||
if (st.st_size > r)
|
||||
errx(1, "read(%s) truncated", filename);
|
||||
isc_buffer_add(filebuf, filelen);
|
||||
close(fd);
|
||||
|
||||
message[i] = NULL;
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message[i]);
|
||||
|
||||
result = dns_message_parse(message[i], filebuf,
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
CHECKRESULT(result, "dns_message_parse()");
|
||||
isc_buffer_free(&filebuf);
|
||||
|
||||
continue;
|
||||
|
||||
isc_buffer_t *printbuf = NULL;
|
||||
isc_buffer_allocate(mctx, &printbuf, 1024 * 1024);
|
||||
|
||||
result = dns_message_totext(message[i], &dns_master_style_debug,
|
||||
0, printbuf);
|
||||
CHECKRESULT(result, "dns_message_totext()");
|
||||
|
||||
r = write(1, isc_buffer_base(printbuf),
|
||||
isc_buffer_usedlength(printbuf));
|
||||
if (r < 0)
|
||||
err(1, "write(%s)", filename);
|
||||
isc_buffer_free(&printbuf);
|
||||
}
|
||||
|
||||
isc_time_t start;
|
||||
isc_time_now_hires(&start);
|
||||
|
||||
unsigned int count = 0;
|
||||
int repeat = 100;
|
||||
for (int n = 0; n < repeat; n++) {
|
||||
for (int i = 1; i < argc; i++) {
|
||||
isc_buffer_t *wirebuf = NULL;
|
||||
isc_buffer_allocate(mctx, &wirebuf, 64 * 1024);
|
||||
|
||||
/* hacks! see wire_test.c */
|
||||
message[i]->from_to_wire = DNS_MESSAGE_INTENTRENDER;
|
||||
for (int s = 0; s < DNS_SECTION_MAX; s++) {
|
||||
message[i]->counts[s] = 0;
|
||||
}
|
||||
|
||||
dns_compress_t cctx;
|
||||
dns_compress_init(&cctx, mctx, DNS_COMPRESS_LARGE);
|
||||
|
||||
result = dns_message_renderbegin(message[i], &cctx,
|
||||
wirebuf);
|
||||
CHECKRESULT(result, "dns_message_renderbegin()");
|
||||
result = dns_message_rendersection(
|
||||
message[i], DNS_SECTION_QUESTION, 0);
|
||||
CHECKRESULT(result,
|
||||
"dns_message_rendersection(QUESTION)");
|
||||
result = dns_message_rendersection(
|
||||
message[i], DNS_SECTION_ANSWER, 0);
|
||||
CHECKRESULT(result,
|
||||
"dns_message_rendersection(ANSWER)");
|
||||
result = dns_message_rendersection(
|
||||
message[i], DNS_SECTION_AUTHORITY, 0);
|
||||
CHECKRESULT(result,
|
||||
"dns_message_rendersection(AUTHORITY)");
|
||||
result = dns_message_rendersection(
|
||||
message[i], DNS_SECTION_ADDITIONAL, 0);
|
||||
CHECKRESULT(result,
|
||||
"dns_message_rendersection(ADDITIONAL)");
|
||||
if (count < cctx.count)
|
||||
count = cctx.count;
|
||||
|
||||
dns_message_renderend(message[i]);
|
||||
|
||||
dns_compress_invalidate(&cctx);
|
||||
isc_buffer_free(&wirebuf);
|
||||
}
|
||||
}
|
||||
|
||||
isc_time_t finish;
|
||||
isc_time_now_hires(&finish);
|
||||
uint64_t microseconds = isc_time_microdiff(&finish, &start);
|
||||
printf("time %f\n", (double)microseconds / (repeat * 1000000.0));
|
||||
printf("count %u\n", count);
|
||||
|
||||
for (int i = 1; i < argc; i++) {
|
||||
dns_message_detach(&message[i]);
|
||||
}
|
||||
|
||||
isc_mem_free(mctx, message);
|
||||
isc_mem_destroy(&mctx);
|
||||
|
||||
return (0);
|
||||
}
|
||||
Loading…
Reference in a new issue