[PATCH 08/21] libtests/block08: Use rtems_blkdev_create()
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Aug 6 07:14:40 UTC 2018
Update #3358.
---
testsuites/libtests/block08/bdbuf_tests.c | 59 +++++++++----------------------
testsuites/libtests/block08/bdbuf_tests.h | 7 +---
testsuites/libtests/block08/system.h | 9 ++---
testsuites/libtests/block08/test_disk.c | 29 +++++----------
4 files changed, 27 insertions(+), 77 deletions(-)
diff --git a/testsuites/libtests/block08/bdbuf_tests.c b/testsuites/libtests/block08/bdbuf_tests.c
index 66e69d4fbd..8cf0111dbc 100644
--- a/testsuites/libtests/block08/bdbuf_tests.c
+++ b/testsuites/libtests/block08/bdbuf_tests.c
@@ -13,17 +13,20 @@
#include "config.h"
#endif
+#include <sys/stat.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
#include <rtems.h>
#include <rtems/io.h>
-#include <rtems/diskdevs.h>
#include <rtems/bdbuf.h>
#include <rtems/inttypes.h>
#include "bdbuf_tests.h"
+#include <tmacros.h>
struct bdbuf_test_descr {
void (* main)(void);
@@ -105,17 +108,10 @@ bdbuf_test_start_aux_task(rtems_name name,
void
run_bdbuf_tests()
{
- rtems_disk_device *disk;
- rtems_status_code sc;
- dev_t dev = -1;
- dev_t test_dev;
- unsigned int i;
-
- rtems_device_major_number major;
- rtems_driver_address_table testdisk = {
- test_disk_initialize,
- RTEMS_GENERIC_BLOCK_DEVICE_DRIVER_ENTRIES
- };
+ rtems_status_code sc;
+ unsigned int i;
+ int fd;
+ int rv;
/* Create a message queue to get events from disk driver. */
sc = rtems_message_queue_create(TEST_TASK_RX_MQUEUE_NAME,
@@ -130,40 +126,17 @@ run_bdbuf_tests()
return;
}
- /* Register a disk device that is used in tests */
- sc = rtems_io_register_driver(0, &testdisk, &major);
- if (sc != RTEMS_SUCCESSFUL)
- {
- printf("Failed to register TEST DEVICE: %d\n", sc);
- return;
- }
+ sc = test_disk_initialize();
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
- test_dev = -1;
- while ((disk = rtems_disk_next(dev)) != NULL)
- {
- printf(
- "DEV: %s [%" PRIdrtems_blkdev_bnum "]\n",
- disk->name,
- disk->size
- );
- dev = disk->dev;
- if (strcmp(disk->name, TEST_DISK_NAME) == 0)
- test_dev = dev;
- rtems_disk_release(disk);
- }
+ fd = open(TEST_DISK_NAME, O_RDWR);
+ rtems_test_assert(fd >= 0);
- if (test_dev == (dev_t)-1)
- {
- printf("Failed to find %s disk\n", TEST_DISK_NAME);
- return;
- }
+ rv = rtems_disk_fd_get_disk_device(fd, &test_dd);
+ rtems_test_assert(rv == 0);
- test_dd = rtems_disk_obtain(test_dev);
- if (test_dd == NULL)
- {
- printf("Failed to obtain %s disk\n", TEST_DISK_NAME);
- return;
- }
+ rv = close(fd);
+ rtems_test_assert(rv == 0);
/*
* On initialization test disk device driver registers
diff --git a/testsuites/libtests/block08/bdbuf_tests.h b/testsuites/libtests/block08/bdbuf_tests.h
index 72502b3e38..8924eb1f14 100644
--- a/testsuites/libtests/block08/bdbuf_tests.h
+++ b/testsuites/libtests/block08/bdbuf_tests.h
@@ -17,7 +17,6 @@
#include <string.h>
#include <errno.h>
#include <rtems/bspIo.h>
-#include <rtems/diskdevs.h>
#include <rtems/bdbuf.h>
#ifdef __cplusplus
@@ -46,11 +45,7 @@ extern void bdbuf_test4_1_main(void);
extern void bdbuf_test4_2_main(void);
extern void bdbuf_test4_3_main(void);
-extern rtems_device_driver
-test_disk_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg);
+extern rtems_status_code test_disk_initialize(void);
#define ARRAY_NUM(a_) (sizeof(a_) / sizeof(a_[0]))
diff --git a/testsuites/libtests/block08/system.h b/testsuites/libtests/block08/system.h
index 8ceb17e929..bb4a9a0bb1 100644
--- a/testsuites/libtests/block08/system.h
+++ b/testsuites/libtests/block08/system.h
@@ -24,6 +24,8 @@ rtems_task Init(
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
+
#define CONFIGURE_MAXIMUM_TASKS 28
#define CONFIGURE_MAXIMUM_TIMERS 10
#define CONFIGURE_MAXIMUM_SEMAPHORES 20
@@ -40,13 +42,6 @@ rtems_task Init(
#define CONFIGURE_BDBUF_BUFFER_MIN_SIZE (512)
#define CONFIGURE_BDBUF_BUFFER_MAX_SIZE (512)
-/*
- * Define it here in order to be able to register
- * test driver after RTEMS initialization phase
- * (on test start-up).
- */
-#define CONFIGURE_MAXIMUM_DRIVERS 5
-
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/testsuites/libtests/block08/test_disk.c b/testsuites/libtests/block08/test_disk.c
index aa33803b23..5cc15d280a 100644
--- a/testsuites/libtests/block08/test_disk.c
+++ b/testsuites/libtests/block08/test_disk.c
@@ -21,8 +21,7 @@
#include <string.h>
#include <inttypes.h>
-#include "rtems/blkdev.h"
-#include "rtems/diskdevs.h"
+#include <rtems/blkdev.h>
#include "bdbuf_tests.h"
@@ -58,9 +57,7 @@ test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
}
default:
- printf("%s() Unexpected request comes %" PRIu32 "\n",
- __FUNCTION__, req);
- return -1;
+ return rtems_blkdev_ioctl (dd, req, argp);
}
memset(&msg, 0, sizeof(msg));
@@ -107,25 +104,15 @@ test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
return 0;
}
-rtems_device_driver
-test_disk_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg)
+rtems_status_code
+test_disk_initialize(void)
{
rtems_status_code rc;
- dev_t dev;
- rc = rtems_disk_io_initialize();
- if (rc != RTEMS_SUCCESSFUL)
- return rc;
-
- dev = rtems_filesystem_make_dev_t(major, minor);
- rc = rtems_disk_create_phys(dev,
- TEST_DISK_BLOCK_SIZE, TEST_DISK_BLOCK_NUM,
- test_disk_ioctl,
- NULL,
- TEST_DISK_NAME);
+ rc = rtems_blkdev_create(TEST_DISK_NAME,
+ TEST_DISK_BLOCK_SIZE, TEST_DISK_BLOCK_NUM,
+ test_disk_ioctl,
+ NULL);
if (rc != RTEMS_SUCCESSFUL)
{
printf("Failed to create %s disk\n", TEST_DISK_NAME);
--
2.13.7
More information about the devel
mailing list