%@endverbatim
The unit tests are run automatically when "make check" is executed (providing
- that Kea has been build with the \c --with-mysql switch (see the installation
+ that Kea has been built with the \c --with-mysql switch (see the installation
section in the <a href="https://kea.readthedocs.io/">Kea Administrator
Reference Manual</a>).
@section unitTestsKerberos Kerberos Configuration for Unit Tests
The GSS-TSIG hook library uses the GSS-API with Kerberos. While there are
-no doubts that the hook can be safely used with a valid Kerberos configuration
+no doubts that the hook can be safely used with a valid Kerberos configuration
in production, unit tests reported problems on some systems.
GSS-TSIG hook unit tests use a setup inherited from bind9 with old crypto
settings which are not allowed by default Kerberos system configuration.
-A simple workaround is to set the KRB5_CONFIG environment variable to
+A simple workaround is to set the KRB5_CONFIG environment variable to
a random value that doesn't match a file (e.g. KRB5_CONFIG=).
@section writingShellScriptsAndTests Writing shell scripts and tests
#include <exceptions/exceptions.h>
#include <mysql/mysql_connection.h>
#include <mysql/testutils/mysql_schema.h>
-#include <boost/date_time/posix_time/posix_time.hpp>
-#include <gtest/gtest.h>
+#include <testutils/gtest_utils.h>
+
#include <array>
+#include <gtest/gtest.h>
+
+#include <boost/date_time/posix_time/posix_time.hpp>
+
using namespace isc::db;
using namespace isc::db::test;
ASSERT_FALSE(in_bindings[1]->amNull());
// Store data in the database.
- ASSERT_NO_THROW(conn_.insertQuery(MySqlConnectionTest::INSERT_VALUE,
- in_bindings));
+ ASSERT_NO_THROW_LOG(conn_.insertQuery(MySqlConnectionTest::INSERT_VALUE,
+ in_bindings));
// Create input binding for select query.
MySqlBindingCollection bindings =
// Execute select statement. We expect one row to be returned. For this
// returned row the lambda provided as 4th argument should be executed.
- ASSERT_NO_THROW(conn_.selectQuery(MySqlConnectionTest::GET_BY_INT_VALUE,
- bindings, out_bindings,
- [&](MySqlBindingCollection& out_bindings) {
+ ASSERT_NO_THROW_LOG(conn_.selectQuery(MySqlConnectionTest::GET_BY_INT_VALUE,
+ bindings, out_bindings,
+ [&](MySqlBindingCollection& out_bindings) {
// Compare received data with input data assuming they are both non-null.
MySqlBinding::createNull(),
};
- ASSERT_NO_THROW(
+ ASSERT_NO_THROW_LOG(
conn_.insertQuery(MySqlConnectionTest::INSERT_VALUE, in_bindings));
// This variable will be checked to see if the row has been deleted
// Execute delete query but use int_value of non existing row.
// The row should not be deleted.
in_bindings = {MySqlBinding::createInteger<uint32_t>(1)};
- ASSERT_NO_THROW(
+ ASSERT_NO_THROW_LOG(
deleted = conn_.updateDeleteQuery(
MySqlConnectionTest::DELETE_BY_INT_VALUE, in_bindings));
ASSERT_FALSE(deleted);
// This time use the correct value.
in_bindings = {MySqlBinding::createInteger<uint32_t>(1024)};
- ASSERT_NO_THROW(
+ ASSERT_NO_THROW_LOG(
deleted = conn_.updateDeleteQuery(
MySqlConnectionTest::DELETE_BY_INT_VALUE, in_bindings));
// The row should have been deleted.
MySqlBinding::createTimestamp(),
};
- ASSERT_NO_THROW(conn_.selectQuery(MySqlConnectionTest::GET_BY_INT_VALUE,
- in_bindings, out_bindings,
- [&deleted](MySqlBindingCollection&) {
- // This will be executed if the
- // row is returned as a result of
- // select query. We expect that
- // this is not executed.
- deleted = false;
- }));
+ ASSERT_NO_THROW_LOG(conn_.selectQuery(MySqlConnectionTest::GET_BY_INT_VALUE,
+ in_bindings, out_bindings,
+ [&deleted](MySqlBindingCollection&) {
+ // This will be executed if the
+ // row is returned as a result of
+ // select query. We expect that
+ // this is not executed.
+ deleted = false;
+ }));
// Make sure that select query returned nothing.
EXPECT_TRUE(deleted);
}
// Check version
auto parameters = DatabaseConnection::parse(validMySQLConnectionString());
std::pair<uint32_t, uint32_t> version;
- ASSERT_NO_THROW(version = MySqlConnection::getVersion(parameters));
+ ASSERT_NO_THROW_LOG(version = MySqlConnection::getVersion(parameters));
EXPECT_EQ(MYSQL_SCHEMA_VERSION_MAJOR, version.first);
EXPECT_EQ(MYSQL_SCHEMA_VERSION_MINOR, version.second);
}
VALID_HOST_TCP, VALID_USER,
VALID_PASSWORD);
MySqlConnection conn(DatabaseConnection::parse(conn_str));
- ASSERT_NO_THROW(conn.openDatabase());
+ ASSERT_NO_THROW_LOG(conn.openDatabase());
}
/// @brief Check the SSL/TLS protected connection.
VALID_CERT, VALID_KEY, VALID_CA,
VALID_CIPHER);
MySqlConnection conn(DatabaseConnection::parse(conn_str));
- ASSERT_NO_THROW(conn.openDatabase());
+ ASSERT_NO_THROW_LOG(conn.openDatabase());
EXPECT_TRUE(conn.getTls());
std::string cipher = conn.getTlsCipher();
EXPECT_FALSE(cipher.empty());