From 117f7b1f670ab88ab256e596dd289743678b3bb7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 3 Aug 2018 18:18:56 +0200 Subject: libtests/block08: Use rtems_blkdev_create() 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(-) (limited to 'testsuites') 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 #include #include #include +#include +#include #include #include -#include #include #include #include "bdbuf_tests.h" +#include 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 #include #include -#include #include #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 #include -#include "rtems/blkdev.h" -#include "rtems/diskdevs.h" +#include #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); -- cgit v1.2.3