![]() |
Peano
|
This is a ping pong test for our application-specific data types. More...
#include <PingPongTest.h>
Public Member Functions | |
PingPongTest () | |
virtual void | run () override |
This routine is triggered by the TestCaseCollection. | |
![]() | |
TestCase (const std::string &testCaseName) | |
Constructor. | |
virtual | ~TestCase () |
Destructor. | |
int | getNumberOfErrors () const |
std::string | getTestCaseName () const |
Private Member Functions | |
void | testBuiltInType () |
void | testDaStGenTypeIntegerMessage () |
It is really important that we test - for the DaStGen-generated data types - both the built-in operation and the usage with MPI_Send and MPI_Recv. | |
void | testDaStGenTypeStartTraversalMessage () |
void | testDaStGenArray () |
void | testDaStGenArrayTreeManagementMessage () |
void | testMultithreadedPingPongWithBlockingReceives () |
void | testMultithreadedPingPongWithBlockingSends () |
void | testMultithreadedPingPongWithBlockingSendsAndReceives () |
void | testMultithreadedPingPongWithNonblockingReceives () |
void | testMultithreadedPingPongWithNonblockingSends () |
void | testMultithreadedPingPongWithNonblockingSendsAndReceives () |
Static Private Attributes | |
static tarch::logging::Log | _log |
Logging device. | |
Additional Inherited Members | |
![]() | |
TestCase ()=delete | |
![]() | |
const std::string | _testCaseName |
Name of the test case. | |
int | _errors |
Error counter. | |
bool | _error |
Indicate within macro if one specific validation failed. | |
This is a ping pong test for our application-specific data types.
Definition at line 21 of file PingPongTest.h.
peano4::parallel::tests::PingPongTest::PingPongTest | ( | ) |
Definition at line 24 of file PingPongTest.cpp.
|
overridevirtual |
This routine is triggered by the TestCaseCollection.
Implements tarch::tests::TestCase.
Definition at line 395 of file PingPongTest.cpp.
References logTraceIn, logTraceOut, and testMethod.
|
private |
Definition at line 29 of file PingPongTest.cpp.
References tarch::mpi::Rank::getInstance(), and validateEquals.
|
private |
Definition at line 331 of file PingPongTest.cpp.
References peano4::parallel::StartTraversalMessage::getGlobalCommunciationDatatype(), tarch::mpi::Rank::getInstance(), peano4::parallel::StartTraversalMessage::setStepIdentifier(), toString(), and validateEqualsWithParams8.
|
private |
Definition at line 378 of file PingPongTest.cpp.
References peano4::parallel::TreeManagementMessage::Acknowledgement, peano4::parallel::TreeManagementMessage::getAction(), tarch::mpi::Rank::getInstance(), peano4::parallel::TreeManagementMessage::receive(), peano4::parallel::TreeManagementMessage::send(), peano4::parallel::TreeManagementMessage::setAction(), peano4::parallel::TreeManagementMessage::toString(), and validateWithParams1.
|
private |
It is really important that we test - for the DaStGen-generated data types - both the built-in operation and the usage with MPI_Send and MPI_Recv.
I had the case that the generated datatypes had a vtable, i.e. an addition four bytes. These bytes are then added to the object (at the front), but I had situations where they seem not to be incorporated into the this pointer. In any case, programmmers should not try to exchange data types with vtables, but if they do then we'll see bugs when we try to exchange the generated MPI_Send with a send() call on the DaStGen object.
Definition at line 301 of file PingPongTest.cpp.
References tarch::mpi::IntegerMessage::getGlobalCommunciationDatatype(), tarch::mpi::Rank::getInstance(), tarch::mpi::IntegerMessage::getValue(), tarch::mpi::IntegerMessage::receive(), tarch::mpi::IntegerMessage::send(), tarch::mpi::IntegerMessage::setValue(), tarch::mpi::IntegerMessage::toString(), and validateEqualsWithParams2.
|
private |
Definition at line 284 of file PingPongTest.cpp.
References tarch::mpi::Rank::getInstance(), peano4::parallel::StartTraversalMessage::getStepIdentifier(), peano4::parallel::StartTraversalMessage::receive(), peano4::parallel::StartTraversalMessage::send(), peano4::parallel::StartTraversalMessage::setStepIdentifier(), peano4::parallel::StartTraversalMessage::toString(), and validateEqualsWithParams2.
|
private |
Definition at line 113 of file PingPongTest.cpp.
References tarch::multicore::orchestration::Hardcoded::createNative(), tarch::mpi::Rank::getInstance(), tarch::multicore::Core::getInstance(), tarch::multicore::Core::getNumberOfThreads(), tarch::multicore::setOrchestration(), tarch::multicore::spawnAndWait(), tarch::multicore::swapOrchestration(), and validate.
|
private |
Definition at line 170 of file PingPongTest.cpp.
References tarch::multicore::orchestration::Hardcoded::createNative(), tarch::mpi::Rank::getInstance(), tarch::multicore::Core::getInstance(), tarch::multicore::Core::getNumberOfThreads(), tarch::multicore::setOrchestration(), tarch::multicore::spawnAndWait(), tarch::multicore::swapOrchestration(), validate, and validateEquals.
|
private |
Definition at line 228 of file PingPongTest.cpp.
References tarch::multicore::orchestration::Hardcoded::createNative(), tarch::mpi::Rank::getInstance(), tarch::multicore::Core::getInstance(), tarch::multicore::Core::getNumberOfThreads(), tarch::multicore::setOrchestration(), tarch::multicore::spawnAndWait(), tarch::multicore::swapOrchestration(), and validate.
|
private |
Definition at line 141 of file PingPongTest.cpp.
References tarch::multicore::orchestration::Hardcoded::createNative(), tarch::mpi::Rank::getInstance(), tarch::multicore::Core::getInstance(), tarch::multicore::Core::getNumberOfThreads(), tarch::multicore::setOrchestration(), tarch::multicore::spawnAndWait(), tarch::multicore::swapOrchestration(), and validate.
|
private |
Definition at line 199 of file PingPongTest.cpp.
References tarch::multicore::orchestration::Hardcoded::createNative(), tarch::mpi::Rank::getInstance(), tarch::multicore::Core::getInstance(), tarch::multicore::Core::getNumberOfThreads(), tarch::multicore::setOrchestration(), tarch::multicore::spawnAndWait(), tarch::multicore::swapOrchestration(), validate, and validateEquals.
|
private |
Definition at line 256 of file PingPongTest.cpp.
References tarch::multicore::orchestration::Hardcoded::createNative(), tarch::mpi::Rank::getInstance(), tarch::multicore::Core::getInstance(), tarch::multicore::Core::getNumberOfThreads(), tarch::multicore::setOrchestration(), tarch::multicore::spawnAndWait(), tarch::multicore::swapOrchestration(), and validate.
|
staticprivate |
Logging device.
Definition at line 26 of file PingPongTest.h.