mirror of
https://github.com/holub/mame
synced 2025-05-14 09:58:14 +03:00
134 lines
2.4 KiB
C++
134 lines
2.4 KiB
C++
#include "UnitTest++/UnitTestPP.h"
|
|
#include "UnitTest++/TestReporter.h"
|
|
#include "UnitTest++/TimeHelpers.h"
|
|
#include "ScopedCurrentTest.h"
|
|
|
|
using namespace UnitTest;
|
|
|
|
namespace {
|
|
|
|
TEST(PassingTestHasNoFailures)
|
|
{
|
|
class PassingTest : public Test
|
|
{
|
|
public:
|
|
PassingTest() : Test("passing") {}
|
|
virtual void RunImpl() const
|
|
{
|
|
CHECK(true);
|
|
}
|
|
};
|
|
|
|
TestResults results;
|
|
{
|
|
ScopedCurrentTest scopedResults(results);
|
|
PassingTest().Run();
|
|
}
|
|
|
|
CHECK_EQUAL(0, results.GetFailureCount());
|
|
}
|
|
|
|
|
|
TEST(FailingTestHasFailures)
|
|
{
|
|
class FailingTest : public Test
|
|
{
|
|
public:
|
|
FailingTest() : Test("failing") {}
|
|
virtual void RunImpl() const
|
|
{
|
|
CHECK(false);
|
|
}
|
|
};
|
|
|
|
TestResults results;
|
|
{
|
|
ScopedCurrentTest scopedResults(results);
|
|
FailingTest().Run();
|
|
}
|
|
|
|
CHECK_EQUAL(1, results.GetFailureCount());
|
|
}
|
|
|
|
#ifndef UNITTEST_NO_EXCEPTIONS
|
|
TEST(ThrowingTestsAreReportedAsFailures)
|
|
{
|
|
class CrashingTest : public Test
|
|
{
|
|
public:
|
|
CrashingTest() : Test("throwing") {}
|
|
virtual void RunImpl() const
|
|
{
|
|
throw "Blah";
|
|
}
|
|
};
|
|
|
|
TestResults results;
|
|
{
|
|
ScopedCurrentTest scopedResult(results);
|
|
CrashingTest().Run();
|
|
}
|
|
|
|
CHECK_EQUAL(1, results.GetFailureCount());
|
|
}
|
|
|
|
#if !defined(UNITTEST_MINGW) && !defined(UNITTEST_WIN32)
|
|
// Skip this test in debug because some debuggers don't like it.
|
|
#if defined(NDEBUG)
|
|
TEST(CrashingTestsAreReportedAsFailures)
|
|
{
|
|
class CrashingTest : public Test
|
|
{
|
|
public:
|
|
CrashingTest() : Test("crashing") {}
|
|
virtual void RunImpl() const
|
|
{
|
|
|
|
reinterpret_cast< void (*)() >(0)();
|
|
}
|
|
};
|
|
|
|
TestResults results;
|
|
{
|
|
ScopedCurrentTest scopedResult(results);
|
|
CrashingTest().Run();
|
|
}
|
|
|
|
CHECK_EQUAL(1, results.GetFailureCount());
|
|
}
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
TEST(TestWithUnspecifiedSuiteGetsDefaultSuite)
|
|
{
|
|
Test test("test");
|
|
CHECK(test.m_details.suiteName != NULL);
|
|
CHECK_EQUAL("DefaultSuite", test.m_details.suiteName);
|
|
}
|
|
|
|
TEST(TestReflectsSpecifiedSuiteName)
|
|
{
|
|
Test test("test", "testSuite");
|
|
CHECK(test.m_details.suiteName != NULL);
|
|
CHECK_EQUAL("testSuite", test.m_details.suiteName);
|
|
}
|
|
|
|
void Fail()
|
|
{
|
|
CHECK(false);
|
|
}
|
|
|
|
TEST(OutOfCoreCHECKMacrosCanFailTests)
|
|
{
|
|
TestResults results;
|
|
{
|
|
ScopedCurrentTest scopedResult(results);
|
|
Fail();
|
|
}
|
|
|
|
CHECK_EQUAL(1, results.GetFailureCount());
|
|
}
|
|
|
|
}
|