summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/fstests/fsdosfsformat01/init.c71
-rw-r--r--testsuites/fstests/fsdosfssync01/init.c7
-rw-r--r--testsuites/libtests/termios02/init.c41
-rw-r--r--testsuites/libtests/termios02/termios02.scn6
4 files changed, 93 insertions, 32 deletions
diff --git a/testsuites/fstests/fsdosfsformat01/init.c b/testsuites/fstests/fsdosfsformat01/init.c
index 1af9be8cf5..6299c9b50a 100644
--- a/testsuites/fstests/fsdosfsformat01/init.c
+++ b/testsuites/fstests/fsdosfsformat01/init.c
@@ -159,7 +159,7 @@ static void test( void )
const char dev_name[] = "/dev/rda";
const char mount_dir[] = "/mnt";
msdos_format_request_param_t rqdata;
-
+ rtems_blkdev_bnum media_block_count;
memset( &rqdata, 0, sizeof( rqdata ) );
@@ -217,23 +217,30 @@ static void test( void )
rv = msdos_format( dev_name, &rqdata );
rtems_test_assert( rv != 0 );
+ /* Optimized for read/write speed */
rqdata.OEMName = NULL;
rqdata.VolLabel = NULL;
- rqdata.sectors_per_cluster = 16; /* Invalid number of sectors per cluster for FAT12 */
- rqdata.fat_num = 1;
- rqdata.files_per_root_dir = 32;
+ rqdata.sectors_per_cluster = 8;
+ rqdata.fat_num = 0;
+ rqdata.files_per_root_dir = 0;
rqdata.media = 0; /* Media code. 0 == Default */
rqdata.quick_format = true;
rqdata.skip_alignment = false;
rv = msdos_format( dev_name, &rqdata );
- rtems_test_assert( rv != 0 );
+ rtems_test_assert( rv == 0 );
+ test_disk_params( dev_name,
+ mount_dir,
+ SECTOR_SIZE,
+ SECTOR_SIZE * rqdata.sectors_per_cluster,
+ rqdata.sectors_per_cluster );
- /* Optimized for read/write speed */
+ /* The same disk formatted with FAT16 because sectors per cluster is too high
+ * for FAT12 */
rqdata.OEMName = NULL;
rqdata.VolLabel = NULL;
- rqdata.sectors_per_cluster = 8;
- rqdata.fat_num = 0;
- rqdata.files_per_root_dir = 0;
+ rqdata.sectors_per_cluster = 16;
+ rqdata.fat_num = 1;
+ rqdata.files_per_root_dir = 32;
rqdata.media = 0; /* Media code. 0 == Default */
rqdata.quick_format = true;
rqdata.skip_alignment = false;
@@ -275,7 +282,7 @@ static void test( void )
dev_name,
SECTOR_SIZE,
1024,
- ( FAT16_MAX_CLN * FAT16_DEFAULT_SECTORS_PER_CLUSTER ) - 1L,
+ ( FAT12_MAX_CLN * FAT12_DEFAULT_SECTORS_PER_CLUSTER ) + 1L,
0
);
rtems_test_assert( RTEMS_SUCCESSFUL == sc );
@@ -291,7 +298,11 @@ static void test( void )
rqdata.skip_alignment = true;
rv = msdos_format( dev_name, &rqdata );
rtems_test_assert( rv == 0 );
- test_disk_params( dev_name, mount_dir, SECTOR_SIZE, SECTOR_SIZE, 1 );
+ test_disk_params( dev_name,
+ mount_dir,
+ SECTOR_SIZE,
+ rqdata.sectors_per_cluster * SECTOR_SIZE,
+ rqdata.sectors_per_cluster );
rv = unlink( dev_name );
rtems_test_assert( rv == 0 );
@@ -361,6 +372,44 @@ static void test( void )
rv = unlink( dev_name );
rtems_test_assert( rv == 0 );
+ /* Format some disks from 1MB up to 128GB */
+ rqdata.OEMName = NULL;
+ rqdata.VolLabel = NULL;
+ rqdata.sectors_per_cluster = 64;
+ rqdata.fat_num = 0;
+ rqdata.files_per_root_dir = 0;
+ rqdata.media = 0;
+ rqdata.quick_format = true;
+ rqdata.skip_alignment = false;
+ for (
+ media_block_count = 1 * 1024 * ( 1024 / SECTOR_SIZE );
+ media_block_count <= 128 * 1024 * 1024 * ( 1024 / SECTOR_SIZE );
+ media_block_count *= 2
+ ) {
+ sc = rtems_sparse_disk_create_and_register(
+ dev_name,
+ SECTOR_SIZE,
+ 64,
+ media_block_count,
+ 0
+ );
+ rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+
+ rv = msdos_format( dev_name, &rqdata );
+ rtems_test_assert( rv == 0 );
+
+ test_disk_params(
+ dev_name,
+ mount_dir,
+ SECTOR_SIZE,
+ SECTOR_SIZE * rqdata.sectors_per_cluster,
+ rqdata.sectors_per_cluster
+ );
+
+ rv = unlink( dev_name );
+ rtems_test_assert( rv == 0 );
+ }
+
/* FAT32 */
sc = rtems_sparse_disk_create_and_register(
diff --git a/testsuites/fstests/fsdosfssync01/init.c b/testsuites/fstests/fsdosfssync01/init.c
index 72481b29b8..fc38e2cfd9 100644
--- a/testsuites/fstests/fsdosfssync01/init.c
+++ b/testsuites/fstests/fsdosfssync01/init.c
@@ -89,6 +89,11 @@ static void check_file_size(const char *file, off_t size)
static void test(const char *rda, const char *mnt, const char *file)
{
+ static const msdos_format_request_param_t rqdata = {
+ .quick_format = true,
+ .sync_device = true
+ };
+
rtems_status_code sc;
int disk_fd;
int rv;
@@ -99,7 +104,7 @@ static void test(const char *rda, const char *mnt, const char *file)
disk_fd = open(rda, O_RDWR);
rtems_test_assert(disk_fd >= 0);
- rv = msdos_format(rda, NULL);
+ rv = msdos_format(rda, &rqdata);
rtems_test_assert(rv == 0);
rv = mount_and_make_target_path(
diff --git a/testsuites/libtests/termios02/init.c b/testsuites/libtests/termios02/init.c
index 7659314960..e944bca9af 100644
--- a/testsuites/libtests/termios02/init.c
+++ b/testsuites/libtests/termios02/init.c
@@ -47,56 +47,63 @@ rtems_task Init(
tcdrain(2);
rtems_test_assert( !sc );
- puts( "" );
+ puts( "" );
/***** TEST TCFLOW *****/
puts( "tcflow(stdin, TCOOFF) - ENOTSUP" );
+ errno = 0;
sc = tcflow( 0, TCOOFF );
rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( errno == ENOTSUP );
puts( "tcflow(stdin, TCOON) - ENOTSUP" );
+ errno = 0;
sc = tcflow( 0, TCOON );
rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( errno == ENOTSUP );
puts( "tcflow(stdin, TCIOFF) - ENOTSUP" );
+ errno = 0;
sc = tcflow( 0, TCIOFF );
rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( errno == ENOTSUP );
puts( "tcflow(stdin, TCION) - ENOTSUP" );
+ errno = 0;
sc = tcflow( 0, TCION );
rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( errno == ENOTSUP );
puts( "tcflow(stdin, 22) - EINVAL" );
+ errno = 0;
sc = tcflow( 0, 22 );
rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = EINVAL );
+ rtems_test_assert( errno == EINVAL );
- puts( "" );
+ puts( "" );
/***** TEST TCFLUSH *****/
- puts( "tcflush(stdin, TCIFLUSH) - ENOTSUP" );
+ puts( "tcflush(stdin, TCIFLUSH) - OK" );
+ errno = 0;
sc = tcflush( 0, TCIFLUSH );
- rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( errno == 0 );
- puts( "tcflush(stdin, TCOFLUSH) - ENOTSUP" );
+ puts( "tcflush(stdin, TCOFLUSH) - OK" );
sc = tcflush( 0, TCOFLUSH );
- rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( errno == 0 );
- puts( "tcflush(stdin, TCIOFLUSH) - ENOTSUP" );
+ puts( "tcflush(stdin, TCIOFLUSH) - OK" );
sc = tcflush( 0, TCIOFLUSH );
- rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = ENOTSUP );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( errno == 0 );
puts( "tcflush(stdin, 22) - EINVAL" );
+ errno = 0;
sc = tcflush( 0, 22 );
rtems_test_assert( sc == -1 );
- rtems_test_assert( errno = EINVAL );
+ rtems_test_assert( errno == EINVAL );
puts( "" );
diff --git a/testsuites/libtests/termios02/termios02.scn b/testsuites/libtests/termios02/termios02.scn
index 5e29a9cc65..9b38d69ba1 100644
--- a/testsuites/libtests/termios02/termios02.scn
+++ b/testsuites/libtests/termios02/termios02.scn
@@ -10,9 +10,9 @@ tcflow(stdin, TCIOFF) - ENOTSUP
tcflow(stdin, TCION) - ENOTSUP
tcflow(stdin, 22) - EINVAL
-tcflush(stdin, TCIFLUSH) - ENOTSUP
-tcflush(stdin, TCOFLUSH) - ENOTSUP
-tcflush(stdin, TCIOFLUSH) - ENOTSUP
+tcflush(stdin, TCIFLUSH) - OK
+tcflush(stdin, TCOFLUSH) - OK
+tcflush(stdin, TCIOFLUSH) - OK
tcflush(stdin, 22) - EINVAL
tcgetpgrp( 1 ) - OK