MXS-173 Test for throttling filter
The test may fail if the client/maxscale/mariadb combo is too slow. TODO, maybe: today I saw mysql_query() hang (in a poll) when maxscale disconnected. Is there something that can be done about that? I added a source directory, base, for stuff that should become part of a common utility library in the future.
This commit is contained in:
47
maxscale-system-test/base/appexception.h
Normal file
47
maxscale-system-test/base/appexception.h
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (c) 2018 MariaDB Corporation Ab
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file and at www.mariadb.com/bsl11.
|
||||
*
|
||||
* Change Date: 2020-01-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2 or later of the General
|
||||
* Public License.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdexcept>
|
||||
#include <sstream>
|
||||
|
||||
namespace base
|
||||
{
|
||||
|
||||
// TODO Add back trace.
|
||||
class AppException : public std::runtime_error
|
||||
{
|
||||
public:
|
||||
AppException(const std::string& msg, const std::string& file,
|
||||
int line) :
|
||||
std::runtime_error(msg), m_file(file), m_line(line)
|
||||
{}
|
||||
private:
|
||||
std::string m_file;
|
||||
int m_line;
|
||||
};
|
||||
} //base
|
||||
|
||||
#define DEFINE_EXCEPTION(Type) \
|
||||
struct Type : public base::AppException { \
|
||||
Type(const std::string& msg, const char* file, \
|
||||
int line) : \
|
||||
AppException(msg, file, line) {}}
|
||||
|
||||
#define THROW(Type, msg_str) do {\
|
||||
std::ostringstream os; \
|
||||
os << __FILE__ << ':' << __LINE__ << '\n' << msg_str; \
|
||||
throw Type(os.str(), __FILE__, __LINE__);} while(false)
|
||||
|
||||
|
Reference in New Issue
Block a user