summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spfatal10/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/sptests/spfatal10/init.c')
-rw-r--r--testsuites/sptests/spfatal10/init.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/testsuites/sptests/spfatal10/init.c b/testsuites/sptests/spfatal10/init.c
new file mode 100644
index 0000000000..221f117f3a
--- /dev/null
+++ b/testsuites/sptests/spfatal10/init.c
@@ -0,0 +1,48 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "../spfatal_support/spfatal.h"
+
+/* Test __assert_func with NULL function name
+ *
+ * COPYRIGHT (c) 1989-2009.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#include <assert.h>
+#include <string.h>
+
+#define FATAL_ERROR_TEST_NAME "10"
+#define FATAL_ERROR_DESCRIPTION "asserting with non-NULL strings..."
+#define FATAL_ERROR_EXPECTED_SOURCE RTEMS_FATAL_SOURCE_ASSERT
+#define FATAL_ERROR_EXPECTED_ERROR_CHECK spfatal10_is_expected_error
+
+#define ASSERT_FILE "testcase.h"
+#define ASSERT_LINE 38
+#define ASSERT_FUNC "Init"
+#define ASSERT_FEXP "forced"
+
+static inline bool spfatal10_is_expected_error( rtems_fatal_code error )
+{
+ const rtems_assert_context *assert_context =
+ (const rtems_assert_context *) error;
+
+ return strcmp( assert_context->file, ASSERT_FILE ) == 0
+ && assert_context->line == ASSERT_LINE
+ && strcmp( assert_context->function, ASSERT_FUNC ) == 0
+ && strcmp( assert_context->failed_expression, ASSERT_FEXP ) == 0;
+}
+
+static void force_error(void)
+{
+ __assert_func( ASSERT_FILE, ASSERT_LINE, ASSERT_FUNC, ASSERT_FEXP );
+
+ /* we will not run this far */
+}
+
+#include "../spfatal_support/spfatalimpl.h"