bind9/bin/tests/system/doth
Michał Kępień 3f5318f094 Fix a PyLint 2.13.7 error
PyLint 2.13.7 reports the following error:

    bin/tests/system/doth/conftest.py:34:28: E0601: Using variable 'stderr' before assignment (used-before-assignment)

The reason the current code has not caused problems before is that
invoking gnutls-cli with just the --logfile=/dev/null argument causes it
to always return with a non-zero exit code, either due to the option not
being supported or due to the hostname argument not being provided.  In
other words, the 'except' branch has always been taken.  PyLint is
obviously right on a syntactical level, though.

Instead of relying on a less than obvious code flow (where the 'except'
branch is always taken), rework the flagged code by employing
subprocess.run(..., check=False) instead of subprocess.check_output(),
making exception handling redundant.

While this issue was investigated, it was also noticed that
subprocess.check_output() was incorrectly used as a context manager:
Popen objects are context managers, but subprocess.check_output() and
subprocess.run() are not.  Fix by dropping the relevant 'with'
statement.
2022-04-22 11:25:27 +02:00
..
CA Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
ns1 Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
ns2 Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
ns3 Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
ns4 Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
.gitignore Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
clean.sh Reimplement the gnutls-cli check in Python 2022-01-18 11:00:46 +01:00
conftest.py Fix a PyLint 2.13.7 error 2022-04-22 11:25:27 +02:00
dhparam3072.pem Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
example.axfr.good Parse and print HTTPS and SVCB records 2021-08-18 13:49:48 +10:00
example8.axfr.good Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
get_openssl_version.py Extend the 'doth' system test with Strict/Mutual TLS checks 2022-03-28 16:22:53 +03:00
README.curl Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
setup.sh Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
stress_http_quota.py Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tests.sh Extend the doth system test 2022-04-06 18:45:57 +03:00
tests_gnutls.py Rework imports in dnspython-based system tests 2022-03-14 08:59:32 +01:00

<!--
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.
-->

DoH query values that can be passed on the command line for testing
with curl can be obtained by encoding binary DNS messages into
base64url, with trailing '='s removed.

For example:

$ perl bin/tests/system/fromhex.pl << EOF | base64url
    # Transaction ID
    0001
    # Standard query
    0000
    # Questions: 1, Additional: 0
    0001 0000 0000 0000
    # QNAME: example
    07 6578616d706c65 00
    # Type: SOA
    0006
    Class: IN
    0001
EOF

This produces the string "AAEAAAABAAAAAAAAB2V4YW1wbGUAAAbFrMonAAE=". With
the trailing '=' removed, this can then be passed to curl:

curl "https://<server>/dns-query?dns=AAEAAAABAAAAAAAAB2V4YW1wbGUAAAbFrMonAAE"