From: solar Date: Fri, 23 Dec 2005 16:09:10 +0000 (+0000) Subject: Moved from functions/ to functions/_PDCLIB/. X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=a2d09ba6c82f49fe6a27be24c596f2636f7cb3c4;p=fw%2Fpdclib Moved from functions/ to functions/_PDCLIB/. git-svn-id: https://srv7.svn-repos.de/dev34/pdclib/trunk@115 546481bc-9713-0410-bf18-d3337bbf4a3e --- diff --git a/functions/_PDCLIB/assert.c b/functions/_PDCLIB/assert.c new file mode 100644 index 0000000..5c4b310 --- /dev/null +++ b/functions/_PDCLIB/assert.c @@ -0,0 +1,73 @@ +/* $Id$ */ + +/* Release $Name$ */ + +/* _PDCLIB_assert( char const * ) + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#include +#include + +#ifndef _PDCLIB_AUX_H +#define _PDCLIB_AUX_H _PDCLIB_AUX_H +#include <_PDCLIB_aux.h> +#endif + +#if _PDCLIB_C_VERSION == 99 +void _PDCLIB_assert( char const * const message1, char const * const function, char const * const message2 ) +{ + fputs( message1, stderr ); + fputs( function, stderr ); + fputs( message2, stderr ); + abort(); +} +#else +void _PDCLIB_assert( char const * const message ) +{ + fputs( message, stderr ); + abort(); +} +#endif + + +#ifdef TEST +#include <_PDCLIB_test.h> +#include + +static int rc = 0; +static int EXPECTED_ABORT = 0; +static int UNEXPECTED_ABORT = 1; + +void aborthandler( int signal ) +{ + TESTCASE( ! EXPECTED_ABORT ); + exit( rc ); +} + +#define NDEBUG +#include + +int disabled_test() +{ + int i = 0; + assert( i == 0 ); /* NDEBUG set, condition met */ + assert( i == 1 ); /* NDEBUG set, condition fails */ + return i; +} + +#undef NDEBUG +#include + +int main() +{ + BEGIN_TESTS; + TESTCASE( signal( SIGABRT, &aborthandler ) != SIG_ERR ); + assert( UNEXPECTED_ABORT ); /* NDEBUG not set, condition met */ + assert( EXPECTED_ABORT ); /* NDEBUG not set, condition fails - should abort */ + return TEST_RESULTS; +} + +#endif diff --git a/functions/_PDCLIB/stdarg.c b/functions/_PDCLIB/stdarg.c new file mode 100644 index 0000000..defd5fe --- /dev/null +++ b/functions/_PDCLIB/stdarg.c @@ -0,0 +1,118 @@ +/* $Id$ */ + +/* Release $Name$ */ + +/* stdarg + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#ifdef TEST + +#include <_PDCLIB_test.h> +#include +#include +#include + +unsigned int rc = 0; + +typedef int (*intfunc_t)( void ); + +enum tag_t +{ + TAG_END, + TAG_INT, + TAG_LONG, + TAG_LLONG, + TAG_DBL, + TAG_LDBL, + TAG_INTPTR, + TAG_LDBLPTR, + TAG_FUNCPTR +}; + +static int test( enum tag_t s, ... ) +{ + enum tag_t tag = s; + va_list ap; + va_start( ap, s ); + for (;;) + { + switch ( tag ) + { + case TAG_INT: + { + TESTCASE( va_arg( ap, int ) == INT_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_LONG: + { + TESTCASE( va_arg( ap, long ) == LONG_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_LLONG: + { + TESTCASE( va_arg( ap, long long ) == LLONG_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_DBL: + { + TESTCASE( va_arg( ap, double ) == DBL_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_LDBL: + { + TESTCASE( va_arg( ap, long double ) == LDBL_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_INTPTR: + { + TESTCASE( *( va_arg( ap, int * ) ) == INT_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_LDBLPTR: + { + TESTCASE( *( va_arg( ap, long double * ) ) == LDBL_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_FUNCPTR: + { + TESTCASE( (va_arg( ap, intfunc_t ))() == INT_MAX ); + tag = va_arg( ap, enum tag_t ); + break; + } + case TAG_END: + { + va_end( ap ); + return 0; + } + } + } +} + +int dummy() +{ + return INT_MAX; +} + +int main() +{ + int x = INT_MAX; + long double d = LDBL_MAX; + test( TAG_END ); + test( TAG_INT, INT_MAX, TAG_END ); + test( TAG_LONG, LONG_MAX, TAG_LLONG, LLONG_MAX, TAG_END ); + test( TAG_DBL, DBL_MAX, TAG_LDBL, LDBL_MAX, TAG_END ); + test( TAG_INTPTR, &x, TAG_LDBLPTR, &d, TAG_FUNCPTR, dummy, TAG_END ); + return TEST_RESULTS; +} + +#endif diff --git a/functions/assert.c b/functions/assert.c deleted file mode 100644 index 349570c..0000000 --- a/functions/assert.c +++ /dev/null @@ -1,69 +0,0 @@ -/* _PDCLIB_assert( char * ) - - This file is part of the Public Domain C Library (PDCLib). - Permission is granted to use, modify, and / or redistribute at will. -*/ - -#include -#include - -#ifndef _PDCLIB_AUX_H -#define _PDCLIB_AUX_H _PDCLIB_AUX_H -#include <_PDCLIB_aux.h> -#endif - -#if _PDCLIB_C_VERSION == 99 -void _PDCLIB_assert( char const * const message1, char const * const function, char const * const message2 ) -{ - fputs( message1, stderr ); - fputs( function, stderr ); - fputs( message2, stderr ); - abort(); -} -#else -void _PDCLIB_assert( char const * const message ) -{ - fputs( message, stderr ); - abort(); -} -#endif - - -#ifdef TEST -#include <_PDCLIB_test.h> -#include - -static int rc = 0; -static int EXPECTED_ABORT = 0; -static int UNEXPECTED_ABORT = 1; - -void aborthandler( int signal ) -{ - TESTCASE( ! EXPECTED_ABORT ); - exit( rc ); -} - -#define NDEBUG -#include - -int disabled_test() -{ - int i = 0; - assert( i == 0 ); /* NDEBUG set, condition met */ - assert( i == 1 ); /* NDEBUG set, condition fails */ - return i; -} - -#undef NDEBUG -#include - -int main() -{ - BEGIN_TESTS; - TESTCASE( signal( SIGABRT, &aborthandler ) != SIG_ERR ); - assert( UNEXPECTED_ABORT ); /* NDEBUG not set, condition met */ - assert( EXPECTED_ABORT ); /* NDEBUG not set, condition fails - should abort */ - return TEST_RESULTS; -} - -#endif diff --git a/functions/stdarg.c b/functions/stdarg.c deleted file mode 100644 index defd5fe..0000000 --- a/functions/stdarg.c +++ /dev/null @@ -1,118 +0,0 @@ -/* $Id$ */ - -/* Release $Name$ */ - -/* stdarg - - This file is part of the Public Domain C Library (PDCLib). - Permission is granted to use, modify, and / or redistribute at will. -*/ - -#ifdef TEST - -#include <_PDCLIB_test.h> -#include -#include -#include - -unsigned int rc = 0; - -typedef int (*intfunc_t)( void ); - -enum tag_t -{ - TAG_END, - TAG_INT, - TAG_LONG, - TAG_LLONG, - TAG_DBL, - TAG_LDBL, - TAG_INTPTR, - TAG_LDBLPTR, - TAG_FUNCPTR -}; - -static int test( enum tag_t s, ... ) -{ - enum tag_t tag = s; - va_list ap; - va_start( ap, s ); - for (;;) - { - switch ( tag ) - { - case TAG_INT: - { - TESTCASE( va_arg( ap, int ) == INT_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_LONG: - { - TESTCASE( va_arg( ap, long ) == LONG_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_LLONG: - { - TESTCASE( va_arg( ap, long long ) == LLONG_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_DBL: - { - TESTCASE( va_arg( ap, double ) == DBL_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_LDBL: - { - TESTCASE( va_arg( ap, long double ) == LDBL_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_INTPTR: - { - TESTCASE( *( va_arg( ap, int * ) ) == INT_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_LDBLPTR: - { - TESTCASE( *( va_arg( ap, long double * ) ) == LDBL_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_FUNCPTR: - { - TESTCASE( (va_arg( ap, intfunc_t ))() == INT_MAX ); - tag = va_arg( ap, enum tag_t ); - break; - } - case TAG_END: - { - va_end( ap ); - return 0; - } - } - } -} - -int dummy() -{ - return INT_MAX; -} - -int main() -{ - int x = INT_MAX; - long double d = LDBL_MAX; - test( TAG_END ); - test( TAG_INT, INT_MAX, TAG_END ); - test( TAG_LONG, LONG_MAX, TAG_LLONG, LLONG_MAX, TAG_END ); - test( TAG_DBL, DBL_MAX, TAG_LDBL, LDBL_MAX, TAG_END ); - test( TAG_INTPTR, &x, TAG_LDBLPTR, &d, TAG_FUNCPTR, dummy, TAG_END ); - return TEST_RESULTS; -} - -#endif