/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2015,2016,2019, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
#include "testutils/refdata.h"
+namespace gmx
+{
+namespace test
+{
namespace
{
class InteractiveSession
{
public:
- explicit InteractiveSession(gmx::test::ReferenceDataMode mode) :
+ explicit InteractiveSession(ReferenceDataMode mode) :
data_(mode),
helper_(data_.rootChecker()),
nextInputLine_(0)
// The latter is the output string.
typedef std::pair<EventType, const char*> Event;
- gmx::test::TestReferenceData data_;
- gmx::test::InteractiveTestHelper helper_;
- std::vector<const char*> inputLines_;
- size_t nextInputLine_;
- std::vector<Event> events_;
+ TestReferenceData data_;
+ InteractiveTestHelper helper_;
+ std::vector<const char*> inputLines_;
+ size_t nextInputLine_;
+ std::vector<Event> events_;
};
TEST(InteractiveTestHelperTest, ChecksSimpleSession)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n");
session.addOutput("> ");
session.addInput("input");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n");
session.addOutput("> ");
session.addInput("input");
TEST(InteractiveTestHelperTest, ChecksSessionWithoutLastNewline)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n");
session.addOutput("> ");
session.addInput("input");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n");
session.addOutput("> ");
session.addInput("input");
TEST(InteractiveTestHelperTest, ChecksSessionWithMissingOutput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n> ");
session.addInput("input");
session.addInput("input2");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n> ");
session.addInput("input");
session.addInput("input2");
TEST(InteractiveTestHelperTest, ChecksSessionWithEquivalentOutput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n");
session.addOutput("> ");
session.addInput("input");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Second line\n");
TEST(InteractiveTestHelperTest, DetectsIncorrectOutput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Second line\n> ");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Incorrect line\n> ");
TEST(InteractiveTestHelperTest, DetectsMissingOutput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Second line\n> ");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n> ");
session.addInput("input");
session.addInput("input2");
TEST(InteractiveTestHelperTest, DetectsMissingFinalOutput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Second line\n> ");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Second line\n> ");
TEST(InteractiveTestHelperTest, DetectsExtraOutput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addOutput("First line\n> ");
session.addInput("input");
session.addInput("input2");
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addOutput("First line\n> ");
session.addInput("input");
session.addOutput("Extra output\n> ");
TEST(InteractiveTestHelperTest, DetectsMissingInput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addInput("input");
session.addInput("input2");
session.addReadInput();
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addInputLine("input");
session.addInputLine("input2");
session.addReadInput();
TEST(InteractiveTestHelperTest, DetectsExtraInput)
{
{
- InteractiveSession session(gmx::test::erefdataUpdateAll);
+ InteractiveSession session(ReferenceDataMode::UpdateAll);
session.addInput("input");
session.addInput("input2");
session.addReadInput();
session.run();
}
{
- InteractiveSession session(gmx::test::erefdataCompare);
+ InteractiveSession session(ReferenceDataMode::Compare);
session.addInputLine("input");
session.addInputLine("input2");
session.addReadInput();
}
} // namespace
+} // namespace test
+} // namespace gmx