File indexing completed on 2025-05-11 08:24:31
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 <stdio.h>
0034 #include <errno.h>
0035 #include <fcntl.h>
0036 #include <string.h>
0037 #include <unistd.h>
0038 #include <stdlib.h>
0039 #include <sys/stat.h>
0040 #include <sys/types.h>
0041
0042 #include <rtems.h>
0043 #include <rtems/userenv.h>
0044
0045 #include "fstest_support.h"
0046 #include "fs_config.h"
0047
0048 #include "fstest.h"
0049 #include <tmacros.h>
0050
0051 void *volatile prevent_compiler_optimizations;
0052
0053 static int fs_test_failed = 0;
0054 extern const RTEMS_TEST_STATE rtems_test_state;
0055
0056 void fs_test_notify_failure(void)
0057 {
0058 fs_test_failed = 1;
0059 }
0060
0061
0062
0063 static void break_out_of_chroot(void)
0064 {
0065 int rv;
0066 struct stat st;
0067
0068 rtems_libio_use_global_env();
0069
0070
0071 rv = stat(".", &st);
0072 rtems_test_assert(rv == 0);
0073
0074
0075 prevent_compiler_optimizations = malloc(1);
0076 free(prevent_compiler_optimizations);
0077 }
0078
0079
0080
0081
0082
0083 rtems_task Init(
0084 rtems_task_argument ignored)
0085 {
0086 int rc=0;
0087
0088 rtems_test_begin(rtems_test_name, rtems_test_state);
0089
0090 puts( "Initializing filesystem " FILESYSTEM );
0091 test_initialize_filesystem();
0092
0093 rc=chroot(BASE_FOR_TEST);
0094 rtems_test_assert(rc==0);
0095
0096 test();
0097
0098 break_out_of_chroot();
0099
0100 puts( "\n\nShutting down filesystem " FILESYSTEM );
0101 test_shutdown_filesystem();
0102
0103 if (!fs_test_failed) rtems_test_end(rtems_test_name);
0104 rtems_test_exit(0);
0105 }