mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Add 'prepareResultOutputDirectory' function in Opm namespace that removes possible old simulation output files from the specified output directory.
This function is called during 'setupLogging' before the actual logging starts.
This commit is contained in:
@@ -95,11 +95,22 @@ BOOST_FIXTURE_TEST_CASE(WithOutputDir, Fixture)
|
||||
|
||||
using PathPair = std::pair<std::filesystem::path, std::filesystem::path>;
|
||||
|
||||
for (const bool createFaultyFileWithDirectory : {true, false}) {
|
||||
for (const auto& Case : {PathPair{input_path, input_path / "output1"},
|
||||
PathPair{input_path / "subdir", input_path / "output2"},
|
||||
PathPair{input_path / "subdir" / "subdir", input_path / "output3"}}) {
|
||||
const std::string output_path = "--output-dir=" + Case.second.string();
|
||||
const std::string input_file_path = (Case.first / "INPUT.DATA");
|
||||
|
||||
const std::string output_dbg_path = (Case.second / "INPUT.DBG");
|
||||
if (createFaultyFileWithDirectory) {
|
||||
std::filesystem::create_directories(Case.second);
|
||||
// Create file with faulty content
|
||||
std::string dummy = R"(dummy)";
|
||||
std::ofstream of(output_dbg_path);
|
||||
of << dummy << std::endl;
|
||||
}
|
||||
|
||||
const char* no_param[] = {"test_outputdir", input_file_path.c_str(),
|
||||
output_path.c_str(), nullptr};
|
||||
|
||||
@@ -110,12 +121,20 @@ BOOST_FIXTURE_TEST_CASE(WithOutputDir, Fixture)
|
||||
Opm::Main main(3, const_cast<char**>(no_param), false);
|
||||
|
||||
BOOST_CHECK_EQUAL(main.justInitialize(), EXIT_SUCCESS);
|
||||
// Check if the files have been created at the right spot
|
||||
BOOST_CHECK(!std::filesystem::exists(input_path / "INPUT.PRT"));
|
||||
BOOST_CHECK(!std::filesystem::exists(input_path / "INPUT.DBG"));
|
||||
BOOST_CHECK(!std::filesystem::exists(Case.first / "INPUT.PRT"));
|
||||
BOOST_CHECK(!std::filesystem::exists(Case.first / "INPUT.DBG"));
|
||||
BOOST_CHECK(std::filesystem::exists(Case.second / "INPUT.PRT"));
|
||||
BOOST_CHECK(std::filesystem::exists(Case.second / "INPUT.DBG"));
|
||||
BOOST_CHECK(std::filesystem::exists(output_dbg_path));
|
||||
|
||||
// Check if the file with the faulty content has been removed and replaced by a valid one
|
||||
std::ifstream file(output_dbg_path);
|
||||
std::string line;
|
||||
std::getline(file, line);
|
||||
BOOST_CHECK(line.find("dummy") == std::string::npos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +145,13 @@ BOOST_FIXTURE_TEST_CASE(NoOutputDir, Fixture)
|
||||
for (const auto& Case : {input_path / "subdir" / "subdir",
|
||||
input_path / "subdir"}) {
|
||||
const std::string input_file_path = (Case / "INPUT.DATA");
|
||||
|
||||
const std::string output_dbg_path = (Case / "INPUT.DBG");
|
||||
// Create file with faulty content
|
||||
std::string dummy = R"(dummy)";
|
||||
std::ofstream of(output_dbg_path);
|
||||
of << dummy << std::endl;
|
||||
|
||||
const char* no_param[] = {"test_outputdir", input_file_path.c_str(), nullptr};
|
||||
|
||||
using ParamsMeta = Opm::GetProp<Opm::Properties::TTag::FlowEarlyBird,
|
||||
@@ -135,10 +161,17 @@ BOOST_FIXTURE_TEST_CASE(NoOutputDir, Fixture)
|
||||
Opm::Main main(2, const_cast<char**>(no_param), false);
|
||||
|
||||
BOOST_CHECK_EQUAL(main.justInitialize(), EXIT_SUCCESS);
|
||||
// Check if the files have been created at the right spot
|
||||
BOOST_CHECK(!std::filesystem::exists(input_path / "INPUT.PRT"));
|
||||
BOOST_CHECK(!std::filesystem::exists(input_path / "INPUT.DBG"));
|
||||
BOOST_CHECK(std::filesystem::exists(Case/ "INPUT.PRT"));
|
||||
BOOST_CHECK(std::filesystem::exists(Case/ "INPUT.DBG"));
|
||||
BOOST_CHECK(std::filesystem::exists(output_dbg_path));
|
||||
|
||||
// Check if the file with the faulty content has been removed and replaced by a valid one
|
||||
std::ifstream file(output_dbg_path);
|
||||
std::string line;
|
||||
std::getline(file, line);
|
||||
BOOST_CHECK(line.find("dummy") == std::string::npos);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user