File indexing completed on 2025-05-11 08:24:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifdef HAVE_CONFIG_H
0030 #include "config.h"
0031 #endif
0032
0033 #include <tmacros.h>
0034 #include "test_support.h"
0035 #include <errno.h>
0036 #include <rtems/libio_.h>
0037 #include <rtems/libcsupport.h>
0038 #include <rtems/malloc.h>
0039
0040 const char rtems_test_name[] = "SPMOUNTMGR 1";
0041
0042
0043 rtems_task Init(rtems_task_argument argument);
0044 int fs_mount(
0045 rtems_filesystem_mount_table_entry_t *mt_entry,
0046 const void *data
0047 );
0048
0049 int fs_mount(
0050 rtems_filesystem_mount_table_entry_t *mt_entry,
0051 const void *data
0052 )
0053 {
0054 return 0;
0055 }
0056
0057 rtems_task Init(
0058 rtems_task_argument argument
0059 )
0060 {
0061 int status = 0;
0062 void *greedy;
0063
0064 TEST_BEGIN();
0065
0066 puts( "Init - allocating most of heap -- OK" );
0067 greedy = rtems_heap_greedy_allocate( NULL, 0 );
0068
0069 puts( "Init - attempt to register filesystem fs - expect ENOMEM" );
0070 status = rtems_filesystem_register( "fs", fs_mount );
0071 rtems_test_assert( status == -1 );
0072 rtems_test_assert( errno == ENOMEM );
0073
0074 puts( "Init - freeing allocated memory -- OK" );
0075 rtems_heap_greedy_free( greedy );
0076
0077 puts( "Init - register filesystem fs -- OK" );
0078 status = rtems_filesystem_register( "fs", fs_mount );
0079 rtems_test_assert( status == 0 );
0080
0081 puts( "Init - attempt to make target(NULL) and mount - expect EINVAL" );
0082 status = mount_and_make_target_path(
0083 NULL,
0084 NULL,
0085 "fs",
0086 0,
0087 NULL );
0088 rtems_test_assert( status == -1 );
0089 rtems_test_assert( errno == EINVAL );
0090
0091 puts( "Init - attempt to make target and mount - expect EINVAL" );
0092 status = mount_and_make_target_path(
0093 NULL,
0094 "/tmp",
0095 "fs",
0096 2,
0097 NULL );
0098 rtems_test_assert( status == -1 );
0099 rtems_test_assert( errno == EINVAL );
0100
0101 puts( "Init - register filesystem fs - expect EINVAL" );
0102 status = rtems_filesystem_register( "fs", fs_mount );
0103 rtems_test_assert( status == -1 );
0104 rtems_test_assert( errno == EINVAL );
0105
0106 puts( "Init - register filesystem bfs -- OK" );
0107 status = rtems_filesystem_register( "bfs", fs_mount );
0108 rtems_test_assert( status == 0 );
0109
0110 puts( "Init - register filesystem bfs - expect EINVAL" );
0111 status = rtems_filesystem_register( "bfs", fs_mount );
0112 rtems_test_assert( status == -1 );
0113 rtems_test_assert( errno == EINVAL );
0114
0115 puts( "Init - attempt to unregister with bad args - expect EINVAL" );
0116 status = rtems_filesystem_unregister( NULL );
0117 rtems_test_assert( status == -1 );
0118 rtems_test_assert( errno == EINVAL );
0119
0120 puts( "Init - attempt to unregister fs -- OK" );
0121 status = rtems_filesystem_unregister( "fs" );
0122 rtems_test_assert( status == 0 );
0123
0124 puts( "Init - attempt to unregister fs again - expect ENOENT" );
0125 status = rtems_filesystem_unregister( "fs" );
0126 rtems_test_assert( status == -1 );
0127 rtems_test_assert( errno == ENOENT );
0128
0129 puts( "Init - attempt to unregister bfs -- OK" );
0130 status = rtems_filesystem_unregister( "bfs" );
0131 rtems_test_assert( status == 0 );
0132
0133 puts( "Init - attempt to unregister bfs again - expect ENOENT" );
0134 status = rtems_filesystem_unregister( "bfs" );
0135 rtems_test_assert( status == -1 );
0136 rtems_test_assert( errno == ENOENT );
0137
0138 TEST_END();
0139 rtems_test_exit(0);
0140 }
0141
0142
0143
0144 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0145 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0146
0147 #define CONFIGURE_MAXIMUM_TASKS 1
0148 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0149
0150 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0151
0152 #define CONFIGURE_INIT
0153
0154 #include <rtems/confdefs.h>
0155