/* * COPYRIGHT (c) 1989-2012. * On-Line Applications Research Corporation (OAR). * * Modifications to support reference counting in the file system are * Copyright (c) 2012 embedded brains GmbH. * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license/LICENSE. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include "test_support.h" #include #include #include #include #include #include const char rtems_test_name[] = "DEVFS 3"; /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); rtems_task Init( rtems_task_argument argument ) { int status; devFS_node nodes [1]; devFS_data data = { .nodes = nodes, .count = 1 }; TEST_BEGIN(); memset(nodes, 0, sizeof(nodes)); puts( "Init - attempt to create /dir01 -- OK" ); status = mkdir( "/dir01", S_IRWXU ); rtems_test_assert( status == 0 ); puts( "Init - mount a new fs at /dir01 - expect EINVAL" ); status = mount( NULL, "/dir01", "devfs", RTEMS_FILESYSTEM_READ_WRITE, NULL ); rtems_test_assert( status == -1 ); rtems_test_assert( errno == EINVAL ); puts( "Init - mount a new fs at /dir01 - OK" ); status = mount( NULL, "/dir01", "devfs", RTEMS_FILESYSTEM_READ_WRITE, &data ); rtems_test_assert( status == 0 ); puts( "Init - make file /dir01/dev -- expect ENOTSUP" ); status = creat( "/dir01/dev", S_IRWXU ); rtems_test_assert( status == -1 ); rtems_test_assert( errno == ENOTSUP ); puts( "Init - unmount fs at /dir01 - OK" ); status = unmount( "/dir01" ); rtems_test_assert( status == 0 ); status = rmdir( "/dir01" ); rtems_test_assert( status == 0 ); TEST_END(); rtems_test_exit(0); } /* configuration information */ #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4 #define CONFIGURE_MAXIMUM_TASKS 1 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION #define CONFIGURE_RTEMS_INIT_TASKS_TABLE #define CONFIGURE_FILESYSTEM_DEVFS #define CONFIGURE_INIT #include /* end of file */