summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/block07
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-11-12 15:34:09 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-11-12 15:34:09 +0000
commitb27799c311d641b82ea8e2cc08c2447f456c6037 (patch)
tree49756c462133cb1b7c563af04701af7eb26097df /testsuites/libtests/block07
parentChanged set and get IO controls to use the buffer argument for data exchange. (diff)
downloadrtems-b27799c311d641b82ea8e2cc08c2447f456c6037.tar.bz2
New test case
Diffstat (limited to 'testsuites/libtests/block07')
-rw-r--r--testsuites/libtests/block07/init.c61
1 files changed, 54 insertions, 7 deletions
diff --git a/testsuites/libtests/block07/init.c b/testsuites/libtests/block07/init.c
index f7845d47a9..b232120271 100644
--- a/testsuites/libtests/block07/init.c
+++ b/testsuites/libtests/block07/init.c
@@ -36,11 +36,13 @@
#define PRIORITY_HIGH 2
-#define PRIORITY_LOW 3
+#define PRIORITY_MID 3
-#define PRIORITY_SWAPOUT 4
+#define PRIORITY_LOW 4
-#define PRIORITY_IDLE 5
+#define PRIORITY_SWAPOUT 5
+
+#define PRIORITY_IDLE 6
#define BLOCK_SIZE_A 1
@@ -52,6 +54,8 @@ static dev_t dev;
static rtems_id task_id_low;
+static rtems_id task_id_mid;
+
static rtems_id task_id_high;
static void change_block_size(void)
@@ -90,6 +94,32 @@ static void task_low(rtems_task_argument arg)
printk("L: release done: 0\n");
+ printk("*** END OF TEST BLOCK 7 ***\n");
+
+ exit(0);
+}
+
+static void task_mid(rtems_task_argument arg)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+ rtems_bdbuf_buffer *bd = NULL;
+
+ printk("M: try access: 0\n");
+
+ sc = rtems_bdbuf_get(dev, 0, &bd);
+ ASSERT_SC(sc);
+
+ printk("M: access: 0\n");
+
+ assert(bd->group->bds_per_group == 1);
+
+ printk("M: release: 0\n");
+
+ sc = rtems_bdbuf_release(bd);
+ ASSERT_SC(sc);
+
+ printk("M: release done: 0\n");
+
rtems_task_delete(RTEMS_SELF);
}
@@ -116,9 +146,7 @@ static void task_high(rtems_task_argument arg)
printk("H: release done: 0\n");
- printk("*** END OF TEST BLOCK 7 ***\n");
-
- exit(0);
+ rtems_task_delete(RTEMS_SELF);
}
static rtems_task Init(rtems_task_argument argument)
@@ -149,6 +177,19 @@ static rtems_task Init(rtems_task_argument argument)
ASSERT_SC(sc);
sc = rtems_task_create(
+ rtems_build_name(' ', 'M', 'I', 'D'),
+ PRIORITY_MID,
+ 0,
+ RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &task_id_mid
+ );
+ ASSERT_SC(sc);
+
+ sc = rtems_task_start(task_id_mid, task_mid, 0);
+ ASSERT_SC(sc);
+
+ sc = rtems_task_create(
rtems_build_name('H', 'I', 'G', 'H'),
PRIORITY_HIGH,
0,
@@ -161,6 +202,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_task_start(task_id_high, task_high, 0);
ASSERT_SC(sc);
+ sc = rtems_task_suspend(task_id_mid);
+ ASSERT_SC(sc);
+
sc = rtems_task_suspend(task_id_high);
ASSERT_SC(sc);
@@ -183,6 +227,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_task_resume(task_id_high);
ASSERT_SC(sc);
+ sc = rtems_task_resume(task_id_mid);
+ ASSERT_SC(sc);
+
sc = rtems_task_set_priority(RTEMS_SELF, PRIORITY_INIT, &cur_prio);
ASSERT_SC(sc);
@@ -205,7 +252,7 @@ static rtems_task Init(rtems_task_argument argument)
#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
-#define CONFIGURE_MAXIMUM_TASKS 5
+#define CONFIGURE_MAXIMUM_TASKS 6
#define CONFIGURE_MAXIMUM_DRIVERS 2
#define CONFIGURE_MAXIMUM_SEMAPHORES 5