summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spintr_err01/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/sptests/spintr_err01/init.c')
-rw-r--r--testsuites/sptests/spintr_err01/init.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/testsuites/sptests/spintr_err01/init.c b/testsuites/sptests/spintr_err01/init.c
new file mode 100644
index 0000000000..c2c39ae53b
--- /dev/null
+++ b/testsuites/sptests/spintr_err01/init.c
@@ -0,0 +1,67 @@
+/*
+ * COPYRIGHT (c) 2014.
+ * 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.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#define CONFIGURE_INIT
+#include "system.h"
+
+const char rtems_test_name[] = "SP INTERRUPT ERROR 1";
+
+rtems_task Init(
+ rtems_task_argument argument
+)
+{
+ rtems_status_code status;
+
+ TEST_BEGIN();
+ #if ((CPU_SIMPLE_VECTORED_INTERRUPTS == FALSE) || \
+ defined(_C3x) || defined(_C4x))
+ puts(
+ "TA1 - rtems_interrupt_catch - "
+ "bad handler RTEMS_INVALID_ADDRESS -- SKIPPED"
+ );
+ puts(
+ "TA1 - rtems_interrupt_catch - "
+ "old isr RTEMS_INVALID_ADDRESS - SKIPPED" );
+#else
+ rtems_isr_entry old_service_routine;
+ status = rtems_interrupt_catch(
+ Service_routine,
+ ISR_INTERRUPT_MAXIMUM_VECTOR_NUMBER + 10,
+ &old_service_routine
+ );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_NUMBER,
+ "rtems_interrupt_catch with invalid vector"
+ );
+ puts( "TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER" );
+
+ status = rtems_interrupt_catch( NULL, 3, &old_service_routine );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_ADDRESS,
+ "rtems_interrupt_catch with invalid handler"
+ );
+ puts( "TA1 - rtems_interrupt_catch - bad handler RTEMS_INVALID_ADDRESS" );
+
+ status = rtems_interrupt_catch( Service_routine, 3, NULL );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_ADDRESS,
+ "rtems_interrupt_catch with invalid old isr pointer"
+ );
+ puts( "TA1 - rtems_interrupt_catch - old isr RTEMS_INVALID_ADDRESS" );
+#endif
+
+ TEST_END();
+}