mirror of
https://github.com/unittest-cpp/unittest-cpp
synced 2026-09-27 00:28:49 +03:00
Merge branch 'novawave-master'
This commit is contained in:
commit
7459844be1
1 changed files with 287 additions and 300 deletions
|
|
@ -10,319 +10,306 @@ using namespace UnitTest;
|
|||
|
||||
namespace
|
||||
{
|
||||
|
||||
struct TestRunnerFixture
|
||||
{
|
||||
TestRunnerFixture()
|
||||
: runner(reporter)
|
||||
{
|
||||
s_testRunnerFixtureTestResults = runner.GetTestResults();
|
||||
}
|
||||
|
||||
static TestResults* s_testRunnerFixtureTestResults;
|
||||
|
||||
RecordingReporter reporter;
|
||||
TestList list;
|
||||
TestRunner runner;
|
||||
};
|
||||
|
||||
TestResults* TestRunnerFixture::s_testRunnerFixtureTestResults = NULL;
|
||||
|
||||
struct MockTest : public Test
|
||||
{
|
||||
MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1)
|
||||
|
||||
struct MockTest : public Test
|
||||
{
|
||||
MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1)
|
||||
: Test(testName)
|
||||
, success(success_)
|
||||
, asserted(assert_)
|
||||
, count(count_)
|
||||
{
|
||||
m_isMockTest = true;
|
||||
}
|
||||
|
||||
virtual void RunImpl() const
|
||||
{
|
||||
TestResults* testResults = TestRunnerFixture::s_testRunnerFixtureTestResults;
|
||||
|
||||
for (int i=0; i < count; ++i)
|
||||
{
|
||||
if (asserted)
|
||||
Detail::ReportAssertEx(testResults, &m_details, "desc", "file", 0);
|
||||
else if (!success)
|
||||
testResults->OnTestFailure(m_details, "message");
|
||||
}
|
||||
}
|
||||
|
||||
bool const success;
|
||||
bool const asserted;
|
||||
int const count;
|
||||
};
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly)
|
||||
{
|
||||
MockTest test("goodtest", true, false);
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.testRunCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastStartedTest);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestFinishIsReportedCorrectly)
|
||||
{
|
||||
MockTest test("goodtest", true, false);
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.testFinishedCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastFinishedTest);
|
||||
}
|
||||
|
||||
class SlowTest : public Test
|
||||
{
|
||||
public:
|
||||
SlowTest() : Test("slow", "somesuite", "filename", 123) {}
|
||||
virtual void RunImpl() const
|
||||
|
||||
virtual void RunImpl() const
|
||||
{
|
||||
TestResults& testResults_ = *CurrentTest::Results();
|
||||
for (int i=0; i < count; ++i)
|
||||
{
|
||||
if (asserted)
|
||||
ReportAssert("desc", "file", 0);
|
||||
else if (!success)
|
||||
testResults_.OnTestFailure(m_details, "message");
|
||||
}
|
||||
}
|
||||
|
||||
bool const success;
|
||||
bool const asserted;
|
||||
int const count;
|
||||
};
|
||||
|
||||
struct FixtureBase {
|
||||
explicit FixtureBase() : runner(reporter) { }
|
||||
template <class Predicate>
|
||||
int RunTestsIf(TestList const& list, char const* suiteName,
|
||||
const Predicate& predicate, int maxTestTimeInMs)
|
||||
{
|
||||
TestResults* oldResults = CurrentTest::Results();
|
||||
const TestDetails* oldDetails = CurrentTest::Details();
|
||||
int result = runner.RunTestsIf(list, suiteName, predicate, maxTestTimeInMs);
|
||||
CurrentTest::Results() = oldResults;
|
||||
CurrentTest::Details() = oldDetails;
|
||||
return result;
|
||||
}
|
||||
TestRunner runner;
|
||||
RecordingReporter reporter;
|
||||
};
|
||||
|
||||
struct TestRunnerFixture : public FixtureBase
|
||||
{
|
||||
TimeHelpers::SleepMs(20);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestFinishIsCalledWithCorrectTime)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK(reporter.lastFinishedTestTime >= 0.005f && reporter.lastFinishedTestTime <= 0.050f);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, FailureCountIsZeroWhenNoTestsAreRun)
|
||||
{
|
||||
CHECK_EQUAL(0, runner.RunTestsIf(list, NULL, True(), 0));
|
||||
CHECK_EQUAL(0, reporter.testRunCount);
|
||||
CHECK_EQUAL(0, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest)
|
||||
{
|
||||
MockTest test1("test", false, false);
|
||||
list.Add(&test1);
|
||||
MockTest test2("test", true, false);
|
||||
list.Add(&test2);
|
||||
MockTest test3("test", false, false);
|
||||
list.Add(&test3);
|
||||
|
||||
CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0));
|
||||
CHECK_EQUAL(2, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing)
|
||||
{
|
||||
MockTest test("test", true, true);
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, AssertingTestAbortsAsSoonAsAssertIsHit)
|
||||
{
|
||||
MockTest test("test", false, true, 3);
|
||||
list.Add(&test);
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.summaryFailureCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount)
|
||||
{
|
||||
MockTest test1("test", true, false);
|
||||
MockTest test2("test", true, false);
|
||||
MockTest test3("test", true, false);
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
list.Add(&test3);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(3, reporter.summaryTotalTestCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailedTests)
|
||||
{
|
||||
MockTest test1("test", false, false, 2);
|
||||
MockTest test2("test", true, false);
|
||||
MockTest test3("test", false, false, 3);
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
list.Add(&test3);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(2, reporter.summaryFailedTestCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailures)
|
||||
{
|
||||
MockTest test1("test", false, false, 2);
|
||||
MockTest test2("test", true, false);
|
||||
MockTest test3("test", false, false, 3);
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
list.Add(&test3);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(5, reporter.summaryFailureCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestPassesForHighTimeThreshold)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(0, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestFailsForLowTimeThreshold)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 3);
|
||||
CHECK_EQUAL(1, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
runner.RunTestsIf(list, NULL, True(), 3);
|
||||
|
||||
using namespace std;
|
||||
|
||||
CHECK_EQUAL(test.m_details.testName, reporter.lastFailedTest);
|
||||
CHECK(strstr(test.m_details.filename, reporter.lastFailedFile));
|
||||
CHECK_EQUAL(test.m_details.lineNumber, reporter.lastFailedLine);
|
||||
|
||||
CHECK(strstr(reporter.lastFailedMessage, "Global time constraint failed"));
|
||||
CHECK(strstr(reporter.lastFailedMessage, "3ms"));
|
||||
}
|
||||
|
||||
|
||||
namespace SlowTestHelper
|
||||
{
|
||||
TestRunnerFixture testRunnerFixture;
|
||||
|
||||
TEST_EX(SlowExemptedTest, testRunnerFixture.list)
|
||||
TestList list;
|
||||
};
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly)
|
||||
{
|
||||
UNITTEST_TIME_CONSTRAINT_EXEMPT();
|
||||
TimeHelpers::SleepMs(20);
|
||||
MockTest test("goodtest", true, false);
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.testRunCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastStartedTest);
|
||||
}
|
||||
|
||||
class Fixture {};
|
||||
|
||||
TEST_FIXTURE_EX(Fixture, SlowExemptedTest, testRunnerFixture.list)
|
||||
TEST_FIXTURE(TestRunnerFixture, TestFinishIsReportedCorrectly)
|
||||
{
|
||||
UNITTEST_TIME_CONSTRAINT_EXEMPT();
|
||||
TimeHelpers::SleepMs(20);
|
||||
MockTest test("goodtest", true, false);
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.testFinishedCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastFinishedTest);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(SlowTestsWithTimeExemptionPass)
|
||||
{
|
||||
SlowTestHelper::testRunnerFixture.runner.RunTestsIf(SlowTestHelper::testRunnerFixture.list, NULL, True(), 3);
|
||||
CHECK_EQUAL(0, SlowTestHelper::testRunnerFixture.reporter.testFailedCount);
|
||||
}
|
||||
|
||||
struct TestSuiteFixture
|
||||
{
|
||||
TestSuiteFixture()
|
||||
|
||||
class SlowTest : public Test
|
||||
{
|
||||
public:
|
||||
SlowTest() : Test("slow", "somesuite", "filename", 123) {}
|
||||
virtual void RunImpl() const
|
||||
{
|
||||
TimeHelpers::SleepMs(20);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestFinishIsCalledWithCorrectTime)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK(reporter.lastFinishedTestTime >= 0.005f && reporter.lastFinishedTestTime <= 0.050f);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, FailureCountIsZeroWhenNoTestsAreRun)
|
||||
{
|
||||
CHECK_EQUAL(0, RunTestsIf(list, NULL, True(), 0));
|
||||
CHECK_EQUAL(0, reporter.testRunCount);
|
||||
CHECK_EQUAL(0, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest)
|
||||
{
|
||||
MockTest test1("test", false, false);
|
||||
list.Add(&test1);
|
||||
MockTest test2("test", true, false);
|
||||
list.Add(&test2);
|
||||
MockTest test3("test", false, false);
|
||||
list.Add(&test3);
|
||||
|
||||
CHECK_EQUAL(2, RunTestsIf(list, NULL, True(), 0));
|
||||
CHECK_EQUAL(2, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing)
|
||||
{
|
||||
MockTest test("test", true, true);
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(1, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount)
|
||||
{
|
||||
MockTest test1("test", true, false);
|
||||
MockTest test2("test", true, false);
|
||||
MockTest test3("test", true, false);
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
list.Add(&test3);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(3, reporter.summaryTotalTestCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailedTests)
|
||||
{
|
||||
MockTest test1("test", false, false, 2);
|
||||
MockTest test2("test", true, false);
|
||||
MockTest test3("test", false, false, 3);
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
list.Add(&test3);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(2, reporter.summaryFailedTestCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailures)
|
||||
{
|
||||
MockTest test1("test", false, false, 2);
|
||||
MockTest test2("test", true, false);
|
||||
MockTest test3("test", false, false, 3);
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
list.Add(&test3);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(5, reporter.summaryFailureCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestPassesForHighTimeThreshold)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(0, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestFailsForLowTimeThreshold)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 3);
|
||||
CHECK_EQUAL(1, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation)
|
||||
{
|
||||
SlowTest test;
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 3);
|
||||
|
||||
using namespace std;
|
||||
|
||||
CHECK_EQUAL(test.m_details.testName, reporter.lastFailedTest);
|
||||
CHECK(strstr(test.m_details.filename, reporter.lastFailedFile));
|
||||
CHECK_EQUAL(test.m_details.lineNumber, reporter.lastFailedLine);
|
||||
|
||||
CHECK(strstr(reporter.lastFailedMessage, "Global time constraint failed"));
|
||||
CHECK(strstr(reporter.lastFailedMessage, "3ms"));
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses)
|
||||
{
|
||||
class SlowExemptedTest : public Test
|
||||
{
|
||||
public:
|
||||
SlowExemptedTest() : Test("slowexempted", "", 0) {}
|
||||
virtual void RunImpl() const
|
||||
{
|
||||
UNITTEST_TIME_CONSTRAINT_EXEMPT();
|
||||
TimeHelpers::SleepMs(20);
|
||||
}
|
||||
};
|
||||
|
||||
SlowExemptedTest test;
|
||||
list.Add(&test);
|
||||
|
||||
RunTestsIf(list, NULL, True(), 3);
|
||||
CHECK_EQUAL(0, reporter.testFailedCount);
|
||||
}
|
||||
|
||||
struct TestSuiteFixture : FixtureBase
|
||||
{
|
||||
TestSuiteFixture()
|
||||
: test1("TestInDefaultSuite")
|
||||
, test2("TestInOtherSuite", "OtherSuite")
|
||||
, test3("SecondTestInDefaultSuite")
|
||||
, runner(reporter)
|
||||
{
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
}
|
||||
|
||||
Test test1;
|
||||
Test test2;
|
||||
Test test3;
|
||||
RecordingReporter reporter;
|
||||
TestList list;
|
||||
TestRunner runner;
|
||||
};
|
||||
|
||||
TEST_FIXTURE(TestSuiteFixture, TestRunnerRunsAllSuitesIfNullSuiteIsPassed)
|
||||
{
|
||||
runner.RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(2, reporter.summaryTotalTestCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestSuiteFixture,TestRunnerRunsOnlySpecifiedSuite)
|
||||
{
|
||||
runner.RunTestsIf(list, "OtherSuite", True(), 0);
|
||||
CHECK_EQUAL(1, reporter.summaryTotalTestCount);
|
||||
CHECK_EQUAL("TestInOtherSuite", reporter.lastFinishedTest);
|
||||
}
|
||||
|
||||
struct RunTestIfNameIs
|
||||
{
|
||||
RunTestIfNameIs(char const* name_)
|
||||
: name(name_)
|
||||
{
|
||||
}
|
||||
|
||||
bool operator()(const Test* const test) const
|
||||
{
|
||||
using namespace std;
|
||||
return (0 == strcmp(test->m_details.testName, name));
|
||||
}
|
||||
|
||||
char const* name;
|
||||
};
|
||||
|
||||
TEST(TestMockPredicateBehavesCorrectly)
|
||||
{
|
||||
RunTestIfNameIs predicate("pass");
|
||||
|
||||
Test pass("pass");
|
||||
Test fail("fail");
|
||||
|
||||
CHECK(predicate(&pass));
|
||||
CHECK(!predicate(&fail));
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestRunnerRunsTestsThatPassPredicate)
|
||||
{
|
||||
Test should_run("goodtest");
|
||||
list.Add(&should_run);
|
||||
|
||||
Test should_not_run("badtest");
|
||||
list.Add(&should_not_run);
|
||||
|
||||
runner.RunTestsIf(list, NULL, RunTestIfNameIs("goodtest"), 0);
|
||||
CHECK_EQUAL(1, reporter.testRunCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastStartedTest);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestRunnerOnlyRunsTestsInSpecifiedSuiteAndThatPassPredicate)
|
||||
{
|
||||
Test runningTest1("goodtest", "suite");
|
||||
Test skippedTest2("goodtest");
|
||||
Test skippedTest3("badtest", "suite");
|
||||
Test skippedTest4("badtest");
|
||||
{
|
||||
list.Add(&test1);
|
||||
list.Add(&test2);
|
||||
}
|
||||
|
||||
Test test1;
|
||||
Test test2;
|
||||
Test test3;
|
||||
TestList list;
|
||||
};
|
||||
|
||||
list.Add(&runningTest1);
|
||||
list.Add(&skippedTest2);
|
||||
list.Add(&skippedTest3);
|
||||
list.Add(&skippedTest4);
|
||||
|
||||
runner.RunTestsIf(list, "suite", RunTestIfNameIs("goodtest"), 0);
|
||||
|
||||
CHECK_EQUAL(1, reporter.testRunCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastStartedTest);
|
||||
CHECK_EQUAL("suite", reporter.lastStartedSuite);
|
||||
}
|
||||
|
||||
}
|
||||
TEST_FIXTURE(TestSuiteFixture, TestRunnerRunsAllSuitesIfNullSuiteIsPassed)
|
||||
{
|
||||
RunTestsIf(list, NULL, True(), 0);
|
||||
CHECK_EQUAL(2, reporter.summaryTotalTestCount);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestSuiteFixture,TestRunnerRunsOnlySpecifiedSuite)
|
||||
{
|
||||
RunTestsIf(list, "OtherSuite", True(), 0);
|
||||
CHECK_EQUAL(1, reporter.summaryTotalTestCount);
|
||||
CHECK_EQUAL("TestInOtherSuite", reporter.lastFinishedTest);
|
||||
}
|
||||
|
||||
struct RunTestIfNameIs
|
||||
{
|
||||
RunTestIfNameIs(char const* name_)
|
||||
: name(name_)
|
||||
{
|
||||
}
|
||||
|
||||
bool operator()(const Test* const test) const
|
||||
{
|
||||
using namespace std;
|
||||
return (0 == strcmp(test->m_details.testName, name));
|
||||
}
|
||||
|
||||
char const* name;
|
||||
};
|
||||
|
||||
TEST(TestMockPredicateBehavesCorrectly)
|
||||
{
|
||||
RunTestIfNameIs predicate("pass");
|
||||
|
||||
Test pass("pass");
|
||||
Test fail("fail");
|
||||
|
||||
CHECK(predicate(&pass));
|
||||
CHECK(!predicate(&fail));
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestRunnerRunsTestsThatPassPredicate)
|
||||
{
|
||||
Test should_run("goodtest");
|
||||
list.Add(&should_run);
|
||||
|
||||
Test should_not_run("badtest");
|
||||
list.Add(&should_not_run);
|
||||
|
||||
RunTestsIf(list, NULL, RunTestIfNameIs("goodtest"), 0);
|
||||
CHECK_EQUAL(1, reporter.testRunCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastStartedTest);
|
||||
}
|
||||
|
||||
TEST_FIXTURE(TestRunnerFixture, TestRunnerOnlyRunsTestsInSpecifiedSuiteAndThatPassPredicate)
|
||||
{
|
||||
Test runningTest1("goodtest", "suite");
|
||||
Test skippedTest2("goodtest");
|
||||
Test skippedTest3("badtest", "suite");
|
||||
Test skippedTest4("badtest");
|
||||
|
||||
list.Add(&runningTest1);
|
||||
list.Add(&skippedTest2);
|
||||
list.Add(&skippedTest3);
|
||||
list.Add(&skippedTest4);
|
||||
|
||||
RunTestsIf(list, "suite", RunTestIfNameIs("goodtest"), 0);
|
||||
|
||||
CHECK_EQUAL(1, reporter.testRunCount);
|
||||
CHECK_EQUAL("goodtest", reporter.lastStartedTest);
|
||||
CHECK_EQUAL("suite", reporter.lastStartedSuite);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue