From 53187720dd42a9e6da0fd4fbed17546462caef00 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Wed, 20 Apr 2016 17:52:00 +0200 Subject: [PATCH] add a unit test to check that last_line works in ParameterHandler --- tests/bits/parameter_handler_22_last_line.cc | 56 +++++++++++++++++++ .../parameter_handler_22_last_line.output | 5 ++ tests/bits/parameter_handler_22_last_line.prm | 4 ++ 3 files changed, 65 insertions(+) create mode 100644 tests/bits/parameter_handler_22_last_line.cc create mode 100644 tests/bits/parameter_handler_22_last_line.output create mode 100644 tests/bits/parameter_handler_22_last_line.prm diff --git a/tests/bits/parameter_handler_22_last_line.cc b/tests/bits/parameter_handler_22_last_line.cc new file mode 100644 index 0000000000..07eb5584ee --- /dev/null +++ b/tests/bits/parameter_handler_22_last_line.cc @@ -0,0 +1,56 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2002 - 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + + +// check that setting last_line parameter does indeed terminate parsing. + +#include "../tests.h" +#include +#include +#include + +void check (const char *p, std::string last_line) +{ + ParameterHandler prm; + prm.declare_entry ("var_1", "-1", + Patterns::Integer(-1,1)); + + prm.declare_entry ("var_2", "-1", + Patterns::Integer(-1,1)); + + std::ifstream in(p); + bool status = prm.read_input (in, "input file", last_line); + Assert (status == true, ExcInternalError()); + + deallog << "var_1=" << prm.get ("var_1") << std::endl + << "var_2=" << prm.get ("var_2") << std::endl; +} + + +int main () +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.threshold_double(1.e-10); + + // go into the source dir to read files there. this + // is necessary so that we can include files there + chdir (SOURCE_DIR); + check ("parameter_handler_22_last_line.prm",""); + check ("parameter_handler_22_last_line.prm","# end-of-parameter-section"); + + return 0; +} diff --git a/tests/bits/parameter_handler_22_last_line.output b/tests/bits/parameter_handler_22_last_line.output new file mode 100644 index 0000000000..81e8a6839d --- /dev/null +++ b/tests/bits/parameter_handler_22_last_line.output @@ -0,0 +1,5 @@ + +DEAL::var_1=1 +DEAL::var_2=1 +DEAL::var_1=1 +DEAL::var_2=-1 diff --git a/tests/bits/parameter_handler_22_last_line.prm b/tests/bits/parameter_handler_22_last_line.prm new file mode 100644 index 0000000000..13a8c71972 --- /dev/null +++ b/tests/bits/parameter_handler_22_last_line.prm @@ -0,0 +1,4 @@ +set var_1 = 1 + +# end-of-parameter-section +set var_2 = 1 -- 2.39.5