summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/sptask_err04/init.c
diff options
context:
space:
mode:
authorBjorn Larsson <bjornlarsson@oarcorp.com>2014-03-28 13:05:57 -0500
committerJennifer Averett <jennifer.averett@oarcorp.com>2014-03-28 13:09:06 -0500
commitdf367faddb9e927d18859692d1c0bbd613953328 (patch)
treec8759062d0b16561dec87b949a47bcd3da722d9b /testsuites/sptests/sptask_err04/init.c
parentsptask_err03: New test split from sp09 screen 3. (diff)
downloadrtems-df367faddb9e927d18859692d1c0bbd613953328.tar.bz2
sptests: New tests split from sp09 screen 1 and screen 2.
Split sp09 screen 1 into new test sptask_err04. Split sp09 screen 2 into new tests sptask__err02 and spclock_err01, as well as moving one verification into sptimer_err01.
Diffstat (limited to 'testsuites/sptests/sptask_err04/init.c')
-rw-r--r--testsuites/sptests/sptask_err04/init.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/testsuites/sptests/sptask_err04/init.c b/testsuites/sptests/sptask_err04/init.c
new file mode 100644
index 0000000000..90cb2e1d5b
--- /dev/null
+++ b/testsuites/sptests/sptask_err04/init.c
@@ -0,0 +1,88 @@
+/*
+ * 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"
+
+#include <rtems/rtems/tasksimpl.h>
+
+const char rtems_test_name[] = "TASK ERROR 04";
+
+rtems_task Init(
+ rtems_task_argument argument
+)
+{
+ rtems_status_code status;
+
+ TEST_BEGIN();
+
+ Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
+
+ /* priority of 0 error */
+ status = rtems_task_create(
+ Task_name[1],
+ 0,
+ RTEMS_MINIMUM_STACK_SIZE,
+ RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &Task_id[ 1 ]
+ );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_PRIORITY,
+ "rtems_task_create with illegal priority"
+ );
+ puts( "INIT - rtems_task_create - priority of 0 - RTEMS_INVALID_PRIORITY" );
+
+ /* priority > 255 error */
+ status = rtems_task_create(
+ Task_name[1],
+ 257,
+ RTEMS_MINIMUM_STACK_SIZE,
+ RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &Task_id[ 1 ]
+ );
+ fatal_directive_status(
+ status,
+ RTEMS_INVALID_PRIORITY,
+ "rtems_task_create with illegal priority"
+ );
+ puts(
+ "INIT - rtems_task_create - priority too high - RTEMS_INVALID_PRIORITY"
+ );
+
+ status = rtems_task_create(
+ Task_name[ 1 ],
+ 4,
+ RTEMS_MINIMUM_STACK_SIZE * 3,
+ RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &Task_id[ 1 ]
+ );
+ directive_failed( status, "rtems_task_create of TA1" );
+
+ status = rtems_task_restart( Task_id[ 1 ], 0 );
+ fatal_directive_status(
+ status,
+ RTEMS_INCORRECT_STATE,
+ "rtems_task_restart of DORMANT task"
+ );
+ puts( "INIT - rtems_task_restart - RTEMS_INCORRECT_STATE" );
+
+ status = rtems_task_start( Task_id[ 1 ], Task_1, 0 );
+ directive_failed( status, "rtems_task_start of TA1" );
+
+ status = rtems_task_delete( RTEMS_SELF );
+ directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+}