Home | History | Annotate | Download | only in testfrmw
      1 /*
      2  * Copyright (c) 2004, Bull S.A..  All rights reserved.
      3  * Created by: Sebastien Decugis
      4  *
      5  * This program is free software; you can redistribute it and/or modify it
      6  * under the terms of version 2 of the GNU General Public License as
      7  * published by the Free Software Foundation.
      8  *
      9  * This program is distributed in the hope that it would be useful, but
     10  * WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     12  *
     13  * You should have received a copy of the GNU General Public License along
     14  * with this program; if not, write the Free Software Foundation, Inc.,
     15  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
     16  *
     17  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
     18  * with either the Linux Test Project or the Open POSIX Test Suite.
     19  *
     20  * The following macros are defined here:
     21  * UNRESOLVED(ret, descr);
     22  *    where descr is a description of the error and ret is
     23  *    an int (error code for example)
     24  * FAILED(descr);
     25  *    where descr is a short text saying why the test has failed.
     26  * PASSED();
     27  *    No parameter.
     28  *
     29  * Both three macros shall terminate the calling process.
     30  * The testcase shall not terminate without calling one of those macros.
     31  */
     32 
     33 #include "posixtest.h"
     34 #include <string.h>
     35 
     36 #ifdef __GNUC__
     37 
     38 #define UNRESOLVED(x, s)						\
     39 {									\
     40 	output("Test %s unresolved: got %i (%s) on line %i (%s)\n",	\
     41 		__FILE__, x, strerror(x), __LINE__, s);			\
     42 	output_fini();							\
     43 	exit(PTS_UNRESOLVED);						\
     44 }
     45 
     46 #define FAILED(s)							\
     47 {									\
     48 	output("Test %s FAILED: %s\n", __FILE__, s);			\
     49 	output_fini();							\
     50 	exit(PTS_FAIL);							\
     51 }
     52 
     53 #define PASSED								\
     54 {									\
     55 	output_fini();							\
     56 	exit(PTS_PASS);							\
     57 }
     58 
     59 #define UNTESTED(s)							\
     60 {									\
     61 	output("File %s cannot test: %s\n", __FILE__, s);		\
     62 	output_fini();							\
     63 	exit(PTS_UNTESTED);						\
     64 }
     65 
     66 #else
     67 
     68 #define UNRESOLVED(x, s)						\
     69 {									\
     70 	output("Test unresolved: got %i (%s) on line %i (%s)\n",	\
     71 		x, strerror(x), __LINE__, s);				\
     72 	output_fini();							\
     73 	exit(PTS_UNRESOLVED);						\
     74 }
     75 
     76 #define FAILED(s)							\
     77 {									\
     78 	output("Test FAILED: %s\n", s);					\
     79 	output_fini();							\
     80 	exit(PTS_FAIL);							\
     81 }
     82 
     83 #define PASSED								\
     84 {									\
     85 	output_fini();							\
     86 	exit(PTS_PASS);							\
     87 }
     88 
     89 #define UNTESTED(s)							\
     90 {									\
     91 	output("Unable to test: %s\n", s);				\
     92 	output_fini();							\
     93 	exit(PTS_UNTESTED);						\
     94 }
     95 
     96 #endif
     97