class GetIrTest : public ::testing::Test
{
- public:
- GetIrTest() : opts_(),
- wi_(init_warning(FALSE, 0)), wiGuard_(wi_)
-
- {
- snew(opts_.include, STRLEN);
- snew(opts_.define, STRLEN);
- }
- ~GetIrTest() override
- {
- done_inputrec_strings();
- sfree(opts_.include);
- sfree(opts_.define);
- }
- /*! \brief Test mdp reading and writing
- *
- * \todo Modernize read_inp and write_inp to use streams,
- * which will make these tests run faster, because they don't
- * use disk files. */
- void runTest(const std::string &inputMdpFileContents)
- {
- auto inputMdpFilename = fileManager_.getTemporaryFilePath("input.mdp");
- auto outputMdpFilename = fileManager_.getTemporaryFilePath("output.mdp");
-
- TextWriter::writeFileFromString(inputMdpFilename, inputMdpFileContents);
-
- get_ir(inputMdpFilename.c_str(), outputMdpFilename.c_str(),
- &mdModules_, &ir_, &opts_, WriteMdpHeader::no, wi_);
-
- check_ir(inputMdpFilename.c_str(), mdModules_.notifier(), &ir_, &opts_, wi_);
- // Now check
- bool failure = warning_errors_exist(wi_);
- TestReferenceData data;
- TestReferenceChecker checker(data.rootChecker());
- checker.checkBoolean(failure, "Error parsing mdp file");
- warning_reset(wi_);
-
- auto outputMdpContents = TextReader::readFileToString(outputMdpFilename);
- checker.checkString(outputMdpContents, "OutputMdpFile");
- }
-
- TestFileManager fileManager_;
- t_inputrec ir_;
- MDModules mdModules_;
- t_gromppopts opts_;
- warninp_t wi_;
- unique_cptr<warninp, free_warning> wiGuard_;
+public:
+ GetIrTest() : opts_(), wi_(init_warning(FALSE, 0)), wiGuard_(wi_)
+
+ {
+ snew(opts_.include, STRLEN);
+ snew(opts_.define, STRLEN);
+ }
+ ~GetIrTest() override
+ {
+ done_inputrec_strings();
+ sfree(opts_.include);
+ sfree(opts_.define);
+ }
+ /*! \brief Test mdp reading and writing
+ *
+ * \todo Modernize read_inp and write_inp to use streams,
+ * which will make these tests run faster, because they don't
+ * use disk files. */
+ void runTest(const std::string& inputMdpFileContents)
+ {
+ auto inputMdpFilename = fileManager_.getTemporaryFilePath("input.mdp");
+ auto outputMdpFilename = fileManager_.getTemporaryFilePath("output.mdp");
+
+ TextWriter::writeFileFromString(inputMdpFilename, inputMdpFileContents);
+
+ get_ir(inputMdpFilename.c_str(), outputMdpFilename.c_str(), &mdModules_, &ir_, &opts_,
+ WriteMdpHeader::no, wi_);
+
+ check_ir(inputMdpFilename.c_str(), mdModules_.notifier(), &ir_, &opts_, wi_);
+ // Now check
+ bool failure = warning_errors_exist(wi_);
+ TestReferenceData data;
+ TestReferenceChecker checker(data.rootChecker());
+ checker.checkBoolean(failure, "Error parsing mdp file");
+ warning_reset(wi_);
+
+ auto outputMdpContents = TextReader::readFileToString(outputMdpFilename);
+ checker.checkString(outputMdpContents, "OutputMdpFile");
+ }
+
+ TestFileManager fileManager_;
+ t_inputrec ir_;
+ MDModules mdModules_;
+ t_gromppopts opts_;
+ warninp_t wi_;
+ unique_cptr<warninp, free_warning> wiGuard_;
};
TEST_F(GetIrTest, HandlesDifferentKindsOfMdpLines)
{
- const char *inputMdpFile[] = {
- "; File to run my simulation",
- "title = simulation",
- "define = -DBOOLVAR -DVAR=VALUE",
- ";",
- "xtc_grps = System ; was Protein",
- "include = -I/home/me/stuff",
- "",
- "tau-t = 0.1 0.3",
- "ref-t = ;290 290",
- "tinit = 0.3",
- "init_step = 0",
- "nstcomm = 100",
- "integrator = steep"
- };
+ const char* inputMdpFile[] = { "; File to run my simulation",
+ "title = simulation",
+ "define = -DBOOLVAR -DVAR=VALUE",
+ ";",
+ "xtc_grps = System ; was Protein",
+ "include = -I/home/me/stuff",
+ "",
+ "tau-t = 0.1 0.3",
+ "ref-t = ;290 290",
+ "tinit = 0.3",
+ "init_step = 0",
+ "nstcomm = 100",
+ "integrator = steep" };
runTest(joinStrings(inputMdpFile, "\n"));
}
TEST_F(GetIrTest, RejectsNonCommentLineWithNoEquals)
{
- const char *inputMdpFile = "title simulation";
+ const char* inputMdpFile = "title simulation";
EXPECT_DEATH_IF_SUPPORTED(runTest(inputMdpFile), "No '=' to separate");
}
TEST_F(GetIrTest, AcceptsKeyWithoutValue)
{
// Users are probably using lines like this
- const char *inputMdpFile = "xtc_grps = ";
+ const char* inputMdpFile = "xtc_grps = ";
runTest(inputMdpFile);
}
TEST_F(GetIrTest, RejectsValueWithoutKey)
{
- const char *inputMdpFile = "= -I/home/me/stuff";
+ const char* inputMdpFile = "= -I/home/me/stuff";
EXPECT_DEATH_IF_SUPPORTED(runTest(inputMdpFile), "No .mdp parameter name was found");
}
TEST_F(GetIrTest, RejectsEmptyKeyAndEmptyValue)
{
- const char *inputMdpFile = " = ";
+ const char* inputMdpFile = " = ";
EXPECT_DEATH_IF_SUPPORTED(runTest(inputMdpFile), "No .mdp parameter name or value was found");
}
TEST_F(GetIrTest, AcceptsDefineParametersWithValuesIncludingAssignment)
{
- const char *inputMdpFile[] = {
+ const char* inputMdpFile[] = {
"define = -DBOOL -DVAR=VALUE",
};
runTest(joinStrings(inputMdpFile, "\n"));
TEST_F(GetIrTest, AcceptsEmptyLines)
{
- const char *inputMdpFile = "";
+ const char* inputMdpFile = "";
runTest(inputMdpFile);
}
// are currently the only ones using the new Options-style handling.
TEST_F(GetIrTest, AcceptsElectricField)
{
- const char *inputMdpFile = "electric-field-x = 1.2 0 0 0";
+ const char* inputMdpFile = "electric-field-x = 1.2 0 0 0";
runTest(inputMdpFile);
}
TEST_F(GetIrTest, AcceptsElectricFieldPulsed)
{
- const char *inputMdpFile = "electric-field-y = 3.7 2.0 6.5 1.0";
+ const char* inputMdpFile = "electric-field-y = 3.7 2.0 6.5 1.0";
runTest(inputMdpFile);
}
TEST_F(GetIrTest, AcceptsElectricFieldOscillating)
{
- const char *inputMdpFile = "electric-field-z = 3.7 7.5 0 0";
+ const char* inputMdpFile = "electric-field-z = 3.7 7.5 0 0";
runTest(inputMdpFile);
}
TEST_F(GetIrTest, RejectsDuplicateOldAndNewKeys)
{
- const char *inputMdpFile[] = {"verlet-buffer-drift = 1.3", "verlet-buffer-tolerance = 2.7"};
- EXPECT_DEATH_IF_SUPPORTED(runTest(joinStrings(inputMdpFile, "\n")), "A parameter is present with both");
+ const char* inputMdpFile[] = { "verlet-buffer-drift = 1.3", "verlet-buffer-tolerance = 2.7" };
+ EXPECT_DEATH_IF_SUPPORTED(runTest(joinStrings(inputMdpFile, "\n")),
+ "A parameter is present with both");
}
TEST_F(GetIrTest, AcceptsImplicitSolventNo)
{
- const char *inputMdpFile = "implicit-solvent = no";
+ const char* inputMdpFile = "implicit-solvent = no";
runTest(inputMdpFile);
}
TEST_F(GetIrTest, RejectsImplicitSolventYes)
{
- const char *inputMdpFile = "implicit-solvent = yes";
+ const char* inputMdpFile = "implicit-solvent = yes";
EXPECT_DEATH_IF_SUPPORTED(runTest(inputMdpFile), "Invalid enum");
}
TEST_F(GetIrTest, AcceptsMimic)
{
- const char *inputMdpFile[] = {"integrator = mimic", "QMMM-grps = QMatoms"};
+ const char* inputMdpFile[] = { "integrator = mimic", "QMMM-grps = QMatoms" };
runTest(joinStrings(inputMdpFile, "\n"));
}
-} // namespace test
-} // namespace gmx
+} // namespace test
+} // namespace gmx