source code documentationstructural_test.hGo to the documentation of this file.00001 /* 00002 * embedded IPsec 00003 * Copyright (c) 2003 Niklaus Schild and Christian Scheurer, HTI Biel/Bienne 00004 * All rights reserved. 00005 * 00006 * Redistribution and use in source and binary forms, with or without modification, 00007 * are permitted provided that the following conditions are met: 00008 * 00009 * 1. Redistributions of source code must retain the above copyright notice, 00010 * this list of conditions and the following disclaimer. 00011 * 2. Redistributions in binary form must reproduce the above copyright notice, 00012 * this list of conditions and the following disclaimer in the documentation 00013 * and/or other materials provided with the distribution. 00014 * 3. The name of the author may not be used to endorse or promote products 00015 * derived from this software without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 00018 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00019 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 00020 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00021 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00022 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00023 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00024 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 00025 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 00026 * OF SUCH DAMAGE. 00027 * 00028 */ 00029 00041 #ifndef __STRUCTURAL_TEST_H__ 00042 #define __STRUCTURAL_TEST_H__ 00043 00044 typedef struct test_result_struct 00045 { 00046 unsigned int tests; 00047 unsigned int functions; 00048 unsigned int errors; 00049 unsigned int notimplemented; 00050 } test_result; 00051 00057 #define IPSEC_TESTING_EVALUATE(__retcode__, __sub_results__, __functionname__, __msg__) { \ 00058 switch(__retcode__) { \ 00059 case IPSEC_STATUS_SUCCESS: ; \ 00060 IPSEC_LOG_TST_NOMSG(__functionname__, "SUCCESS "); \ 00061 printf __msg__ ; \ 00062 printf("\n"); \ 00063 break; \ 00064 case IPSEC_STATUS_NOT_IMPLEMENTED: ; __sub_results__.notimplemented++; \ 00065 IPSEC_LOG_TST_NOMSG(__functionname__, "NOT IMPL."); \ 00066 printf __msg__ ; \ 00067 printf("\n"); \ 00068 break; \ 00069 default: ; __sub_results__.errors += __retcode__; \ 00070 IPSEC_LOG_TST_NOMSG(__functionname__, "ERROR "); \ 00071 printf("(%d errors)", __retcode__); \ 00072 printf __msg__ ; \ 00073 printf("\n"); \ 00074 } \ 00075 } \ 00076 00077 00078 00079 00080 #endif 00081 00082 |