annotate packages/fs/yaffs/current/tests/yaffs1.c @ 428:a386ed10401a ecos

Drop in eCos bridge work
author Ross Younger <wry@ecoscentric.com>
date Fri, 14 May 2010 17:01:32 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
1 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
2 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
3 // yaffs1.c
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
4 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
5 // Test fileio system
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
6 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
7 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
8 // ####ECOSGPLCOPYRIGHTBEGIN####
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
9 // -------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
10 // This file is part of eCos, the Embedded Configurable Operating System.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
12 // Copyright (C) 2004, 2006, 2007 eCosCentric Limited
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
13 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
14 // eCos is free software; you can redistribute it and/or modify it under
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
15 // the terms of the GNU General Public License as published by the Free
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
16 // Software Foundation; either version 2 or (at your option) any later
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
17 // version.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
18 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
19 // eCos is distributed in the hope that it will be useful, but WITHOUT
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
20 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
21 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
22 // for more details.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
23 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
24 // You should have received a copy of the GNU General Public License
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
25 // along with eCos; if not, write to the Free Software Foundation, Inc.,
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
26 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
27 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
28 // As a special exception, if other files instantiate templates or use
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
29 // macros or inline functions from this file, or you compile this file
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
30 // and link it with other works to produce a work based on this file,
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
31 // this file does not by itself cause the resulting work to be covered by
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
32 // the GNU General Public License. However the source code for this file
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
33 // must still be made available in accordance with section (3) of the GNU
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
34 // General Public License v2.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
35 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
36 // This exception does not invalidate any other reasons why a work based
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
37 // on this file might be covered by the GNU General Public License.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
38 // -------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
39 // ####ECOSGPLCOPYRIGHTEND####
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
40 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
41 //#####DESCRIPTIONBEGIN####
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
42 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
43 // Author(s): nickg
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
44 // Contributors: nickg
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
45 // Date: 2000-05-25
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
46 // Purpose: Test fileio system
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
47 // Description: This test uses the testfs to check out the initialization
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
48 // and basic operation of the fileio system
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
49 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
50 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
51 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
52 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
53 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
54 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
55 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
56 //####DESCRIPTIONEND####
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
57 //
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
58 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
59
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
60 #include <pkgconf/system.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
61
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
62 #ifdef CYGPKG_KERNEL
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
63
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
64 #include <pkgconf/hal.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
65 #include <pkgconf/kernel.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
66 #include <pkgconf/io_fileio.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
67
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
68 #include CYGDAT_DEVS_DISK_CFG // testing config defines
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
69
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
70 #include <cyg/kernel/ktypes.h> // base kernel types
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
71 #include <cyg/infra/cyg_trac.h> // tracing macros
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
72 #include <cyg/infra/cyg_ass.h> // assertion macros
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
73
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
74 #include <unistd.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
75 #include <fcntl.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
76 #include <sys/stat.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
77 #include <errno.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
78 #include <string.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
79 #include <dirent.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
80
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
81 #include <cyg/fileio/fileio.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
82
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
83 #include <cyg/infra/testcase.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
84 #include <cyg/infra/diag.h> // HAL polled output
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
85
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
86 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
87 // Config options
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
88
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
89 #define TEST_DEVICE CYGDAT_DEVS_DISK_TEST_DEVICE
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
90
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
91 #define TEST_MOUNTPOINT CYGDAT_DEVS_DISK_TEST_MOUNTPOINT
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
92
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
93 #define TEST_DIRECTORY CYGDAT_DEVS_DISK_TEST_DIRECTORY
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
94
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
95 #define TEST_FSTYPE "yaffs"
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
96
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
97 #ifdef CYGDAT_DEVS_DISK_TEST_MOUNTPOINT2
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
98
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
99 #define TEST_DEVICE2 CYGDAT_DEVS_DISK_TEST_DEVICE2
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
100
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
101 #define TEST_MOUNTPOINT2 CYGDAT_DEVS_DISK_TEST_MOUNTPOINT2
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
102
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
103 #define TEST_DIRECTORY2 CYGDAT_DEVS_DISK_TEST_DIRECTORY2
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
104
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
105 #define TEST_FSTYPE2 "yaffs"
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
106
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
107 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
108
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
109 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
110
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
111 #define SHOW_RESULT( _fn, _res ) \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
112 { \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
113 diag_printf("<FAIL>: " #_fn "() returned %ld %s\n", (long)_res, _res<0?strerror(errno):""); \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
114 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
115
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
116 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
117
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
118 #define IOSIZE 100
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
119
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
120 #define LONGNAME1 "long_file_name_that_should_take_up_more_than_one_directory_entry_1"
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
121 #define LONGNAME2 "long_file_name_that_should_take_up_more_than_one_directory_entry_2"
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
122
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
123
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
124 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
125
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
126 #ifndef CYGPKG_LIBC_STRING
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
127
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
128 char *strcat( char *s1, const char *s2 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
129 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
130 char *s = s1;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
131 while( *s1 ) s1++;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
132 while( (*s1++ = *s2++) != 0);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
133 return s;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
134 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
135
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
136 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
137
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
138 __externC int
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
139 rename( const char * /* oldpath */, const char * /* newpath */ ) __THROW;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
140
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
141 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
142
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
143 static void listdir( char *name, int statp, int numexpected, int *numgot )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
144 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
145 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
146 DIR *dirp;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
147 int num=0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
148
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
149 diag_printf("<INFO>: reading directory %s\n",name);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
150
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
151 // diag_printf("<INFO>: opendir(%s)\n",name);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
152 dirp = opendir( name );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
153 if( dirp == NULL ) SHOW_RESULT( opendir, -1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
154
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
155 for(;;)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
156 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
157 struct dirent *entry = readdir( dirp );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
158
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
159 if( entry == NULL )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
160 break;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
161 num++;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
162 diag_printf("<INFO>: entry %14s",entry->d_name);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
163 #ifdef CYGPKG_FS_FAT_RET_DIRENT_DTYPE
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
164 diag_printf(" d_type %2x", entry->d_type);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
165 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
166 if( statp )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
167 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
168 char fullname[PATH_MAX];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
169 struct stat sbuf;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
170
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
171 if( name[0] )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
172 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
173 strcpy(fullname, name );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
174 if( !(name[0] == '/' && name[1] == 0 ) )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
175 strcat(fullname, "/" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
176 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
177 else fullname[0] = 0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
178
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
179 strcat(fullname, entry->d_name );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
180
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
181 err = stat( fullname, &sbuf );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
182 if( err < 0 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
183 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
184 if( errno == ENOSYS )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
185 diag_printf(" <no status available>");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
186 else SHOW_RESULT( stat, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
187 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
188 else
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
189 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
190 diag_printf(" [mode %08x ino %08x nlink %d size %ld]",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
191 sbuf.st_mode,sbuf.st_ino,sbuf.st_nlink,sbuf.st_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
192 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
193 #ifdef CYGPKG_FS_FAT_RET_DIRENT_DTYPE
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
194 if ((entry->d_type & S_IFMT) != (sbuf.st_mode & S_IFMT))
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
195 CYG_TEST_FAIL("File mode's don't match between dirent and stat");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
196 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
197 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
198
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
199 diag_printf("\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
200 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
201
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
202 // diag_printf("<INFO>: closedir(%s)\n",name);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
203 err = closedir( dirp );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
204 if( err < 0 ) SHOW_RESULT( stat, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
205 if (numexpected >= 0 && num != numexpected)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
206 CYG_TEST_FAIL("Wrong number of dir entries\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
207 if ( numgot != NULL )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
208 *numgot = num;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
209 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
210
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
211 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
212
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
213 static void createfile( char *name, size_t size )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
214 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
215 char buf[IOSIZE];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
216 int fd;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
217 ssize_t wrote;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
218 int i;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
219 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
220
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
221 diag_printf("<INFO>: create file %s size %zd\n",name,size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
222
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
223 err = access( name, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
224 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
225
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
226 for( i = 0; i < IOSIZE; i++ ) buf[i] = i%256;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
227
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
228 fd = open( name, O_WRONLY|O_CREAT );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
229 if( fd < 0 ) SHOW_RESULT( open, fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
230
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
231 while( size > 0 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
232 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
233 ssize_t len = size;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
234 if ( len > IOSIZE ) len = IOSIZE;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
235
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
236 wrote = write( fd, buf, len );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
237 if( wrote != len ) SHOW_RESULT( write, wrote );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
238
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
239 size -= wrote;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
240 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
241
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
242 err = close( fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
243 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
244 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
245
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
246 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
247
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
248 #if 0
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
249 static void maxfile( char *name )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
250 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
251 char buf[IOSIZE];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
252 int fd;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
253 ssize_t wrote;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
254 int i;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
255 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
256 size_t size = 0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
257 size_t prevsize = 0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
258
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
259 diag_printf("<INFO>: create maximal file %s\n",name);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
260 diag_printf("<INFO>: This may take a few minutes\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
261
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
262 err = access( name, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
263 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
264
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
265 for( i = 0; i < IOSIZE; i++ ) buf[i] = i%256;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
266
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
267 fd = open( name, O_WRONLY|O_CREAT );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
268 if( fd < 0 ) SHOW_RESULT( open, fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
269
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
270 do
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
271 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
272 wrote = write( fd, buf, IOSIZE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
273 //if( wrote < 0 ) SHOW_RESULT( write, wrote );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
274
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
275 if( wrote >= 0 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
276 size += wrote;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
277
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
278 if( (size-prevsize) > 100000 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
279 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
280 diag_printf("<INFO>: size = %zd\n", size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
281 prevsize = size;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
282 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
283
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
284 } while( wrote == IOSIZE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
285
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
286 diag_printf("<INFO>: file size == %zd\n",size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
287
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
288 err = close( fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
289 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
290 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
291 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
292
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
293 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
294
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
295 static void checkfile( char *name )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
296 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
297 char buf[IOSIZE];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
298 int fd;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
299 ssize_t done;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
300 int i;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
301 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
302 off_t pos = 0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
303
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
304 diag_printf("<INFO>: check file %s\n",name);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
305
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
306 err = access( name, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
307 if( err != 0 ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
308
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
309 fd = open( name, O_RDONLY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
310 if( fd < 0 ) SHOW_RESULT( open, fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
311
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
312 for(;;)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
313 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
314 done = read( fd, buf, IOSIZE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
315 if( done < 0 ) SHOW_RESULT( read, done );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
316
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
317 if( done == 0 ) break;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
318
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
319 for( i = 0; i < done; i++ )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
320 if( buf[i] != i%256 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
321 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
322 diag_printf("buf[%ld+%d](%02x) != %02x\n",pos,i,buf[i],i%256);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
323 CYG_TEST_FAIL("Data read not equal to data written\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
324 for(;;);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
325 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
326
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
327 pos += done;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
328 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
329
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
330 err = close( fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
331 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
332 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
333
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
334 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
335
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
336 static void copyfile( char *name2, char *name1 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
337 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
338
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
339 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
340 char buf[IOSIZE];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
341 int fd1, fd2;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
342 ssize_t done, wrote;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
343
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
344 diag_printf("<INFO>: copy file %s -> %s\n",name2,name1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
345
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
346 err = access( name1, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
347 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
348
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
349 err = access( name2, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
350 if( err != 0 ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
351
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
352 fd1 = open( name1, O_WRONLY|O_CREAT );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
353 if( fd1 < 0 ) SHOW_RESULT( open, fd1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
354
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
355 fd2 = open( name2, O_RDONLY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
356 if( fd2 < 0 ) SHOW_RESULT( open, fd2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
357
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
358 for(;;)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
359 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
360 done = read( fd2, buf, IOSIZE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
361 if( done < 0 ) SHOW_RESULT( read, done );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
362
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
363 if( done == 0 ) break;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
364
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
365 wrote = write( fd1, buf, done );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
366 if( wrote != done ) SHOW_RESULT( write, wrote );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
367
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
368 if( wrote != done ) break;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
369 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
370
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
371 err = close( fd1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
372 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
373
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
374 err = close( fd2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
375 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
376
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
377 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
378
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
379 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
380
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
381 static void comparefiles( char *name2, char *name1 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
382 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
383 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
384 char buf1[IOSIZE];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
385 char buf2[IOSIZE];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
386 int fd1, fd2;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
387 ssize_t done1, done2;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
388 int i;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
389
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
390 diag_printf("<INFO>: compare files %s == %s\n",name2,name1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
391
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
392 err = access( name1, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
393 if( err != 0 ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
394
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
395 err = access( name1, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
396 if( err != 0 ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
397
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
398 fd1 = open( name1, O_RDONLY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
399 if( fd1 < 0 ) SHOW_RESULT( open, fd1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
400
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
401 fd2 = open( name2, O_RDONLY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
402 if( fd2 < 0 ) SHOW_RESULT( open, fd2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
403
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
404 for(;;)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
405 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
406 done1 = read( fd1, buf1, IOSIZE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
407 if( done1 < 0 ) SHOW_RESULT( read, done1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
408
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
409 done2 = read( fd2, buf2, IOSIZE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
410 if( done2 < 0 ) SHOW_RESULT( read, done2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
411
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
412 if( done1 != done2 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
413 diag_printf("Files different sizes\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
414
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
415 if( done1 == 0 ) break;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
416
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
417 for( i = 0; i < done1; i++ )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
418 if( buf1[i] != buf2[i] )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
419 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
420 diag_printf("buf1[%d](%02x) != buf1[%d](%02x)\n",i,buf1[i],i,buf2[i]);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
421 CYG_TEST_FAIL("Data in files not equal\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
422 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
423 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
424
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
425 err = close( fd1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
426 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
427
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
428 err = close( fd2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
429 if( err < 0 ) SHOW_RESULT( close, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
430
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
431 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
432
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
433 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
434
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
435 void checkcwd( const char *cwd )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
436 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
437 static char cwdbuf[PATH_MAX];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
438 char *ret;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
439
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
440 ret = getcwd( cwdbuf, sizeof(cwdbuf));
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
441 if( ret == NULL ) SHOW_RESULT( getcwd, ret );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
442
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
443 if( strcmp( cwdbuf, cwd ) != 0 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
444 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
445 diag_printf( "cwdbuf %s cwd %s\n",cwdbuf, cwd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
446 CYG_TEST_FAIL( "Current directory mismatch");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
447 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
448 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
449
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
450 //==========================================================================
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
451 // main
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
452
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
453 void fileio1_main( CYG_ADDRESS id )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
454 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
455 int err;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
456 int existingdirents=-1;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
457 cyg_bool mp2 = false;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
458 int fd;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
459 #if defined(CYGSEM_FILEIO_BLOCK_USAGE)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
460 struct cyg_fs_block_usage usage;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
461 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
462
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
463 char dirname[64];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
464 char filename1[64];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
465 char filename2[64];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
466
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
467 #define NEW_FILENAME( fn, f ) \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
468 { \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
469 fn[0]=0; \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
470 strcat(fn, dirname); \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
471 strcat(fn, "/"); \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
472 strcat(fn,f); \
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
473 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
474
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
475 #define NEW_FILENAME1( f ) NEW_FILENAME( filename1, f )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
476 #define NEW_FILENAME2( f ) NEW_FILENAME( filename2, f )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
477
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
478 CYG_TEST_INIT();
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
479
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
480 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
481
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
482 err = mount( TEST_DEVICE, TEST_MOUNTPOINT, TEST_FSTYPE );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
483 if( err < 0 ) {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
484 SHOW_RESULT( mount, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
485 CYG_TEST_FAIL_FINISH("yaffs1");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
486 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
487
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
488 err = access( TEST_MOUNTPOINT TEST_DIRECTORY, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
489 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
490
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
491 if( err < 0 && errno == EACCES )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
492 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
493 diag_printf("<INFO>: create %s\n",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
494 TEST_MOUNTPOINT TEST_DIRECTORY);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
495 err = mkdir( TEST_MOUNTPOINT TEST_DIRECTORY, 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
496 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
497 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
498
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
499 err = chdir( TEST_MOUNTPOINT TEST_DIRECTORY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
500 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
501
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
502 checkcwd( TEST_MOUNTPOINT TEST_DIRECTORY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
503
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
504 listdir( TEST_MOUNTPOINT TEST_DIRECTORY, true, -1, &existingdirents );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
505
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
506 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
507 #if defined(CYGSEM_FILEIO_BLOCK_USAGE)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
508 err = cyg_fs_getinfo(TEST_MOUNTPOINT, FS_INFO_BLOCK_USAGE,
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
509 &usage, sizeof(usage));
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
510 if( err < 0 ) SHOW_RESULT( cyg_fs_getinfo, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
511 diag_printf("<INFO>: total size: %6lld blocks, %10lld bytes\n",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
512 usage.total_blocks, usage.total_blocks * usage.block_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
513 diag_printf("<INFO>: free size: %6lld blocks, %10lld bytes\n",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
514 usage.free_blocks, usage.free_blocks * usage.block_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
515 diag_printf("<INFO>: block size: %6u bytes\n", usage.block_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
516 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
517 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
518
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
519 dirname[0] = 0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
520 strcat(dirname, TEST_MOUNTPOINT );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
521 strcat(dirname, TEST_DIRECTORY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
522
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
523 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
524
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
525 createfile( "foo", 20257 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
526 checkfile( "foo" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
527 copyfile( "foo", "fee");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
528 checkfile( "fee" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
529 comparefiles( "foo", "fee" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
530 diag_printf("<INFO>: mkdir bar\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
531 err = mkdir( "bar", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
532 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
533
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
534 listdir( dirname , true, existingdirents+3, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
535
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
536 copyfile( "fee", "bar/fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
537 checkfile( "bar/fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
538 comparefiles( "fee", "bar/fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
539 diag_printf("<INFO>: cd bar\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
540 err = chdir( "bar" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
541 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
542
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
543 // Create a further subdirectory and immediately remove it
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
544 // This should make no overall change, but may expose later
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
545 // node cache reference counting issues.
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
546 diag_printf("<INFO>: mkdir delme\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
547 err = mkdir( "delme", 0);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
548 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
549 diag_printf("<INFO>: cd delme\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
550 err = chdir( "delme");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
551 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
552 diag_printf("<INFO>: cd ..\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
553 err = chdir( ".." );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
554 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
555 diag_printf("<INFO>: rmdir delme\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
556 err = rmdir( "delme" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
557 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
558 NEW_FILENAME1( "bar/delme1" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
559 diag_printf("<INFO>: mkdir %s\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
560 err = mkdir( filename1, 0);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
561 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
562 diag_printf("<INFO>: rmdir %s\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
563 err = rmdir( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
564 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
565
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
566
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
567 NEW_FILENAME1( "bar" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
568 checkcwd( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
569
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
570 diag_printf("<INFO>: rename ../foo bundy\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
571 err = rename( "../foo", "bundy" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
572 if( err < 0 ) SHOW_RESULT( rename, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
573
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
574 listdir( dirname, true, existingdirents+2, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
575 listdir( "." , true, 4, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
576
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
577 checkfile( "../bar/bundy" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
578 comparefiles("../fee", "bundy" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
579
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
580 #if defined(CYGSEM_FILEIO_BLOCK_USAGE)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
581 err = cyg_fs_getinfo(TEST_MOUNTPOINT, FS_INFO_BLOCK_USAGE,
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
582 &usage, sizeof(usage));
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
583 if( err < 0 ) SHOW_RESULT( cyg_fs_getinfo, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
584 diag_printf("<INFO>: total size: %6lld blocks, %10lld bytes\n",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
585 usage.total_blocks, usage.total_blocks * usage.block_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
586 diag_printf("<INFO>: free size: %6lld blocks, %10lld bytes\n",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
587 usage.free_blocks, usage.free_blocks * usage.block_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
588 diag_printf("<INFO>: block size: %6u bytes\n", usage.block_size);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
589 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
590 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
591 // Check for some common error cases
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
592
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
593
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
594 // First make some directories
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
595 diag_printf("<INFO>: mkdir doo\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
596 err = mkdir( "doo", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
597 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
598
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
599 diag_printf("<INFO>: mkdir fie\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
600 err = mkdir( "fie", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
601 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
602
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
603 diag_printf("<INFO>: mkdir fie/foe\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
604 err = mkdir( "fie/foe", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
605 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
606
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
607
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
608 diag_printf("<INFO>: rename fum doo -- should fail\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
609 err = rename( "fum", "doo" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
610 if( err < 0 && errno != EISDIR ) SHOW_RESULT( rename, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
611
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
612 diag_printf("<INFO>: rename doo fum -- should fail\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
613 err = rename( "doo", "fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
614 if( err < 0 && errno != ENOTDIR ) SHOW_RESULT( rename, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
615
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
616 diag_printf("<INFO>: rename doo fie -- should fail\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
617 err = rename( "doo", "fie" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
618 // FATFS returns ENOTEMPTY, since fie has foe within it
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
619 if( err < 0 && errno != EIO ) SHOW_RESULT( rename, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
620
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
621 diag_printf("<INFO>: open floop for reading -- should fail\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
622 err = open( "floop", O_RDONLY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
623 if( err < 0 && errno != ENOENT ) SHOW_RESULT( open, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
624
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
625 NEW_FILENAME1( "x/y" )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
626 diag_printf("<INFO>: rename fum %s -- should fail\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
627 err = rename( "fum", filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
628 if( err < 0 && errno != ENOENT ) SHOW_RESULT( rename, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
629
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
630 diag_printf("<INFO>: rename fum fum -- should succeed\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
631 err = rename( "fum", "fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
632 if( err < 0 ) SHOW_RESULT( rename, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
633
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
634 diag_printf("<INFO>: unlink fee -- should fail\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
635 err = unlink( "fee" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
636 if( err < 0 && errno != ENOENT ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
637
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
638 NEW_FILENAME1( "bar" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
639 diag_printf("<INFO>: rmdir %s -- should fail\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
640 err = rmdir( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
641 // FATFS gives EBUSY here, since bar is the current dir
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
642 if( err < 0 && errno != ENOTEMPTY ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
643
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
644 diag_printf("<INFO>: unlink %s -- should fail\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
645 err = unlink( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
646 // FATFS returns EBUSY here, also because bar is current dir
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
647 if( err < 0 && errno != EISDIR ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
648
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
649 NEW_FILENAME1( "bar/fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
650 diag_printf("<INFO>: rmdir %s -- should fail\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
651 err = rmdir( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
652 if( err < 0 && errno != ENOTDIR ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
653
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
654 diag_printf("<INFO>: mkdir %s -- should fail\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
655 err = mkdir( filename1, 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
656 if( err < 0 && errno != EEXIST ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
657
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
658 diag_printf("<INFO>: open bundy exclusive -- should fail\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
659 fd = open( "bundy", O_WRONLY|O_CREAT|O_EXCL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
660 if( fd < 0 && errno != EEXIST ) SHOW_RESULT( open, fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
661
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
662 diag_printf("<INFO>: open %s -- should fail\n",dirname);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
663 fd = open( dirname, O_WRONLY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
664 if( fd < 0 && errno != EISDIR ) SHOW_RESULT( open, fd );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
665
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
666
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
667 listdir( dirname, true, existingdirents+2, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
668 listdir( "." , true, 6, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
669
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
670 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
671
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
672 diag_printf("<INFO>: rename fie doo\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
673 err = rename( "fie", "doo" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
674 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
675
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
676 diag_printf("<INFO>: rmdir doo/foe\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
677 err = rmdir("doo/foe");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
678 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
679
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
680 diag_printf("<INFO>: rmdir doo\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
681 err = rmdir("doo");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
682 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
683
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
684 diag_printf("<INFO>: unlink ../fee\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
685 err = unlink( "../fee" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
686 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
687
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
688 diag_printf("<INFO>: unlink fum\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
689 err = unlink( "fum" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
690 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
691
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
692 diag_printf("<INFO>: unlink ../bar/bundy\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
693 err = unlink( "../bar/bundy" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
694 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
695
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
696 diag_printf("<INFO>: cd ..\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
697 err = chdir( ".." );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
698 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
699
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
700 checkcwd( dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
701
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
702 diag_printf("<INFO>: rmdir bar\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
703 err = rmdir( "bar" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
704 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
705
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
706 listdir( dirname, false, existingdirents, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
707
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
708 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
709
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
710 #ifdef TEST_MOUNTPOINT2
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
711 diag_printf("<INFO>: mount %s\n", TEST_MOUNTPOINT2);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
712 err = mount( TEST_DEVICE2, TEST_MOUNTPOINT2, TEST_FSTYPE2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
713
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
714 if( err == 0 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
715 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
716 mp2 = true;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
717 diag_printf("<INFO>: mount %s succeeded\n", TEST_MOUNTPOINT2);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
718 err = access( TEST_MOUNTPOINT2 TEST_DIRECTORY2, F_OK );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
719 if( err < 0 && errno != EACCES ) SHOW_RESULT( access, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
720
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
721 if( err < 0 && errno == EACCES )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
722 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
723 diag_printf("<INFO>: create %s\n",
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
724 TEST_MOUNTPOINT2 TEST_DIRECTORY2);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
725 err = mkdir( TEST_MOUNTPOINT2 TEST_DIRECTORY2, 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
726 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
727 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
728
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
729 err = chdir( TEST_MOUNTPOINT2 TEST_DIRECTORY2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
730 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
731
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
732 checkcwd( TEST_MOUNTPOINT2 TEST_DIRECTORY2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
733
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
734 dirname[0] = 0;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
735 strcat(dirname, TEST_MOUNTPOINT2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
736 strcat(dirname, TEST_DIRECTORY2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
737
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
738 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
739 else
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
740 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
741 mp2 = false;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
742 diag_printf("<INFO>: mount %s failed, ", TEST_MOUNTPOINT2);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
743 diag_printf("using %s instead\n", dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
744 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
745
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
746 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
747
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
748 listdir( dirname , true, -1, &existingdirents);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
749
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
750 NEW_FILENAME1( "tinky" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
751 NEW_FILENAME2( "laalaa" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
752
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
753 createfile( filename1, 4567 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
754 copyfile( filename1, filename2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
755 checkfile( filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
756 checkfile( filename2);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
757 comparefiles( filename1, filename2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
758
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
759 diag_printf("<INFO>: cd %s\n",dirname);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
760 err = chdir( dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
761 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
762
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
763 checkcwd( dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
764
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
765 diag_printf("<INFO>: mkdir noonoo\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
766 err = mkdir( "noonoo", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
767 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
768
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
769 listdir( dirname , true, existingdirents+3, NULL);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
770
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
771 diag_printf("<INFO>: cd noonoo\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
772 err = chdir( "noonoo" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
773 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
774
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
775 NEW_FILENAME1( "noonoo" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
776 checkcwd( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
777
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
778 createfile( "tinky", 6789 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
779 checkfile( "tinky" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
780
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
781 createfile( "dipsy", 34567 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
782 checkfile( "dipsy" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
783 copyfile( "dipsy", "po" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
784 checkfile( "po" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
785 comparefiles( "dipsy", "po" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
786
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
787 listdir( ".", true, 5, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
788 listdir( "..", true, existingdirents+3, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
789
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
790 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
791
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
792 diag_printf("<INFO>: unlink tinky\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
793 err = unlink( "tinky" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
794 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
795
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
796 diag_printf("<INFO>: unlink dipsy\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
797 err = unlink( "dipsy" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
798 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
799
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
800 diag_printf("<INFO>: unlink po\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
801 err = unlink( "po" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
802 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
803
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
804 diag_printf("<INFO>: cd ..\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
805 err = chdir( ".." );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
806 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
807 checkcwd( dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
808
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
809 diag_printf("<INFO>: rmdir noonoo\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
810 err = rmdir( "noonoo" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
811 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
812
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
813 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
814
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
815 diag_printf("<INFO>: mkdir x\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
816 err = mkdir( "x", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
817 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
818
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
819 diag_printf("<INFO>: mkdir x/y\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
820 err = mkdir( "x/y", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
821 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
822
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
823 diag_printf("<INFO>: mkdir x/y/z\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
824 err = mkdir( "x/y/z", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
825 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
826
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
827 diag_printf("<INFO>: mkdir x/y/z/w\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
828 err = mkdir( "x/y/z/w", 0 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
829 if( err < 0 ) SHOW_RESULT( mkdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
830
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
831 NEW_FILENAME1( "x/y/z/w" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
832 diag_printf("<INFO>: cd %s\n",filename1);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
833 err = chdir( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
834 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
835 checkcwd( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
836
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
837 NEW_FILENAME1( "x/y/z" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
838 diag_printf("<INFO>: cd ..\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
839 err = chdir( ".." );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
840 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
841 checkcwd( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
842
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
843 NEW_FILENAME1( "x/y/z" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
844 diag_printf("<INFO>: cd .\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
845 err = chdir( "." );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
846 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
847 checkcwd( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
848
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
849 NEW_FILENAME1( "x/y" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
850 diag_printf("<INFO>: cd ../../y\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
851 err = chdir( "../../y" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
852 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
853 checkcwd( filename1 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
854
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
855 diag_printf("<INFO>: cd ../..\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
856 err = chdir( "../.." );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
857 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
858 checkcwd( dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
859
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
860 diag_printf("<INFO>: rmdir x/y/z/w\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
861 err = rmdir( "x/y/z/w" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
862 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
863
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
864 diag_printf("<INFO>: rmdir x/y/z\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
865 err = rmdir( "x/y/z" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
866 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
867
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
868 diag_printf("<INFO>: rmdir x/y\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
869 err = rmdir( "x/y" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
870 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
871
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
872 diag_printf("<INFO>: rmdir x\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
873 err = rmdir( "x" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
874 if( err < 0 ) SHOW_RESULT( rmdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
875
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
876 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
877
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
878 checkcwd( dirname );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
879
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
880 diag_printf("<INFO>: unlink tinky\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
881 err = unlink( "tinky" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
882 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
883
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
884 diag_printf("<INFO>: unlink laalaa\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
885 err = unlink( "laalaa" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
886 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
887
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
888 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
889
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
890 diag_printf("<INFO>: cd %s\n", TEST_MOUNTPOINT TEST_DIRECTORY);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
891 err = chdir( TEST_MOUNTPOINT TEST_DIRECTORY);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
892 if( err < 0 ) SHOW_RESULT( chdir, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
893 checkcwd( TEST_MOUNTPOINT TEST_DIRECTORY );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
894
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
895 listdir( ".", true, -1, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
896
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
897 #ifdef TEST_MOUNTPOINT2
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
898 if( mp2 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
899 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
900 diag_printf("<INFO>: umount %s\n",TEST_MOUNTPOINT2);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
901 err = umount( TEST_MOUNTPOINT2 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
902 if( err < 0 ) SHOW_RESULT( umount, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
903 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
904 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
905
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
906 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
907
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
908 #if 0
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
909 maxfile("file.max");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
910
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
911 listdir( "/", true, -1, NULL );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
912
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
913 diag_printf("<INFO>: unlink file.max\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
914 err = unlink( "file.max" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
915 if( err < 0 ) SHOW_RESULT( unlink, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
916 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
917
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
918 // --------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
919
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
920 diag_printf("<INFO>: cd /\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
921 err = chdir( "/" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
922 if( err == 0 )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
923 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
924 checkcwd( "/" );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
925
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
926 diag_printf("<INFO>: umount %s\n",TEST_MOUNTPOINT);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
927 err = umount( TEST_MOUNTPOINT );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
928 if( err < 0 ) SHOW_RESULT( umount, err );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
929 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
930
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
931 diag_printf("<INFO>: syncing\n");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
932 cyg_fs_setinfo(TEST_MOUNTPOINT, FS_INFO_SYNC, NULL, 0); // sync();
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
933
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
934 CYG_TEST_PASS_FINISH("yaffs1");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
935 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
936
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
937 // -------------------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
938
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
939 #include <cyg/kernel/kapi.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
940
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
941 static cyg_handle_t thread_handle;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
942 static cyg_thread thread;
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
943 static char stack[CYGNUM_HAL_STACK_SIZE_TYPICAL+1024];
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
944
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
945 externC void
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
946 cyg_start( void )
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
947 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
948 cyg_thread_create(3, // Priority - just a number
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
949 fileio1_main, // entry
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
950 0, // index
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
951 0, // no name
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
952 &stack[0], // Stack
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
953 sizeof(stack), // Size
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
954 &thread_handle, // Handle
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
955 &thread // Thread data structure
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
956 );
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
957 cyg_thread_resume(thread_handle);
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
958
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
959 cyg_scheduler_start();
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
960 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
961
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
962 #else // CYGPKG_KERNEL
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
963
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
964 #include <cyg/infra/testcase.h>
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
965
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
966 externC void cyg_start(void)
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
967 {
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
968 CYG_TEST_NA("Needs CYGPKG_KERNEL");
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
969 }
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
970
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
971 #endif
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
972
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
973 // -------------------------------------------------------------------------
a386ed10401a Drop in eCos bridge work
Ross Younger <wry@ecoscentric.com>
parents:
diff changeset
974 // EOF yaffs1.c