Skip to content

Commit 864fdc2

Browse files
committed
dnsdist: Add a micro-benchmark for the empty NetmaskTree case
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
1 parent 2fbf90f commit 864fdc2

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

pdns/dnsdistdist/bench-iputils.cc

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* This file is part of PowerDNS or dnsdist.
3+
* Copyright -- PowerDNS.COM B.V. and its contributors
4+
*
5+
* This program is free software; you can redistribute it and/or modify
6+
* it under the terms of version 2 of the GNU General Public License as
7+
* published by the Free Software Foundation.
8+
*
9+
* In addition, for the avoidance of any doubt, permission is granted to
10+
* link this program with OpenSSL and to (re)distribute the binaries
11+
* produced as the result of such linking.
12+
*
13+
* This program is distributed in the hope that it will be useful,
14+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
* GNU General Public License for more details.
17+
*
18+
* You should have received a copy of the GNU General Public License
19+
* along with this program; if not, write to the Free Software
20+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21+
*/
22+
#define CATCH_CONFIG_NO_MAIN
23+
#include <catch2/catch_test_macros.hpp>
24+
#include <catch2/benchmark/catch_benchmark.hpp>
25+
26+
#include "iputils.hh"
27+
28+
TEST_CASE("netmask_tree")
29+
{
30+
const ComboAddress addr{"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"};
31+
NetmaskTree<bool> tree{};
32+
33+
BENCHMARK("lookup_v6_empty_tree")
34+
{
35+
const auto* got = tree.lookup(addr);
36+
if (got != nullptr) {
37+
abort();
38+
}
39+
return got;
40+
};
41+
}

pdns/dnsdistdist/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,7 @@ benchmark_sources = files(
606606
src_dir / 'bench-dnsdist-opentelemetry_cc.cc',
607607
src_dir / 'bench-dnsdist-rings_cc.cc',
608608
src_dir / 'bench-misc_hh.cc',
609+
src_dir / 'bench-iputils.cc',
609610
)
610611

611612
if get_option('benchmark')

0 commit comments

Comments
 (0)