]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Extend DNS over HTTP(S) unit tests with PROXY over TLS checks
authorArtem Boldariev <artem@boldariev.com>
Wed, 21 Jun 2023 18:50:26 +0000 (21:50 +0300)
committerArtem Boldariev <artem@boldariev.com>
Wed, 6 Dec 2023 13:15:25 +0000 (15:15 +0200)
This commit adds PROXY over TLS related checks to DNS over HTTP(S)
transport in order to ensure its compatibility with this mode.

tests/isc/doh_test.c

index 5035ec2f0fccc36147d0f9cf10242f3150eb2796..eb393d5412baa5d41f93df7778f8faf14907b9d3 100644 (file)
@@ -2006,6 +2006,104 @@ ISC_LOOP_TEST_IMPL(proxy_doh_recv_send_GET_TLS_quota) {
        doh_recv_send(arg);
 }
 
+/* PROXY over TLS */
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_one_POST_TLS) {
+       atomic_store(&POST, true);
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       doh_recv_one(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_one_GET_TLS) {
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       doh_recv_one(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_one_GET_TLS_quota) {
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       atomic_store(&check_listener_quota, true);
+       doh_recv_one(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_one_POST_TLS_quota) {
+       atomic_store(&POST, true);
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       atomic_store(&check_listener_quota, true);
+       doh_recv_one(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_two_POST_TLS) {
+       atomic_store(&POST, true);
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       doh_recv_two(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_two_GET_TLS) {
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       doh_recv_two(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_two_POST_TLS_quota) {
+       atomic_store(&POST, true);
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       atomic_store(&check_listener_quota, true);
+       doh_recv_two(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_two_GET_TLS_quota) {
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       atomic_store(&check_listener_quota, true);
+       doh_recv_two(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_send_POST_TLS) {
+       atomic_store(&POST, true);
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       doh_recv_send(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_send_GET_TLS) {
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       doh_recv_send(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_send_POST_TLS_quota) {
+       atomic_store(&POST, true);
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       atomic_store(&check_listener_quota, true);
+       doh_recv_send(arg);
+}
+
+ISC_LOOP_TEST_IMPL(proxytls_doh_recv_send_GET_TLS_quota) {
+       atomic_store(&use_TLS, true);
+       atomic_store(&use_PROXY, true);
+       atomic_store(&use_PROXY_over_TLS, true);
+       atomic_store(&check_listener_quota, true);
+       doh_recv_send(arg);
+}
+
 ISC_TEST_LIST_START
 
 ISC_TEST_ENTRY_CUSTOM(mock_doh_uv_tcp_bind, setup_test, teardown_test)
@@ -2114,6 +2212,31 @@ ISC_TEST_ENTRY_CUSTOM(proxy_doh_recv_send_GET_TLS_quota, setup_test,
                      doh_recv_send_teardown)
 ISC_TEST_ENTRY_CUSTOM(proxy_doh_recv_send_POST_TLS_quota, setup_test,
                      doh_recv_send_teardown)
+/* PROXY over TLS */
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_one_POST_TLS, setup_test,
+                     doh_recv_one_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_one_GET_TLS, setup_test,
+                     doh_recv_one_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_one_POST_TLS_quota, setup_test,
+                     doh_recv_one_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_one_GET_TLS_quota, setup_test,
+                     doh_recv_one_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_two_POST_TLS, setup_test,
+                     doh_recv_two_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_two_GET_TLS, setup_test,
+                     doh_recv_two_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_two_POST_TLS_quota, setup_test,
+                     doh_recv_two_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_two_GET_TLS_quota, setup_test,
+                     doh_recv_two_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_send_GET_TLS, setup_test,
+                     doh_recv_send_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_send_POST_TLS, setup_test,
+                     doh_recv_send_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_send_GET_TLS_quota, setup_test,
+                     doh_recv_send_teardown)
+ISC_TEST_ENTRY_CUSTOM(proxytls_doh_recv_send_POST_TLS_quota, setup_test,
+                     doh_recv_send_teardown)
 ISC_TEST_LIST_END
 
 ISC_TEST_MAIN