| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #include "../UnitTest++.h"
- #include "../ReportAssert.h"
- #include "ScopedCurrentTest.h"
- #include <vector>
- // These are sample tests that show the different features of the framework
- namespace {
- TEST(ValidCheckSucceeds)
- {
- bool const b = true;
- CHECK(b);
- }
- TEST(CheckWorksWithPointers)
- {
- void* p = (void *)0x100;
- CHECK(p);
- CHECK(p != 0);
- }
- TEST(ValidCheckEqualSucceeds)
- {
- int const x = 3;
- int const y = 3;
- CHECK_EQUAL(x, y);
- }
- TEST(CheckEqualWorksWithPointers)
- {
- void* p = (void *)0;
- CHECK_EQUAL((void*)0, p);
- }
- TEST(ValidCheckCloseSucceeds)
- {
- CHECK_CLOSE(2.0f, 2.001f, 0.01f);
- CHECK_CLOSE(2.001f, 2.0f, 0.01f);
- }
- TEST(ArrayCloseSucceeds)
- {
- float const a1[] = {1, 2, 3};
- float const a2[] = {1, 2.01f, 3};
- CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f);
- }
- TEST (CheckArrayCloseWorksWithVectors)
- {
- std::vector< float > a(4);
- for (int i = 0; i < 4; ++i)
- a[i] = (float)i;
- CHECK_ARRAY_CLOSE(a, a, (int)a.size(), 0.0001f);
- }
- TEST(CheckThrowMacroSucceedsOnCorrectException)
- {
- struct TestException {};
- CHECK_THROW(throw TestException(), TestException);
- }
- TEST(CheckAssertSucceeds)
- {
- CHECK_ASSERT(UnitTest::ReportAssert("desc", "file", 0));
- }
- TEST(CheckThrowMacroFailsOnMissingException)
- {
- class NoThrowTest : public UnitTest::Test
- {
- public:
- NoThrowTest() : Test("nothrow") {}
- void DontThrow() const
- {
- }
- virtual void RunImpl() const
- {
- CHECK_THROW(DontThrow(), int);
- }
- };
- UnitTest::TestResults results;
- {
- ScopedCurrentTest scopedResults(results);
- NoThrowTest test;
- test.Run();
- }
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckThrowMacroFailsOnWrongException)
- {
- class WrongThrowTest : public UnitTest::Test
- {
- public:
- WrongThrowTest() : Test("wrongthrow") {}
- virtual void RunImpl() const
- {
- CHECK_THROW(throw "oops", int);
- }
- };
- UnitTest::TestResults results;
- {
- ScopedCurrentTest scopedResults(results);
- WrongThrowTest test;
- test.Run();
- }
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- struct SimpleFixture
- {
- SimpleFixture()
- {
- ++instanceCount;
- }
- ~SimpleFixture()
- {
- --instanceCount;
- }
- static int instanceCount;
- };
- int SimpleFixture::instanceCount = 0;
- TEST_FIXTURE(SimpleFixture, DefaultFixtureCtorIsCalled)
- {
- CHECK(SimpleFixture::instanceCount > 0);
- }
- TEST_FIXTURE(SimpleFixture, OnlyOneFixtureAliveAtATime)
- {
- CHECK_EQUAL(1, SimpleFixture::instanceCount);
- }
- void CheckBool(const bool b)
- {
- CHECK(b);
- }
- TEST(CanCallCHECKOutsideOfTestFunction)
- {
- CheckBool(true);
- }
- }
|