Skip to content

Commit

Permalink
Add more tests for custom main()
Browse files Browse the repository at this point in the history
  • Loading branch information
rbx authored and dennisklein committed Aug 27, 2018
1 parent 2498837 commit 7d5e76d
Show file tree
Hide file tree
Showing 14 changed files with 149 additions and 67 deletions.
8 changes: 1 addition & 7 deletions examples/1-1/Sampler.cxx
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* Sampler.cpp
*
* @since 2014-10-10
* @author A. Rybalchenko
*/

#include <thread> // this_thread::sleep_for
#include <chrono>
Expand Down
2 changes: 1 addition & 1 deletion fairmq/Tools.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2017-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down
8 changes: 1 addition & 7 deletions fairmq/devices/FairMQBenchmarkSampler.cxx
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* FairMQBenchmarkSampler.cpp
*
* @since 2013-04-23
* @author D. Klein, A. Rybalchenko
*/

#include "FairMQBenchmarkSampler.h"

Expand Down
8 changes: 1 addition & 7 deletions fairmq/devices/FairMQBenchmarkSampler.h
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* FairMQBenchmarkSampler.h
*
* @since 2013-04-23
* @author D. Klein, A. Rybalchenko
*/

#ifndef FAIRMQBENCHMARKSAMPLER_H_
#define FAIRMQBENCHMARKSAMPLER_H_
Expand Down
2 changes: 1 addition & 1 deletion fairmq/options/FairMQParser.cxx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down
2 changes: 1 addition & 1 deletion fairmq/options/FairMQProgOptions.cxx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down
2 changes: 1 addition & 1 deletion fairmq/options/FairMQProgOptions.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down
2 changes: 1 addition & 1 deletion fairmq/run/runBenchmarkSampler.cxx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2014-2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down
2 changes: 1 addition & 1 deletion fairmq/tools/RateLimit.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down
4 changes: 2 additions & 2 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
################################################################################
# Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
# Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
# #
# This software is distributed under the terms of the #
# GNU Lesser General Public Licence (LGPL) version 3, #
Expand Down Expand Up @@ -83,10 +83,10 @@ add_testsuite(FairMQ.Device
SOURCES
device/TestSender.h
device/TestReceiver.h
device/TestVersion.h
device/runner.cxx
device/_multiple_devices.cxx
device/_device_version.cxx
device/_device_config.cxx

LINKS FairMQ
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/device
Expand Down
30 changes: 0 additions & 30 deletions test/device/TestVersion.h

This file was deleted.

122 changes: 122 additions & 0 deletions test/device/_device_config.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
/********************************************************************************
* Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/

#include <FairMQDevice.h>
#include <options/FairMQProgOptions.h>

#include <fairmq/Tools.h>

#include <gtest/gtest.h>

#include <sstream> // std::stringstream
#include <thread>

namespace
{

using namespace std;

void control(FairMQDevice& device)
{
device.ChangeState("INIT_DEVICE");
device.WaitForEndOfState("INIT_DEVICE");
device.ChangeState("INIT_TASK");
device.WaitForEndOfState("INIT_TASK");

device.ChangeState("RUN");
device.WaitForEndOfState("RUN");

device.ChangeState("RESET_TASK");
device.WaitForEndOfState("RESET_TASK");
device.ChangeState("RESET_DEVICE");
device.WaitForEndOfState("RESET_DEVICE");

device.ChangeState("END");
}

class DeviceConfig : public ::testing::Test
{
public:
DeviceConfig()
{}

string TestDeviceSetConfig(const string& transport)
{
FairMQProgOptions config;

vector<string> emptyArgs = {"dummy", "--id", "test", "--color", "false"};

if (config.ParseAll(emptyArgs, true))
{
return 0;
}

config.SetValue<string>("transport", transport);

FairMQDevice device;
device.SetConfig(config);

FairMQChannel channel;
channel.UpdateType("pub");
channel.UpdateMethod("connect");
channel.UpdateAddress("tcp://localhost:5558");
device.AddChannel("data", channel);

thread t(control, ref(device));

device.RunStateMachine();

if (t.joinable())
{
t.join();
}

return device.GetTransportName();
}

string TestDeviceSetTransport(const string& transport)
{
FairMQDevice device;
device.SetTransport(transport);

FairMQChannel channel;
channel.UpdateType("pub");
channel.UpdateMethod("connect");
channel.UpdateAddress("tcp://localhost:5558");
device.AddChannel("data", channel);

std::thread t(control, std::ref(device));

device.RunStateMachine();

if (t.joinable())
{
t.join();
}

return device.GetTransportName();
}
};

TEST_F(DeviceConfig, SetConfig)
{
string transport = "nanomsg";
string returnedTransport = TestDeviceSetConfig(transport);

EXPECT_EQ(transport, returnedTransport);
}

TEST_F(DeviceConfig, SetTransport)
{
string transport = "nanomsg";
string returnedTransport = TestDeviceSetTransport(transport);

EXPECT_EQ(transport, returnedTransport);
}

} // namespace
18 changes: 13 additions & 5 deletions test/device/_device_version.cxx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/********************************************************************************
* Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/

#include "TestVersion.h"
#include <FairMQDevice.h>

#include <fairmq/Tools.h>

Expand All @@ -19,16 +19,24 @@ namespace
{

using namespace std;
using namespace fair::mq::test;

class DeviceVersion : public ::testing::Test {
class TestVersion : public FairMQDevice
{
public:
TestVersion(fair::mq::tools::Version version)
: FairMQDevice(version)
{}
};

class DeviceVersion : public ::testing::Test
{
public:
DeviceVersion()
{}

fair::mq::tools::Version TestDeviceVersion()
{
fair::mq::test::TestVersion versionDevice({1, 2, 3});
TestVersion versionDevice({1, 2, 3});
versionDevice.ChangeState("END");

return versionDevice.GetVersion();
Expand Down
6 changes: 3 additions & 3 deletions test/device/_multiple_devices.cxx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand Down Expand Up @@ -51,7 +51,7 @@ class MultipleDevices : public ::testing::Test {

FairMQChannel channel("push", "connect", "ipc://multiple-devices-test");
channel.UpdateRateLogging(0);
sender.fChannels["data"].push_back(channel);
sender.AddChannel("data", channel);

thread t(control, std::ref(sender));

Expand All @@ -73,7 +73,7 @@ class MultipleDevices : public ::testing::Test {

FairMQChannel channel("pull", "bind", "ipc://multiple-devices-test");
channel.UpdateRateLogging(0);
receiver.fChannels["data"].push_back(channel);
receiver.AddChannel("data", channel);

thread t(control, std::ref(receiver));

Expand Down

0 comments on commit 7d5e76d

Please sign in to comment.