2022-01-18 11:00:46 +01:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
|
|
import shutil
|
|
|
|
import subprocess
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def gnutls_cli_executable():
|
|
|
|
# Ensure gnutls-cli is available.
|
2022-06-07 16:27:23 +02:00
|
|
|
executable = shutil.which("gnutls-cli")
|
2022-01-18 11:00:46 +01:00
|
|
|
if not executable:
|
2022-06-07 16:27:23 +02:00
|
|
|
pytest.skip("gnutls-cli not found in PATH")
|
2022-01-18 11:00:46 +01:00
|
|
|
|
|
|
|
# Ensure gnutls-cli supports the --logfile command-line option.
|
2022-06-07 16:27:23 +02:00
|
|
|
output = subprocess.run(
|
|
|
|
[executable, "--logfile=/dev/null"],
|
|
|
|
stdout=subprocess.PIPE,
|
|
|
|
stderr=subprocess.STDOUT,
|
|
|
|
check=False,
|
|
|
|
).stdout
|
|
|
|
if b"illegal option" in output:
|
|
|
|
pytest.skip("gnutls-cli does not support the --logfile option")
|
2022-01-18 11:00:46 +01:00
|
|
|
|
|
|
|
return executable
|
2022-06-27 22:50:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def sslyze_executable():
|
|
|
|
# Check whether sslyze is available.
|
|
|
|
executable = shutil.which("sslyze")
|
|
|
|
if not executable:
|
|
|
|
pytest.skip("sslyze not found in PATH")
|
|
|
|
|
|
|
|
return executable
|