bind9/tests/dns
Ondřej Surý c50e96f8d6
Simplify the delegation database LRU to a single shared SIEVE
The delegation database kept one SIEVE LRU list per loop so that node
eviction could run lock-free on each node's owning loop; this required
every node to hold a loop reference and to defer its own destruction to
that loop via isc_async_run().  Move the SIEVE unlink into the QP write
transaction, taking the evicted node directly from dns_qp_deletename(),
which serialises every list mutation under the qpmulti writer lock and
lets a single shared list replace the per-loop arrays.  Node and database
teardown are now synchronous.

The QP trie and the SIEVE list are wrapped in a reference-counted holder.
Each node keeps a reference to the holder so it (and its memory context)
stays valid until the node is destroyed, while shutdown drains the SIEVE
and destroys the trie from an RCU callback and frees the holder once the
last node drops its reference.  Reuse across a reconfiguration now moves
ownership of the holder to the new view instead of sharing it through a
separate owners counter, so dns_delegdb_reuse() is removed.
2026-06-04 12:52:30 +02:00
..
comparekeys Remove TKEY Mode 2 (Diffie-Hellman) 2023-03-08 08:36:25 +01:00
testdata replace the build system with meson 2025-06-11 10:30:12 +03:00
testkeys Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
.gitignore Remove test.skr unit test file 2024-09-09 19:41:03 +02:00
acl_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
badcache_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
byaddr_test.c Include <stdarg.h> in byaddr_test.c 2025-11-19 10:16:40 +11:00
db_test.c Support compilation with cmocka 2.0.0+ 2026-01-07 10:38:45 +01:00
dbdiff_test.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dbiterator_test.c Implement dns_dbiterator_seek3 2025-12-10 14:18:52 +01:00
dbversion_test.c Add a new dbversion unit test 2026-01-21 10:47:17 +00:00
deleg_test.c Simplify the delegation database LRU to a single shared SIEVE 2026-06-04 12:52:30 +02:00
diff_test.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
dispatch_test.c Switch UDP fetches to TCP on the first response with a wrong query id 2026-05-14 15:56:18 +02:00
dns64_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
dnstap_test.c Call tzset() after setenv("TZ", ...) in unit tests 2026-05-26 15:52:59 +02:00
dst_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
ede_test.c Support compilation with cmocka 2.0.0+ 2026-01-07 10:38:45 +01:00
geoip_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
Kdh.+002+18602.key Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
keytable_test.c change issecuredomain() functions to bool 2025-08-05 12:16:36 +02:00
Krsa.+008+29238.key Check if RSASHA1 is supported by the OS 2022-08-09 16:22:19 +02:00
master_test.c Fix formatting 2025-12-09 13:32:24 +01:00
meson.build Add DTRACE probes to dns_delegdb 2026-04-20 13:14:19 +02:00
mkraw.pl Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
name_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
nametree_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
nsec3_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
nsec3param_test.c Change NSEC3 and NSEC3PARAM struct fields to use isc_region_t 2026-04-02 16:53:18 +02:00
private_test.c Add "warn_unused_result" to attributes.h 2026-06-04 08:20:33 +00:00
qp_test.c Fix a false positive compiler warning/error 2026-01-15 17:49:29 +00:00
qpdb_test.c Make isc_mem_isovermem() probabilistic 2026-05-07 13:32:15 +02:00
qpmulti_test.c Fix dns_qpmulti_memusage() on empty dns_qpmulti_t instance 2025-09-16 16:30:15 +02:00
qpzone_test.c Fix strict weak ordering violation in resign_sooner() 2026-04-17 14:31:15 +02:00
rdata_test.c Drop RFC 2535 special-casing of the KEY record type 2026-05-28 13:21:00 +02:00
rdataset_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
rdatasetstats_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
resconf_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
resolver_test.c Support compilation with cmocka 2.0.0+ 2026-01-07 10:38:45 +01:00
rsa_test.c Reject RSA DNSKEYs with degenerate modulus at parse time 2026-04-30 15:50:32 +02:00
sigs_test.c Move zone set/get properties to own source file 2026-04-02 15:50:07 +02:00
skr_test.c Rename isc_result_t ret; to isc_result_t result; 2025-12-03 13:45:43 -08:00
time_test.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
transport_test.c Add and use global memory context called isc_g_mctx 2025-08-04 11:29:26 +02:00
tsig_test.c Fix use-after-free in concurrent dns_tsigkey_delete() 2026-05-17 17:14:08 +02:00
unreachcache_test.c Fix an issue with unreachable cache's unit test 2025-12-02 16:03:26 +00:00
update_test.c Call tzset() after setenv("TZ", ...) in unit tests 2026-05-26 15:52:59 +02:00
vecheader_test.c Add hashmap to qpz_heap 2026-03-31 16:22:56 +02:00
zonefile_test.c Make zone filename expansion accessible from outside dns_zone 2026-04-14 21:49:59 -07:00
zonemgr_test.c Move zonemgr to own source file 2026-04-08 14:24:17 +02:00
zt_test.c Move zone set/get properties to own source file 2026-04-02 15:50:07 +02:00