summaryrefslogtreecommitdiffstats
path: root/c/src/tests/support/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-01-13 19:26:38 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-01-13 19:26:38 +0000
commit85d62357bbef6e3d8d9cfcbe2964a9e850de98a7 (patch)
treed8ed5885fc3df698e7624cc0b516f0a48e434529 /c/src/tests/support/include
parentPOSIX message queues now include complete functionality including (diff)
downloadrtems-85d62357bbef6e3d8d9cfcbe2964a9e850de98a7.tar.bz2
Changed error checking macros for POSIX.
Diffstat (limited to 'c/src/tests/support/include')
-rw-r--r--c/src/tests/support/include/tmacros.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/c/src/tests/support/include/tmacros.h b/c/src/tests/support/include/tmacros.h
index 2e7925f809..6009ef473e 100644
--- a/c/src/tests/support/include/tmacros.h
+++ b/c/src/tests/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", \