EmbUnit library for mbed. EmbUnit is a unit testing framework for embedded software. (more info: http://embunit.sourceforge.net/ )
TestCase.cpp
00001 /* 00002 * COPYRIGHT AND PERMISSION NOTICE 00003 * 00004 * Copyright (c) 2003 Embedded Unit Project 00005 * 00006 * All rights reserved. 00007 * 00008 * Permission is hereby granted, free of charge, to any person obtaining 00009 * a copy of this software and associated documentation files (the 00010 * "Software"), to deal in the Software without restriction, including 00011 * without limitation the rights to use, copy, modify, merge, publish, 00012 * distribute, and/or sell copies of the Software, and to permit persons 00013 * to whom the Software is furnished to do so, provided that the above 00014 * copyright notice(s) and this permission notice appear in all copies 00015 * of the Software and that both the above copyright notice(s) and this 00016 * permission notice appear in supporting documentation. 00017 * 00018 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00019 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00020 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 00021 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 00022 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY 00023 * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER 00024 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 00025 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 00026 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 00027 * 00028 * Except as contained in this notice, the name of a copyright holder 00029 * shall not be used in advertising or otherwise to promote the sale, 00030 * use or other dealings in this Software without prior written 00031 * authorization of the copyright holder. 00032 * 00033 * $Id: TestCase.c,v 1.6 2004/02/10 16:19:29 arms22 Exp $ 00034 */ 00035 #include "Test.h" 00036 #include "TestCase.h" 00037 #include "TestResult.h" 00038 00039 static TestResult* result_; 00040 static TestCase* self_; 00041 00042 char* TestCase_name(TestCase* self) 00043 { 00044 return self->name; 00045 } 00046 00047 void TestCase_run(TestCase* self,TestResult* result) 00048 { 00049 TestResult_startTest(result, (Test*)self); 00050 if (self->setUp) { 00051 self->setUp(); 00052 } 00053 if (self->runTest) { 00054 TestResult* wr =result_; /*push*/ 00055 TestCase* ws = self_; /*push*/ 00056 result_ = result; 00057 self_ = self; 00058 self->runTest(); 00059 result_ = wr; /*pop*/ 00060 self_ = ws; /*pop*/ 00061 } 00062 if (self->tearDown) { 00063 self->tearDown(); 00064 } 00065 TestResult_endTest(result, (Test*)self); 00066 } 00067 00068 int TestCase_countTestCases(TestCase* self) 00069 { 00070 return 1; 00071 } 00072 00073 const TestImplement TestCaseImplement = { 00074 (TestNameFunction) TestCase_name, 00075 (TestRunFunction) TestCase_run, 00076 (TestCountTestCasesFunction)TestCase_countTestCases, 00077 }; 00078 00079 void addFailure(const char *msg, long line, const char *file) 00080 { 00081 TestResult_addFailure(result_, (Test*)self_, (char*)msg, line, (char*)file); 00082 }
Generated on Wed Jul 13 2022 18:17:56 by 1.7.2