2
0
mirror of https://github.com/boostorg/mysql.git synced 2026-01-21 05:02:13 +00:00
Files
mysql/test/integration/include/test_integration/server_features.hpp
Anarthal (Rubén Pérez) c242bb0ffd Added CI tests for MySQL 9.x
close #303
2025-10-07 16:56:17 +02:00

55 lines
1.7 KiB
C++

//
// Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef BOOST_MYSQL_TEST_INTEGRATION_INCLUDE_TEST_INTEGRATION_SERVER_FEATURES_HPP
#define BOOST_MYSQL_TEST_INTEGRATION_INCLUDE_TEST_INTEGRATION_SERVER_FEATURES_HPP
#include <boost/test/tree/decorator.hpp>
namespace boost {
namespace mysql {
namespace test {
// What does the CI server deployment support?
// We determine these from the command line arguments.
struct server_features
{
// Is the server listening on a UNIX socket?
bool unix_sockets{true};
// Does the server support sha256 authentication methods?
// Includes caching_sha2_password and sha256_password
bool sha256{true};
// Does the server support the mysql_native_password authentication method?
bool mnp{true};
// Does the server support the dedicated JSON type?
bool json_type{true};
// Does the server support MySQL8+ specific regex error codes?
bool regex_error_codes{true};
// Does the server support MariaDB specific dup_query error codes?
bool dup_query_error_codes{true};
};
using server_feature_t = bool server_features::*;
server_features get_server_features();
// Decorators to skip tests if the given features are not enabled.
// This is lazy because get_server_features requires access to getenv, not legal from global initializers.
unit_test::precondition run_if(server_feature_t feature);
unit_test::precondition run_if(server_feature_t feature1, server_feature_t feature2);
} // namespace test
} // namespace mysql
} // namespace boost
#endif