Skip to content
Snippets Groups Projects
Commit d3aabd94 authored by Christoph Lehmann's avatar Christoph Lehmann
Browse files

[T] filename added to config tree

parent 0869796c
No related branches found
No related tags found
No related merge requests found
......@@ -136,7 +136,7 @@ TEST(AssemblerLibSerialLinearSolver, Steady2DdiffusionQuadElem)
t_root.put_child("eigen", t_solver);
}
t_root.put("lis", "-i cg -p none -tol 1e-16 -maxiter 1000");
BaseLib::ConfigTreeNew conf(t_root);
BaseLib::ConfigTreeNew conf(t_root, "");
GlobalSetup::LinearSolver ls(*A, "solver_name", &conf);
ls.solve(*rhs, *x);
......
......@@ -37,9 +37,15 @@ public:
BaseLib::ConfigTreeNew::Callback
get_error_cb()
{
return [this](std::string const& path, std::string const& message)
return [this](std::string const& filename, std::string const& path,
std::string const& message)
{
(void) path; (void) message;
// check that filename is passed around properly, especially with
// move construction/assignment
EXPECT_EQ("FILENAME", filename);
DBUG("error <%s> : %s", path.c_str(), message.c_str());
_error = true;
throw Exc(); // throw in order to stop normal execution
......@@ -49,9 +55,15 @@ public:
BaseLib::ConfigTreeNew::Callback
get_warning_cb()
{
return [this](std::string const& path, std::string const& message)
return [this](std::string const& filename, std::string const& path,
std::string const& message)
{
(void) path; (void) message;
// check that filename is passed around properly, especially with
// move construction/assignment
EXPECT_EQ("FILENAME", filename);
DBUG("warning <%s> : %s", path.c_str(), message.c_str());
_warning = true;
};
......@@ -78,6 +90,13 @@ readXml(const char xml[])
return ptree;
}
BaseLib::ConfigTreeNew
makeConfigTree(boost::property_tree::ptree const& ptree, Callbacks& cbs)
{
return BaseLib::ConfigTreeNew(ptree, "FILENAME",
cbs.get_error_cb(), cbs.get_warning_cb());
}
TEST(BaseLibConfigTree, Empty)
{
......@@ -85,7 +104,7 @@ TEST(BaseLibConfigTree, Empty)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
(void) conf;
} // ConfigTree destroyed here
......@@ -115,7 +134,7 @@ TEST(BaseLibConfigTree, Get)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
EXPECT_EQ(5.6e-4, conf.getConfParam<double>("double")); // read certain types
EXPECT_ERR_WARN(cbs, false, false);
......@@ -227,7 +246,7 @@ TEST(BaseLibConfigTree, IncompleteParse)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
EXPECT_EQ(5.6, conf.getConfParam<double>("double"));
EXPECT_ERR_WARN(cbs, false, false);
......@@ -268,7 +287,7 @@ TEST(BaseLibConfigTree, CheckRange)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
{
// check that std::distance can be computed twice in a row
......@@ -307,7 +326,7 @@ TEST(BaseLibConfigTree, GetSubtreeList)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
int i = 0;
for (auto ct : conf.getConfSubtreeList("val"))
......@@ -331,7 +350,7 @@ TEST(BaseLibConfigTree, GetValueList)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
int n = 0;
for (auto i : conf.getConfParamList<int>("int"))
......@@ -359,7 +378,7 @@ TEST(BaseLibConfigTree, NoConversion)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
RUN_SAFE(conf.getConfParam<int>("int"));
EXPECT_ERR_WARN(cbs, true, false);
......@@ -411,7 +430,7 @@ TEST(BaseLibConfigTree, BadKeynames)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
for (auto tag : { "<", "Z", ".", "$", "0", "", "/", "_", "a__" })
{
......@@ -460,7 +479,7 @@ TEST(BaseLibConfigTree, StringLiterals)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto const conf = makeConfigTree(ptree, cbs);
EXPECT_EQ("test", conf.getConfParam<std::string>("s", "XX"));
EXPECT_ERR_WARN(cbs, false, false);
......@@ -486,7 +505,7 @@ TEST(BaseLibConfigTree, MoveConstruct)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto conf = makeConfigTree(ptree, cbs);
EXPECT_EQ("test", conf.getConfParam<std::string>("s", "XX"));
EXPECT_ERR_WARN(cbs, false, false);
......@@ -499,7 +518,7 @@ TEST(BaseLibConfigTree, MoveConstruct)
// test that read status of data is transferred in move construction
{
BaseLib::ConfigTreeNew u2(std::move(u));
BaseLib::ConfigTreeNew const u2(std::move(u));
EXPECT_ERR_WARN(cbs, false, false);
}
EXPECT_ERR_WARN(cbs, false, false);
......@@ -530,7 +549,7 @@ TEST(BaseLibConfigTree, MoveAssign)
Callbacks cbs;
{
BaseLib::ConfigTreeNew conf(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto conf = makeConfigTree(ptree, cbs);
EXPECT_EQ("test", conf.getConfParam<std::string>("s", "XX"));
EXPECT_ERR_WARN(cbs, false, false);
......@@ -543,7 +562,7 @@ TEST(BaseLibConfigTree, MoveAssign)
// test that read status of data is transferred in move assignment
{
BaseLib::ConfigTreeNew u2(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto u2 = makeConfigTree(ptree, cbs);
u2 = std::move(u);
// Expect warning because u2 has not been traversed
// entirely before assignment.
......@@ -553,7 +572,7 @@ TEST(BaseLibConfigTree, MoveAssign)
// test that read status of children is transferred in move construction
{
BaseLib::ConfigTreeNew conf2(ptree, cbs.get_error_cb(), cbs.get_warning_cb());
auto conf2 = makeConfigTree(ptree, cbs);
conf2 = std::move(conf);
// Expect warning because conf2 has not been traversed
// entirely before assignment.
......
......@@ -204,7 +204,7 @@ void checkLinearSolverInterface(T_MATRIX& A, T_VECTOR& b,
TEST(MathLib, CheckInterface_GaussAlgorithm)
{
boost::property_tree::ptree t_root;
BaseLib::ConfigTreeNew conf(t_root);
BaseLib::ConfigTreeNew conf(t_root, "");
using Example = Example1<std::size_t>;
......@@ -226,7 +226,7 @@ TEST(Math, CheckInterface_Eigen)
t_solver.put("error_tolerance", 1e-15);
t_solver.put("max_iteration_step", 1000);
t_root.put_child("eigen", t_solver);
BaseLib::ConfigTreeNew conf(t_root);
BaseLib::ConfigTreeNew conf(t_root, "");
using IntType = MathLib::EigenMatrix::IndexType;
......@@ -243,7 +243,7 @@ TEST(Math, CheckInterface_EigenLis)
boost::property_tree::ptree t_root;
boost::property_tree::ptree t_solver;
t_root.put("lis", "-i cg -p none -tol 1e-15 -maxiter 1000");
BaseLib::ConfigTreeNew conf(t_root);
BaseLib::ConfigTreeNew conf(t_root, "");
using IntType = MathLib::LisMatrix::IndexType;
......@@ -260,7 +260,7 @@ TEST(Math, CheckInterface_Lis)
boost::property_tree::ptree t_root;
boost::property_tree::ptree t_solver;
t_root.put("lis", "-i cg -p none -tol 1e-15 -maxiter 1000");
BaseLib::ConfigTreeNew conf(t_root);
BaseLib::ConfigTreeNew conf(t_root, "");
using IntType = MathLib::LisMatrix::IndexType;
......@@ -294,7 +294,7 @@ TEST(MPITest_Math, CheckInterface_PETSc_Linear_Solver_basic)
checkLinearSolverInterface<MathLib::PETScMatrix,
MathLib::PETScVector,
MathLib::PETScLinearSolver>(
A, b, "ptest1_", BaseLib::ConfigTreeNew(t_root));
A, b, "ptest1_", BaseLib::ConfigTreeNew(t_root, ""));
}
TEST(MPITest_Math, CheckInterface_PETSc_Linear_Solver_chebyshev_sor)
......@@ -320,7 +320,7 @@ TEST(MPITest_Math, CheckInterface_PETSc_Linear_Solver_chebyshev_sor)
checkLinearSolverInterface<MathLib::PETScMatrix,
MathLib::PETScVector,
MathLib::PETScLinearSolver>(
A, b, "ptest2_", BaseLib::ConfigTreeNew(t_root));
A, b, "ptest2_", BaseLib::ConfigTreeNew(t_root, ""));
}
TEST(MPITest_Math, CheckInterface_PETSc_Linear_Solver_gmres_amg)
......@@ -348,7 +348,7 @@ TEST(MPITest_Math, CheckInterface_PETSc_Linear_Solver_gmres_amg)
checkLinearSolverInterface<MathLib::PETScMatrix,
MathLib::PETScVector,
MathLib::PETScLinearSolver>(
A, b, "ptest3_", BaseLib::ConfigTreeNew(t_root));
A, b, "ptest3_", BaseLib::ConfigTreeNew(t_root, ""));
}
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment