fork

Fork of cpputest by Rohit Grover

Committer:
rgrover1
Date:
Tue Jan 28 09:27:41 2014 +0000
Revision:
0:0b799af9d58e
Child:
1:4769360130ed
CppUTest unit test framework.

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_TestPlugin_h
rgrover1 0:0b799af9d58e 29 #define D_TestPlugin_h
rgrover1 0:0b799af9d58e 30
rgrover1 0:0b799af9d58e 31 class UtestShell;
rgrover1 0:0b799af9d58e 32 class TestResult;
rgrover1 0:0b799af9d58e 33
rgrover1 0:0b799af9d58e 34 class TestPlugin
rgrover1 0:0b799af9d58e 35 {
rgrover1 0:0b799af9d58e 36 public:
rgrover1 0:0b799af9d58e 37
rgrover1 0:0b799af9d58e 38 TestPlugin(const SimpleString& name);
rgrover1 0:0b799af9d58e 39 virtual ~TestPlugin();
rgrover1 0:0b799af9d58e 40
rgrover1 0:0b799af9d58e 41 virtual void preTestAction(UtestShell&, TestResult&)
rgrover1 0:0b799af9d58e 42 {
rgrover1 0:0b799af9d58e 43 }
rgrover1 0:0b799af9d58e 44
rgrover1 0:0b799af9d58e 45 virtual void postTestAction(UtestShell&, TestResult&)
rgrover1 0:0b799af9d58e 46 {
rgrover1 0:0b799af9d58e 47 }
rgrover1 0:0b799af9d58e 48
rgrover1 0:0b799af9d58e 49 virtual bool parseArguments(int /* ac */, const char** /* av */, int /* index */ )
rgrover1 0:0b799af9d58e 50 {
rgrover1 0:0b799af9d58e 51 return false;
rgrover1 0:0b799af9d58e 52 }
rgrover1 0:0b799af9d58e 53
rgrover1 0:0b799af9d58e 54 virtual void runAllPreTestAction(UtestShell&, TestResult&);
rgrover1 0:0b799af9d58e 55 virtual void runAllPostTestAction(UtestShell&, TestResult&);
rgrover1 0:0b799af9d58e 56 virtual bool parseAllArguments(int ac, const char** av, int index);
rgrover1 0:0b799af9d58e 57 virtual bool parseAllArguments(int ac, char** av, int index);
rgrover1 0:0b799af9d58e 58
rgrover1 0:0b799af9d58e 59 virtual TestPlugin* addPlugin(TestPlugin*);
rgrover1 0:0b799af9d58e 60 virtual TestPlugin* removePluginByName(const SimpleString& name);
rgrover1 0:0b799af9d58e 61 virtual TestPlugin* getNext();
rgrover1 0:0b799af9d58e 62
rgrover1 0:0b799af9d58e 63 virtual void disable();
rgrover1 0:0b799af9d58e 64 virtual void enable();
rgrover1 0:0b799af9d58e 65 virtual bool isEnabled();
rgrover1 0:0b799af9d58e 66
rgrover1 0:0b799af9d58e 67 const SimpleString& getName();
rgrover1 0:0b799af9d58e 68 TestPlugin* getPluginByName(const SimpleString& name);
rgrover1 0:0b799af9d58e 69
rgrover1 0:0b799af9d58e 70 protected:
rgrover1 0:0b799af9d58e 71 TestPlugin(TestPlugin* next_);
rgrover1 0:0b799af9d58e 72
rgrover1 0:0b799af9d58e 73 private:
rgrover1 0:0b799af9d58e 74 TestPlugin* next_;
rgrover1 0:0b799af9d58e 75 SimpleString name_;
rgrover1 0:0b799af9d58e 76 bool enabled_;
rgrover1 0:0b799af9d58e 77 };
rgrover1 0:0b799af9d58e 78
rgrover1 0:0b799af9d58e 79 ///////////////////////////////////////////////////////////////////////////////
rgrover1 0:0b799af9d58e 80 //
rgrover1 0:0b799af9d58e 81 // SetPointerPlugin
rgrover1 0:0b799af9d58e 82 //
rgrover1 0:0b799af9d58e 83 // This is a very small plugin_ that resets pointers to their original value.
rgrover1 0:0b799af9d58e 84 //
rgrover1 0:0b799af9d58e 85 ///////////////////////////////////////////////////////////////////////////////
rgrover1 0:0b799af9d58e 86
rgrover1 0:0b799af9d58e 87 extern void CppUTestStore(void **location);
rgrover1 0:0b799af9d58e 88
rgrover1 0:0b799af9d58e 89 class SetPointerPlugin: public TestPlugin
rgrover1 0:0b799af9d58e 90 {
rgrover1 0:0b799af9d58e 91 public:
rgrover1 0:0b799af9d58e 92 SetPointerPlugin(const SimpleString& name);
rgrover1 0:0b799af9d58e 93 virtual ~SetPointerPlugin();
rgrover1 0:0b799af9d58e 94 virtual void postTestAction(UtestShell&, TestResult&) _override;
rgrover1 0:0b799af9d58e 95
rgrover1 0:0b799af9d58e 96 enum
rgrover1 0:0b799af9d58e 97 {
rgrover1 0:0b799af9d58e 98 MAX_SET = 1024
rgrover1 0:0b799af9d58e 99 };
rgrover1 0:0b799af9d58e 100 };
rgrover1 0:0b799af9d58e 101
rgrover1 0:0b799af9d58e 102 #define UT_PTR_SET(a, b) { CppUTestStore( (void**)&a ); a = b; }
rgrover1 0:0b799af9d58e 103
rgrover1 0:0b799af9d58e 104 ///////////// Null Plugin
rgrover1 0:0b799af9d58e 105
rgrover1 0:0b799af9d58e 106 class NullTestPlugin: public TestPlugin
rgrover1 0:0b799af9d58e 107 {
rgrover1 0:0b799af9d58e 108 public:
rgrover1 0:0b799af9d58e 109
rgrover1 0:0b799af9d58e 110 NullTestPlugin();
rgrover1 0:0b799af9d58e 111 virtual ~NullTestPlugin()
rgrover1 0:0b799af9d58e 112 {
rgrover1 0:0b799af9d58e 113 }
rgrover1 0:0b799af9d58e 114
rgrover1 0:0b799af9d58e 115 virtual void runAllPreTestAction(UtestShell& test, TestResult& result) _override;
rgrover1 0:0b799af9d58e 116 virtual void runAllPostTestAction(UtestShell& test, TestResult& result) _override;
rgrover1 0:0b799af9d58e 117
rgrover1 0:0b799af9d58e 118 static NullTestPlugin* instance();
rgrover1 0:0b799af9d58e 119 };
rgrover1 0:0b799af9d58e 120
rgrover1 0:0b799af9d58e 121 #endif