Merge pull request #3027 from bska/attribute-missing-kw-terminator

Attribute Missing Terminator to Keyword/File/Line
This commit is contained in:
Markus Blatt 2022-05-19 15:32:44 +02:00 committed by GitHub
commit 180b7cb664
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 35 deletions

View File

@ -927,8 +927,12 @@ std::unique_ptr<RawKeyword> tryParseKeyword( ParserState& parserState, const Par
if (rawKeyword->can_complete())
rawKeyword->terminateKeyword();
if (!rawKeyword->isFinished())
throw std::invalid_argument("Keyword " + rawKeyword->getKeywordName() + " is not properly terminated");
if (!rawKeyword->isFinished()) {
throw OpmInputError {
"Keyword is not properly terminated.",
rawKeyword->location()
};
}
}
return rawKeyword;

View File

@ -30,6 +30,7 @@
#include <boost/test/unit_test.hpp>
#include <boost/test/tools/floating_point_comparison.hpp>
#include <opm/common/utility/OpmInputError.hpp>
#include <opm/input/eclipse/Parser/Parser.hpp>
@ -1987,11 +1988,7 @@ OPERATE
)";
BOOST_CHECK_THROW(make_fp(invalid_copy), std::logic_error);
BOOST_CHECK_THROW(make_fp(invalid_copy), OpmInputError);
BOOST_CHECK_THROW(make_fp(invalid_region), std::logic_error);
BOOST_CHECK_THROW(make_fp(invalid_operate), std::logic_error);
}

View File

@ -23,6 +23,8 @@
#include <boost/test/unit_test.hpp>
#include <boost/test/test_tools.hpp>
#include <opm/common/utility/OpmInputError.hpp>
#include <opm/input/eclipse/Deck/Deck.hpp>
#include <opm/input/eclipse/Deck/DeckItem.hpp>
#include <opm/input/eclipse/Deck/DeckKeyword.hpp>
@ -37,33 +39,33 @@ using namespace Opm;
const char *dataMissingRecord = "\n\
ENDSCALE\n\
1* 1* 2 /\n\
\n\
ENKRVD\n\
100 1 2 3 4 5 6 7 200 11 22 33 44 55 66 77 /\n\
";
const char *dataMissingRecord = R"(
ENDSCALE
1* 1* 2 /
ENKRVD
100 1 2 3 4 5 6 7 200 11 22 33 44 55 66 77 /
)";
BOOST_AUTO_TEST_CASE( ParseMissingRECORD_THrows) {
Parser parser;
BOOST_CHECK_THROW( parser.parseString( dataMissingRecord ), std::invalid_argument );
BOOST_CHECK_THROW( parser.parseString( dataMissingRecord ), OpmInputError );
}
const char *data = "\n\
ENDSCALE\n\
1* 1* 3 /\n\
\n\
ENKRVD\n\
100 * 2 * 2* 6 7 200 11 22 33 3*55 10 /\n\
100 * 2 3 4 5 6 7 200 11 22 33 44 55 66 77 /\n\
100 * 2 3 4 5 6 7 200 11 22 33 44 55 66 * /\n\
";
const char *data = R"(
ENDSCALE
1* 1* 3 /
ENKRVD
100 * 2 * 2* 6 7 200 11 22 33 3*55 10 /
100 * 2 3 4 5 6 7 200 11 22 33 44 55 66 77 /
100 * 2 3 4 5 6 7 200 11 22 33 44 55 66 * /
)";

View File

@ -23,17 +23,20 @@
#include <boost/test/unit_test.hpp>
#include <opm/input/eclipse/Parser/Parser.hpp>
#include <opm/input/eclipse/Deck/DeckSection.hpp>
#include <opm/input/eclipse/Parser/ParserKeywords/C.hpp>
#include <opm/common/utility/OpmInputError.hpp>
#include <opm/input/eclipse/EclipseState/EclipseState.hpp>
#include <opm/input/eclipse/EclipseState/Runspec.hpp>
#include <opm/input/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
#include <opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/input/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp>
#include <opm/input/eclipse/EclipseState/SimulationConfig/RockConfig.hpp>
#include <opm/input/eclipse/EclipseState/Tables/TableManager.hpp>
#include <opm/input/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
#include <opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/input/eclipse/Parser/Parser.hpp>
#include <opm/input/eclipse/Parser/ParserKeywords/C.hpp>
#include <opm/input/eclipse/Deck/DeckSection.hpp>
using namespace Opm;
@ -211,7 +214,7 @@ BOOST_AUTO_TEST_CASE(SimulationConfigCPRBoth) {
BOOST_AUTO_TEST_CASE(SimulationConfigCPRRUnspecWithData) {
BOOST_CHECK_THROW( createDeck(inputStr_INVALID) , std::invalid_argument );
BOOST_CHECK_THROW( createDeck(inputStr_INVALID) , Opm::OpmInputError );
}

View File

@ -24,12 +24,17 @@
#define BOOST_TEST_MODULE ReportConfigTest
#include <boost/test/unit_test.hpp>
#include <opm/common/utility/OpmInputError.hpp>
#include <opm/input/eclipse/EclipseState/EclipseState.hpp>
#include <opm/input/eclipse/Schedule/RPTConfig.hpp>
#include <opm/input/eclipse/Schedule/Schedule.hpp>
#include <opm/input/eclipse/Python/Python.hpp>
#include <opm/input/eclipse/Deck/Deck.hpp>
#include <opm/input/eclipse/Parser/Parser.hpp>
#include <opm/input/eclipse/EclipseState/EclipseState.hpp>
#include <opm/input/eclipse/Python/Python.hpp>
@ -96,9 +101,9 @@ RPTSCHED
FIPSOL=2.50
)";
BOOST_CHECK_THROW(make_schedule(sched_string1), std::invalid_argument);
BOOST_CHECK_THROW(make_schedule(sched_string2), std::invalid_argument);
BOOST_CHECK_THROW(make_schedule(sched_string3), std::invalid_argument);
BOOST_CHECK_THROW(make_schedule(sched_string1), Opm::OpmInputError);
BOOST_CHECK_THROW(make_schedule(sched_string2), Opm::OpmInputError);
BOOST_CHECK_THROW(make_schedule(sched_string3), Opm::OpmInputError);
}