diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-01-13 19:26:38 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-01-13 19:26:38 +0000 |
commit | 85d62357bbef6e3d8d9cfcbe2964a9e850de98a7 (patch) | |
tree | d8ed5885fc3df698e7624cc0b516f0a48e434529 /testsuites/support/include | |
parent | POSIX message queues now include complete functionality including (diff) | |
download | rtems-85d62357bbef6e3d8d9cfcbe2964a9e850de98a7.tar.bz2 |
Changed error checking macros for POSIX.
Diffstat (limited to '')
-rw-r--r-- | testsuites/support/include/tmacros.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/testsuites/support/include/tmacros.h b/testsuites/support/include/tmacros.h index 2e7925f809..6009ef473e 100644 --- a/testsuites/support/include/tmacros.h +++ b/testsuites/support/include/tmacros.h @@ -24,6 +24,7 @@ extern "C" { #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <assert.h> #include <rtems/error.h> @@ -47,6 +48,10 @@ extern "C" { } \ } while ( 0 ) +/* + * These macros properly report errors within the Classic API + */ + #define directive_failed( _dirstat, _failmsg ) \ fatal_directive_status( _dirstat, RTEMS_SUCCESSFUL, _failmsg ) @@ -68,6 +73,61 @@ extern "C" { } \ } while ( 0 ) +/* + * These macros properly report errors from the POSIX API + */ + +#define posix_service_failed( _dirstat, _failmsg ) \ + fatal_posix_service_status( _dirstat, RTEMS_SUCCESSFUL, _failmsg ) + +#define posix_service_failed_with_level( _dirstat, _failmsg, _level ) \ + fatal_posix_service_status_with_level( \ + _dirstat, RTEMS_SUCCESSFUL, _failmsg, _level ) + +#define fatal_posix_service_status( _stat, _desired, _msg ) \ + fatal_posix_service_status_with_level( _stat, _desired, _msg, 0 ) + +#define fatal_posix_service_status_with_level( _stat, _desired, _msg, _level ) \ + do { \ + check_dispatch_disable_level( _level ); \ + if ( (_stat) != (_desired) ) { \ + printf( "\n%s FAILED -- expected (%s) got (%s)\n", \ + (_msg), strerror(_desired), strerror(_stat) ); \ + fflush(stdout); \ + exit( _stat ); \ + } \ + } while ( 0 ) + +/* + * Generic integer version of the error reporting + */ + +#define int_service_failed( _dirstat, _failmsg ) \ + fatal_int_service_status( _dirstat, RTEMS_SUCCESSFUL, _failmsg ) + +#define int_service_failed_with_level( _dirstat, _failmsg, _level ) \ + fatal_int_service_status_with_level( \ + _dirstat, RTEMS_SUCCESSFUL, _failmsg, _level ) + +#define fatal_int_service_status( _stat, _desired, _msg ) \ + fatal_int_service_status_with_level( _stat, _desired, _msg, 0 ) + +#define fatal_int_service_status_with_level( _stat, _desired, _msg, _level ) \ + do { \ + check_dispatch_disable_level( _level ); \ + if ( (_stat) != (_desired) ) { \ + printf( "\n%s FAILED -- expected (%d) got (%d)\n", \ + (_msg), (_desired), (_stat) ); \ + fflush(stdout); \ + exit( _stat ); \ + } \ + } while ( 0 ) + + +/* + * Print the time + */ + #define sprint_time(_str, _s1, _tb, _s2) \ do { \ sprintf( (str), "%s%02d:%02d:%02d %02d/%02d/%04d%s", \ |