diff --git a/cmake/Modules/Findopm-parser.cmake b/cmake/Modules/Findopm-parser.cmake index e0fcb7419..899ed8a0c 100644 --- a/cmake/Modules/Findopm-parser.cmake +++ b/cmake/Modules/Findopm-parser.cmake @@ -5,9 +5,9 @@ # # If found, it sets these variables: # -# HAVE_OPM_PARSER Defined if a test program compiled -# OPM_PARSER_INCLUDE_DIRS Header file directories -# OPM_PARSER_LIBRARIES Archives and shared objects +# HAVE_OPM_PARSER Defined if a test program compiled +# OPM_PARSER_INCLUDE_DIRS Header file directories +# OPM_PARSER_LIBRARIES Archives and shared objects include (FindPackageHandleStandardArgs) @@ -61,18 +61,18 @@ find_path (OPM_PARSER_INCLUDE_DIR # then it is probably a build directory; read the CMake cache of # opm-parser to figure out where the source directory is if ((NOT OPM_PARSER_INCLUDE_DIR) AND - (OPM_PARSER_ROOT AND (EXISTS "${OPM_PARSER_ROOT}/CMakeCache.txt"))) + (OPM_PARSER_ROOT AND (EXISTS "${OPM_PARSER_ROOT}/CMakeCache.txt"))) set (_regex "^OPMParser_SOURCE_DIR:STATIC=\(.*\)$") file (STRINGS - "${OPM_PARSER_ROOT}/CMakeCache.txt" - _cache_entry - REGEX "${_regex}") + "${OPM_PARSER_ROOT}/CMakeCache.txt" + _cache_entry + REGEX "${_regex}") string(REGEX REPLACE "${_regex}" "\\1" - OPM_PARSER_INCLUDE_DIR - "${_cache_entry}") + OPM_PARSER_INCLUDE_DIR + "${_cache_entry}") if (OPM_PARSER_INCLUDE_DIR) - set (OPM_PARSER_INCLUDE_DIR "${OPM_PARSER_INCLUDE_DIR}" - CACHE PATH "Path to OPM parser header files" FORCE) + set (OPM_PARSER_INCLUDE_DIR "${OPM_PARSER_INCLUDE_DIR}" + CACHE PATH "Path to OPM parser header files" FORCE) endif () endif () @@ -109,14 +109,16 @@ endif () # get the prerequisite Boost libraries if (NOT Boost_FOUND) find_package(Boost 1.44.0 - COMPONENTS filesystem date_time system unit_test_framework REQUIRED ${OPM_PARSER_QUIET}) + COMPONENTS filesystem date_time system unit_test_framework REQUIRED ${OPM_PARSER_QUIET}) endif () # setup list of all required libraries to link with opm-parser. notice that # we use the plural form to get *all* the libraries needed by cjson set (OPM_PARSER_INCLUDE_DIRS ${OPM_PARSER_INCLUDE_DIR} + ${CJSON_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) + set (OPM_PARSER_LIBRARIES ${OPM_PARSER_LIBRARY} ${OPM_JSON_LIBRARY} @@ -126,7 +128,7 @@ set (OPM_PARSER_LIBRARIES # see if we can compile a minimum example # CMake logical test doesn't handle lists (sic) if (NOT (OPM_PARSER_INCLUDE_DIR MATCHES "-NOTFOUND" - OR OPM_PARSER_LIBRARIES MATCHES "-NOTFOUND")) + OR OPM_PARSER_LIBRARIES MATCHES "-NOTFOUND")) include (CMakePushCheckState) include (CheckCSourceCompiles) cmake_push_check_state () diff --git a/cmake/Modules/opm-parser-prereqs.cmake b/cmake/Modules/opm-parser-prereqs.cmake index 80c951361..521568b78 100644 --- a/cmake/Modules/opm-parser-prereqs.cmake +++ b/cmake/Modules/opm-parser-prereqs.cmake @@ -13,6 +13,6 @@ set (opm-parser_DEPS # compile with C++0x/11 support if available "CXX11Features REQUIRED" # various runtime library enhancements - "Boost 1.39.0 - COMPONENTS date_time filesystem system unit_test_framework REQUIRED" + "Boost 1.44.0 COMPONENTS date_time filesystem system unit_test_framework REQUIRED" + "cJSON" ) diff --git a/opm/parser/eclipse/IntegrationTests/ScheduleCreateFromDeck.cpp b/opm/parser/eclipse/IntegrationTests/ScheduleCreateFromDeck.cpp index 1c3ce053b..09a441845 100644 --- a/opm/parser/eclipse/IntegrationTests/ScheduleCreateFromDeck.cpp +++ b/opm/parser/eclipse/IntegrationTests/ScheduleCreateFromDeck.cpp @@ -44,6 +44,20 @@ BOOST_AUTO_TEST_CASE(CreateSchedule) { } + +BOOST_AUTO_TEST_CASE(CreateSchedule_Comments_After_Keywords) { + + ParserPtr parser(new Parser()); + boost::filesystem::path scheduleFile("testdata/integration_tests/SCHEDULE/SCHEDULE_COMMENTS_AFTER_KEYWORDS"); + DeckPtr deck = parser->parse(scheduleFile.string()); + ScheduleConstPtr sched(new Schedule(deck)); + TimeMapConstPtr timeMap = sched->getTimeMap(); + BOOST_CHECK_EQUAL(boost::gregorian::date(2007, boost::gregorian::May, 10), sched->getStartDate()); + BOOST_CHECK_EQUAL(9U, timeMap->size()); + +} + + BOOST_AUTO_TEST_CASE(WellTesting) { ParserPtr parser(new Parser()); boost::filesystem::path scheduleFile("testdata/integration_tests/SCHEDULE/SCHEDULE_WELLS2"); diff --git a/opm/parser/eclipse/RawDeck/RawKeyword.cpp b/opm/parser/eclipse/RawDeck/RawKeyword.cpp index 7834737eb..bb71bb5f6 100644 --- a/opm/parser/eclipse/RawDeck/RawKeyword.cpp +++ b/opm/parser/eclipse/RawDeck/RawKeyword.cpp @@ -122,7 +122,7 @@ namespace Opm { } bool RawKeyword::tryParseKeyword(const std::string& keywordCandidate, std::string& result) { - result = boost::trim_right_copy(keywordCandidate.substr(0, 8)); + result = boost::trim_right_copy_if(keywordCandidate.substr(0, 8), boost::is_any_of("- \t")); if (isValidKeyword(result)) return true; else diff --git a/testdata/integration_tests/SCHEDULE/SCHEDULE1 b/testdata/integration_tests/SCHEDULE/SCHEDULE1 index 7b6bd5bc8..bdabd7873 100644 --- a/testdata/integration_tests/SCHEDULE/SCHEDULE1 +++ b/testdata/integration_tests/SCHEDULE/SCHEDULE1 @@ -4,7 +4,7 @@ START SCHEDULE -DATES +DATES -- Bananskrell 10 'JUN' 2007 / / diff --git a/testdata/integration_tests/SCHEDULE/SCHEDULE_COMMENTS_AFTER_KEYWORDS b/testdata/integration_tests/SCHEDULE/SCHEDULE_COMMENTS_AFTER_KEYWORDS new file mode 100644 index 000000000..9051e5ca3 --- /dev/null +++ b/testdata/integration_tests/SCHEDULE/SCHEDULE_COMMENTS_AFTER_KEYWORDS @@ -0,0 +1,26 @@ +START +10 MAI 2007 / + + +SCHEDULE + +DATES -- Bananskrell + 10 'JUN' 2007 / +/ + + +DATES + 10 JLY 2007 / + 10 AUG 2007 / +/ + + + +TSTEP -- Fiskepudding + 10 2*10 / + + +DATES + 10 JLY 2008 / + 10 AUG 2008 / +/