fork

Fork of cpputest by Rohit Grover

Committer:
Kojto
Date:
Wed May 13 13:20:35 2015 +0000
Revision:
3:9e8c8907d9ee
Parent:
0:0b799af9d58e
Rename console to mbed_cpputest_console (as in mbed testrunner)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 0:0b799af9d58e 1 /*
rgrover1 0:0b799af9d58e 2 * Copyright (c) 2007, Michael Feathers, James Grenning and Bas Vodde
rgrover1 0:0b799af9d58e 3 * All rights reserved.
rgrover1 0:0b799af9d58e 4 *
rgrover1 0:0b799af9d58e 5 * Redistribution and use in source and binary forms, with or without
rgrover1 0:0b799af9d58e 6 * modification, are permitted provided that the following conditions are met:
rgrover1 0:0b799af9d58e 7 * * Redistributions of source code must retain the above copyright
rgrover1 0:0b799af9d58e 8 * notice, this list of conditions and the following disclaimer.
rgrover1 0:0b799af9d58e 9 * * Redistributions in binary form must reproduce the above copyright
rgrover1 0:0b799af9d58e 10 * notice, this list of conditions and the following disclaimer in the
rgrover1 0:0b799af9d58e 11 * documentation and/or other materials provided with the distribution.
rgrover1 0:0b799af9d58e 12 * * Neither the name of the <organization> nor the
rgrover1 0:0b799af9d58e 13 * names of its contributors may be used to endorse or promote products
rgrover1 0:0b799af9d58e 14 * derived from this software without specific prior written permission.
rgrover1 0:0b799af9d58e 15 *
rgrover1 0:0b799af9d58e 16 * THIS SOFTWARE IS PROVIDED BY THE EARLIER MENTIONED AUTHORS ``AS IS'' AND ANY
rgrover1 0:0b799af9d58e 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
rgrover1 0:0b799af9d58e 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rgrover1 0:0b799af9d58e 19 * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
rgrover1 0:0b799af9d58e 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
rgrover1 0:0b799af9d58e 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
rgrover1 0:0b799af9d58e 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
rgrover1 0:0b799af9d58e 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
rgrover1 0:0b799af9d58e 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
rgrover1 0:0b799af9d58e 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rgrover1 0:0b799af9d58e 26 */
rgrover1 0:0b799af9d58e 27
rgrover1 0:0b799af9d58e 28 #ifndef D_TestTestingFixture_H
rgrover1 0:0b799af9d58e 29 #define D_TestTestingFixture_H
rgrover1 0:0b799af9d58e 30
rgrover1 0:0b799af9d58e 31 #include "TestRegistry.h"
rgrover1 0:0b799af9d58e 32 #include "TestOutput.h"
rgrover1 0:0b799af9d58e 33
rgrover1 0:0b799af9d58e 34 class TestTestingFixture
rgrover1 0:0b799af9d58e 35 {
rgrover1 0:0b799af9d58e 36 public:
rgrover1 0:0b799af9d58e 37
rgrover1 0:0b799af9d58e 38 TestTestingFixture()
rgrover1 0:0b799af9d58e 39 {
rgrover1 0:0b799af9d58e 40 output_ = new StringBufferTestOutput();
rgrover1 0:0b799af9d58e 41 result_ = new TestResult(*output_);
rgrover1 0:0b799af9d58e 42 genTest_ = new ExecFunctionTestShell();
rgrover1 0:0b799af9d58e 43 registry_ = new TestRegistry();
rgrover1 0:0b799af9d58e 44
rgrover1 0:0b799af9d58e 45 registry_->setCurrentRegistry(registry_);
rgrover1 0:0b799af9d58e 46 registry_->addTest(genTest_);
rgrover1 0:0b799af9d58e 47 }
rgrover1 0:0b799af9d58e 48
rgrover1 0:0b799af9d58e 49 virtual ~TestTestingFixture()
rgrover1 0:0b799af9d58e 50 {
rgrover1 0:0b799af9d58e 51 registry_->setCurrentRegistry(0);
rgrover1 0:0b799af9d58e 52 delete registry_;
rgrover1 0:0b799af9d58e 53 delete result_;
rgrover1 0:0b799af9d58e 54 delete output_;
rgrover1 0:0b799af9d58e 55 delete genTest_;
rgrover1 0:0b799af9d58e 56 }
rgrover1 0:0b799af9d58e 57
rgrover1 0:0b799af9d58e 58 void addTest(UtestShell * test)
rgrover1 0:0b799af9d58e 59 {
rgrover1 0:0b799af9d58e 60 registry_->addTest(test);
rgrover1 0:0b799af9d58e 61 }
rgrover1 0:0b799af9d58e 62
rgrover1 0:0b799af9d58e 63 void setTestFunction(void(*testFunction)())
rgrover1 0:0b799af9d58e 64 {
rgrover1 0:0b799af9d58e 65 genTest_->testFunction_ = testFunction;
rgrover1 0:0b799af9d58e 66 }
rgrover1 0:0b799af9d58e 67
rgrover1 0:0b799af9d58e 68 void setSetup(void(*setupFunction)())
rgrover1 0:0b799af9d58e 69 {
rgrover1 0:0b799af9d58e 70 genTest_->setup_ = setupFunction;
rgrover1 0:0b799af9d58e 71 }
rgrover1 0:0b799af9d58e 72
rgrover1 0:0b799af9d58e 73 void setTeardown(void(*teardownFunction)())
rgrover1 0:0b799af9d58e 74 {
rgrover1 0:0b799af9d58e 75 genTest_->teardown_ = teardownFunction;
rgrover1 0:0b799af9d58e 76 }
rgrover1 0:0b799af9d58e 77
rgrover1 0:0b799af9d58e 78 void runAllTests()
rgrover1 0:0b799af9d58e 79 {
rgrover1 0:0b799af9d58e 80 registry_->runAllTests(*result_);
rgrover1 0:0b799af9d58e 81 }
rgrover1 0:0b799af9d58e 82
rgrover1 0:0b799af9d58e 83 int getFailureCount()
rgrover1 0:0b799af9d58e 84 {
rgrover1 0:0b799af9d58e 85 return result_->getFailureCount();
rgrover1 0:0b799af9d58e 86 }
rgrover1 0:0b799af9d58e 87
rgrover1 0:0b799af9d58e 88 int getCheckCount()
rgrover1 0:0b799af9d58e 89 {
rgrover1 0:0b799af9d58e 90 return result_->getCheckCount();
rgrover1 0:0b799af9d58e 91 }
rgrover1 0:0b799af9d58e 92
rgrover1 0:0b799af9d58e 93 int getIgnoreCount()
rgrover1 0:0b799af9d58e 94 {
rgrover1 0:0b799af9d58e 95 return result_->getIgnoredCount();
rgrover1 0:0b799af9d58e 96 }
rgrover1 0:0b799af9d58e 97
rgrover1 0:0b799af9d58e 98 bool hasTestFailed()
rgrover1 0:0b799af9d58e 99 {
rgrover1 0:0b799af9d58e 100 return genTest_->hasFailed();
rgrover1 0:0b799af9d58e 101 }
rgrover1 0:0b799af9d58e 102
rgrover1 0:0b799af9d58e 103
rgrover1 0:0b799af9d58e 104 void assertPrintContains(const SimpleString& contains)
rgrover1 0:0b799af9d58e 105 {
rgrover1 0:0b799af9d58e 106 assertPrintContains(output_, contains);
rgrover1 0:0b799af9d58e 107 }
rgrover1 0:0b799af9d58e 108
rgrover1 0:0b799af9d58e 109 static void assertPrintContains(StringBufferTestOutput* output,
rgrover1 0:0b799af9d58e 110 const SimpleString& contains)
rgrover1 0:0b799af9d58e 111 {
rgrover1 0:0b799af9d58e 112 STRCMP_CONTAINS(contains.asCharString(), output->getOutput().asCharString());
rgrover1 0:0b799af9d58e 113
rgrover1 0:0b799af9d58e 114 }
rgrover1 0:0b799af9d58e 115
rgrover1 0:0b799af9d58e 116 TestRegistry* registry_;
rgrover1 0:0b799af9d58e 117 ExecFunctionTestShell* genTest_;
rgrover1 0:0b799af9d58e 118 StringBufferTestOutput* output_;
rgrover1 0:0b799af9d58e 119 TestResult * result_;
rgrover1 0:0b799af9d58e 120 };
rgrover1 0:0b799af9d58e 121
rgrover1 0:0b799af9d58e 122 class SetBooleanOnDestructorCall
rgrover1 0:0b799af9d58e 123 {
rgrover1 0:0b799af9d58e 124 bool& booleanToSet_;
rgrover1 0:0b799af9d58e 125 public:
rgrover1 0:0b799af9d58e 126 SetBooleanOnDestructorCall(bool& booleanToSet) : booleanToSet_(booleanToSet)
rgrover1 0:0b799af9d58e 127 {
rgrover1 0:0b799af9d58e 128 }
rgrover1 0:0b799af9d58e 129
rgrover1 0:0b799af9d58e 130 virtual ~SetBooleanOnDestructorCall()
rgrover1 0:0b799af9d58e 131 {
rgrover1 0:0b799af9d58e 132 booleanToSet_ = true;
rgrover1 0:0b799af9d58e 133 }
rgrover1 0:0b799af9d58e 134 };
rgrover1 0:0b799af9d58e 135
rgrover1 0:0b799af9d58e 136 #endif