From c51fda86ac29a0f6756883cd8d46fcce15508c80 Mon Sep 17 00:00:00 2001 From: Tony Finch Date: Wed, 19 Oct 2022 11:20:24 +0100 Subject: [PATCH] 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. --- tests/bench/.gitignore | 1 - tests/bench/Makefile.am | 1 - tests/bench/render.c | 161 ---------------------------------------- 3 files changed, 163 deletions(-) delete mode 100644 tests/bench/render.c diff --git a/tests/bench/.gitignore b/tests/bench/.gitignore index c7dfdd134f..494d04e29f 100644 --- a/tests/bench/.gitignore +++ b/tests/bench/.gitignore @@ -1,4 +1,3 @@ /ascii /compress -/render /siphash diff --git a/tests/bench/Makefile.am b/tests/bench/Makefile.am index ecdc961518..9483c73236 100644 --- a/tests/bench/Makefile.am +++ b/tests/bench/Makefile.am @@ -11,5 +11,4 @@ LDADD += \ noinst_PROGRAMS = \ ascii \ compress \ - render \ siphash diff --git a/tests/bench/render.c b/tests/bench/render.c deleted file mode 100644 index afee5c750d..0000000000 --- a/tests/bench/render.c +++ /dev/null @@ -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 -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -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); -}