Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:30

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /*
0004  * Copyright (c) 2017 embedded brains GmbH & Co. KG
0005  *
0006  * Redistribution and use in source and binary forms, with or without
0007  * modification, are permitted provided that the following conditions
0008  * are met:
0009  * 1. Redistributions of source code must retain the above copyright
0010  *    notice, this list of conditions and the following disclaimer.
0011  * 2. Redistributions in binary form must reproduce the above copyright
0012  *    notice, this list of conditions and the following disclaimer in the
0013  *    documentation and/or other materials provided with the distribution.
0014  *
0015  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0016  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0017  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0018  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0019  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0020  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0021  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0022  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0023  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0024  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0025  * POSSIBILITY OF SUCH DAMAGE.
0026  */
0027 
0028 #ifdef HAVE_CONFIG_H
0029 #include "config.h"
0030 #endif
0031 
0032 #include <sys/stat.h>
0033 #include <fcntl.h>
0034 #include <stdlib.h>
0035 #include <unistd.h>
0036 
0037 #include <rtems/dosfs.h>
0038 #include <rtems/ramdisk.h>
0039 
0040 #include "tmacros.h"
0041 
0042 const char rtems_test_name[] = "FSDOSFSNAME 2";
0043 
0044 #define RAMDISK_PATH "/dev/rda"
0045 
0046 #define MOUNT_PATH "/mnt"
0047 
0048 static const char * const dir_paths[] = {
0049   MOUNT_PATH "/cpukit",
0050   MOUNT_PATH "/cpukit/or1k-exception-frame-print.c",
0051   MOUNT_PATH "/cpukit/preinstall.am",
0052   MOUNT_PATH "/cpukit/Makefile.in",
0053   MOUNT_PATH "/cpukit/Makefile.am",
0054   MOUNT_PATH "/cpukit/rtems",
0055   MOUNT_PATH "/cpukit/or1k-context-switch.S",
0056   MOUNT_PATH "/cpukit/or1k-exception-default.c",
0057   MOUNT_PATH "/cpukit/or1k-context-initialize.c",
0058   MOUNT_PATH "/cpukit/or1k-context-volatile-clobber.S",
0059   MOUNT_PATH "/cpukit/or1k-context-validate.S",
0060   MOUNT_PATH "/cpukit/or1k-exception-handler-low.S",
0061   MOUNT_PATH "/cpukit/cpu.c"
0062 };
0063 
0064 static void test(void)
0065 {
0066   int rv;
0067   size_t i;
0068 
0069   rv = msdos_format(RAMDISK_PATH, NULL);
0070   rtems_test_assert(rv == 0);
0071 
0072   rv = mount_and_make_target_path(
0073     RAMDISK_PATH,
0074     MOUNT_PATH,
0075     RTEMS_FILESYSTEM_TYPE_DOSFS,
0076     RTEMS_FILESYSTEM_READ_WRITE,
0077     NULL
0078   );
0079   rtems_test_assert(rv == 0);
0080 
0081   for (i = 0; i < RTEMS_ARRAY_SIZE(dir_paths); ++i) {
0082     rv = mkdir(dir_paths[i], S_IRWXU | S_IRWXG | S_IRWXO);
0083     rtems_test_assert(rv == 0);
0084   }
0085 
0086   for (i = RTEMS_ARRAY_SIZE(dir_paths); i > 0; --i) {
0087     rv = unlink(dir_paths[i - 1]);
0088     rtems_test_assert(rv == 0);
0089   }
0090 }
0091 
0092 static void Init(rtems_task_argument arg)
0093 {
0094   TEST_BEGIN();
0095 
0096   test();
0097 
0098   TEST_END();
0099   rtems_test_exit(0);
0100 }
0101 
0102 rtems_ramdisk_config rtems_ramdisk_configuration[] = {
0103   { .block_size = 512, .block_num = 64 }
0104 };
0105 
0106 size_t rtems_ramdisk_configuration_size = RTEMS_ARRAY_SIZE(rtems_ramdisk_configuration);
0107 
0108 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0109 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0110 #define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
0111 
0112 #define CONFIGURE_APPLICATION_EXTRA_DRIVERS RAMDISK_DRIVER_TABLE_ENTRY
0113 
0114 #define CONFIGURE_FILESYSTEM_DOSFS
0115 
0116 #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 32
0117 
0118 #define CONFIGURE_BDBUF_CACHE_MEMORY_SIZE 512
0119 #define CONFIGURE_BDBUF_BUFFER_MIN_SIZE 512
0120 #define CONFIGURE_BDBUF_BUFFER_MAX_SIZE 512
0121 
0122 #define CONFIGURE_MAXIMUM_TASKS 1
0123 #define CONFIGURE_MAXIMUM_SEMAPHORES 1
0124 
0125 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0126 
0127 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0128 
0129 #define CONFIGURE_INIT
0130 
0131 #include <rtems/confdefs.h>