testPlan(): select isolated network configuration for QSRV

This commit is contained in:
Michael Davidsaver
2023-02-21 07:17:39 -08:00
parent 93e4d3eef3
commit cf4b568e64
4 changed files with 18 additions and 1 deletions
+3 -1
View File
@@ -27,6 +27,7 @@
#include "iocserver.h"
#include "iocshcommand.h"
#include "utilpvt.h"
// must include after log.h has been included to avoid clash with printf macro
#include <epicsStdio.h>
@@ -210,7 +211,8 @@ void initialisePvxsServer() {
using namespace pvxs::server;
auto serv = pvxsServer.load();
if (!serv) {
std::unique_ptr<IOCServer> temp(new IOCServer(Config::from_env()));
Config conf = ::pvxs::impl::inUnitTest() ? Config::isolated() : Config::from_env();
std::unique_ptr<IOCServer> temp(new IOCServer(conf));
if (pvxsServer.compare_exchange_strong(serv, temp.get())) {
log_debug_printf(_logname, "Installing Server %p\n", temp.get());
+2
View File
@@ -23,6 +23,8 @@
namespace pvxs {
/** Prepare for testing. Call after testPlan()
* @since UNRELEASED If linked with pvxsIoc library, PVA server started
* by ``iocInit()`` will use "isolated" configuration.
*/
PVXS_API
void testSetup();
+10
View File
@@ -4,6 +4,8 @@
* in file LICENSE that is included with this distribution.
*/
#include <atomic>
#include "pvxs/version.h"
#if !defined(GCC_VERSION) || GCC_VERSION>VERSION_INT(4,9,0,0)
@@ -29,6 +31,8 @@
namespace pvxs {
static std::atomic<bool> thisIsATest{false};
void testSetup()
{
#ifdef _WIN32
@@ -39,9 +43,15 @@ void testSetup()
if(prev)
testDiag("SetErrorMode() disables 0x%x\n", (unsigned)prev);
#endif
thisIsATest = true;
}
namespace impl {
bool inUnitTest()
{
return thisIsATest;
}
loc_bad_alloc::loc_bad_alloc(const char *file, int line)
{
if(auto sep = strrchr(file, '/')) {
+3
View File
@@ -56,6 +56,9 @@ struct promote_print<int8_t> { static int op(const char& v) { return v; }};
template<>
struct promote_print<uint8_t> { static unsigned op(const char& v) { return v; }};
PVXS_API
bool inUnitTest();
/* specialization of bad_alloc which notes the location from which
* the exception originates.
*/