SOPT
Sparse OPTimisation
Macros | Functions | Variables
mpi_session.cc File Reference
#include <iterator>
#include <regex>
#include <vector>
#include "catch2/catch_all.hpp"
#include "sopt/logging.h"
#include "sopt/mpi/session.h"
+ Include dependency graph for mpi_session.cc:

Go to the source code of this file.

Macros

#define CATCH_CONFIG_RUNNER
 

Functions

 TEST_CASE ("Create/delete session")
 
int main (int argc, const char **argv)
 

Variables

std::vector< char const * > cargs
 

Macro Definition Documentation

◆ CATCH_CONFIG_RUNNER

#define CATCH_CONFIG_RUNNER

Definition at line 1 of file mpi_session.cc.

Function Documentation

◆ main()

int main ( int  argc,
const char **  argv 
)

Definition at line 22 of file mpi_session.cc.

22  {
23  Catch::Session session; // There must be exactly once instance
24 
25  // Removes output qualifiers from arguments
26  auto avoid = false;
27  auto const N = std::string("--out=").size();
28  std::vector<std::string> const args(argv, argv + argc);
29  for (auto const &arg : args)
30  if (avoid)
31  avoid = false;
32  else if (arg == "-o" or arg == "--out")
33  avoid = true;
34  else if (arg.size() < N or arg.substr(0, N) != "--out=")
35  cargs.push_back(arg.c_str());
36 
37  auto const returnCode = session.applyCommandLine(cargs.size(), const_cast<char **>(cargs.data()));
38  if (returnCode != 0) // Indicates a command line error
39  return returnCode;
40 
41  auto const result = session.run();
42  return result;
43 }
constexpr auto N
Definition: wavelets.cc:57
std::vector< char const * > cargs
Definition: mpi_session.cc:10

References cargs, and N.

◆ TEST_CASE()

TEST_CASE ( "Create/delete session"  )

Definition at line 11 of file mpi_session.cc.

11  {
12  CHECK(mpi::initialized() == false);
13  CHECK(mpi::finalized() == false);
14  auto session = mpi::init(cargs.size(), cargs.data());
15  CHECK(mpi::initialized() == true);
16  CHECK(mpi::finalized() == false);
17  session.reset();
18  CHECK(mpi::initialized() == true);
19  CHECK(mpi::finalized() == true);
20 }
bool finalized()
Definition: session.cc:71
std::shared_ptr< details::initializer > init(int argc, const char **argv)
Definition: session.cc:27
bool initialized()
Definition: session.cc:61

References cargs, sopt::mpi::finalized(), sopt::mpi::init(), and sopt::mpi::initialized().

Variable Documentation

◆ cargs

std::vector<char const *> cargs

Definition at line 10 of file mpi_session.cc.

Referenced by main(), and TEST_CASE().