diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2003-11-11 00:59:49 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2003-11-11 00:59:49 +0000 |
commit | ff6ab1b594d9f073ece9b7fedf1f6977f52aeee5 (patch) | |
tree | f0b2e3afb63f53a922a0c42137a6d6763548edc5 /c/src/tests/psxtests/psxreaddir | |
parent | 2003-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-ff6ab1b594d9f073ece9b7fedf1f6977f52aeee5.tar.bz2 |
2003-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Remove.
* ChangeLog: Remove.
* Makefile.am: Remove.
* configure.ac: Remove.
* psxtests.am: Remove.
* include/.cvsignore: Remove.
* include/Makefile.am: Remove.
* include/pmacros.h: Remove.
* psx01/.cvsignore: Remove.
* psx01/Makefile.am: Remove.
* psx01/init.c: Remove.
* psx01/psx01.scn: Remove.
* psx01/system.h: Remove.
* psx01/task.c: Remove.
* psx02/.cvsignore: Remove.
* psx02/Makefile.am: Remove.
* psx02/init.c: Remove.
* psx02/psx02.scn: Remove.
* psx02/system.h: Remove.
* psx02/task.c: Remove.
* psx03/.cvsignore: Remove.
* psx03/Makefile.am: Remove.
* psx03/init.c: Remove.
* psx03/psx03.scn: Remove.
* psx03/system.h: Remove.
* psx03/task.c: Remove.
* psx04/.cvsignore: Remove.
* psx04/Makefile.am: Remove.
* psx04/init.c: Remove.
* psx04/psx04.scn: Remove.
* psx04/system.h: Remove.
* psx04/task1.c: Remove.
* psx04/task2.c: Remove.
* psx04/task3.c: Remove.
* psx05/.cvsignore: Remove.
* psx05/Makefile.am: Remove.
* psx05/init.c: Remove.
* psx05/psx05.scn: Remove.
* psx05/system.h: Remove.
* psx05/task.c: Remove.
* psx05/task2.c: Remove.
* psx05/task3.c: Remove.
* psx06/.cvsignore: Remove.
* psx06/Makefile.am: Remove.
* psx06/init.c: Remove.
* psx06/psx06.scn: Remove.
* psx06/system.h: Remove.
* psx06/task.c: Remove.
* psx06/task2.c: Remove.
* psx07/.cvsignore: Remove.
* psx07/Makefile.am: Remove.
* psx07/init.c: Remove.
* psx07/psx07.scn: Remove.
* psx07/system.h: Remove.
* psx07/task.c: Remove.
* psx08/.cvsignore: Remove.
* psx08/Makefile.am: Remove.
* psx08/init.c: Remove.
* psx08/psx08.scn: Remove.
* psx08/system.h: Remove.
* psx08/task1.c: Remove.
* psx08/task2.c: Remove.
* psx08/task3.c: Remove.
* psx09/.cvsignore: Remove.
* psx09/Makefile.am: Remove.
* psx09/init.c: Remove.
* psx09/psx09.scn: Remove.
* psx09/system.h: Remove.
* psx10/.cvsignore: Remove.
* psx10/Makefile.am: Remove.
* psx10/init.c: Remove.
* psx10/psx10.scn: Remove.
* psx10/system.h: Remove.
* psx10/task.c: Remove.
* psx10/task2.c: Remove.
* psx10/task3.c: Remove.
* psx11/.cvsignore: Remove.
* psx11/Makefile.am: Remove.
* psx11/init.c: Remove.
* psx11/psx11.scn: Remove.
* psx11/system.h: Remove.
* psx11/task.c: Remove.
* psx12/.cvsignore: Remove.
* psx12/Makefile.am: Remove.
* psx12/init.c: Remove.
* psx12/psx12.scn: Remove.
* psx12/system.h: Remove.
* psx12/task.c: Remove.
* psx13/.cvsignore: Remove.
* psx13/Makefile.am: Remove.
* psx13/main.c: Remove.
* psx13/psx13.scn: Remove.
* psx13/test.c: Remove.
* psxcancel/.cvsignore: Remove.
* psxcancel/Makefile.am: Remove.
* psxcancel/init.c: Remove.
* psxcancel/psxcancel.scn: Remove.
* psxchroot01/.cvsignore: Remove.
* psxchroot01/Makefile.am: Remove.
* psxchroot01/main.c: Remove.
* psxchroot01/psxchroot01.scn: Remove.
* psxchroot01/test.c: Remove.
* psxfile01/.cvsignore: Remove.
* psxfile01/Makefile.am: Remove.
* psxfile01/main.c: Remove.
* psxfile01/psxfile01.scn: Remove.
* psxfile01/test.c: Remove.
* psxfile01/test_cat.c: Remove.
* psxfile01/test_extend.c: Remove.
* psxfile01/test_write.c: Remove.
* psxhdrs/.cvsignore: Remove.
* psxhdrs/Makefile.am: Remove.
* psxhdrs/clock01.c: Remove.
* psxhdrs/clock02.c: Remove.
* psxhdrs/clock03.c: Remove.
* psxhdrs/clock04.c: Remove.
* psxhdrs/clock05.c: Remove.
* psxhdrs/clock06.c: Remove.
* psxhdrs/cond01.c: Remove.
* psxhdrs/cond02.c: Remove.
* psxhdrs/cond03.c: Remove.
* psxhdrs/cond04.c: Remove.
* psxhdrs/cond05.c: Remove.
* psxhdrs/cond06.c: Remove.
* psxhdrs/cond07.c: Remove.
* psxhdrs/cond08.c: Remove.
* psxhdrs/cond09.c: Remove.
* psxhdrs/cond10.c: Remove.
* psxhdrs/key01.c: Remove.
* psxhdrs/key02.c: Remove.
* psxhdrs/key03.c: Remove.
* psxhdrs/key04.c: Remove.
* psxhdrs/mutex01.c: Remove.
* psxhdrs/mutex02.c: Remove.
* psxhdrs/mutex03.c: Remove.
* psxhdrs/mutex04.c: Remove.
* psxhdrs/mutex05.c: Remove.
* psxhdrs/mutex06.c: Remove.
* psxhdrs/mutex07.c: Remove.
* psxhdrs/mutex08.c: Remove.
* psxhdrs/mutex09.c: Remove.
* psxhdrs/mutex10.c: Remove.
* psxhdrs/mutex11.c: Remove.
* psxhdrs/mutex12.c: Remove.
* psxhdrs/mutex13.c: Remove.
* psxhdrs/mutex14.c: Remove.
* psxhdrs/mutex15.c: Remove.
* psxhdrs/mutex16.c: Remove.
* psxhdrs/proc01.c: Remove.
* psxhdrs/proc02.c: Remove.
* psxhdrs/proc03.c: Remove.
* psxhdrs/proc04.c: Remove.
* psxhdrs/proc05.c: Remove.
* psxhdrs/proc06.c: Remove.
* psxhdrs/proc07.c: Remove.
* psxhdrs/proc08.c: Remove.
* psxhdrs/proc09.c: Remove.
* psxhdrs/proc10.c: Remove.
* psxhdrs/proc11.c: Remove.
* psxhdrs/proc12.c: Remove.
* psxhdrs/proc13.c: Remove.
* psxhdrs/proc14.c: Remove.
* psxhdrs/pthread01.c: Remove.
* psxhdrs/pthread02.c: Remove.
* psxhdrs/pthread03.c: Remove.
* psxhdrs/pthread04.c: Remove.
* psxhdrs/pthread05.c: Remove.
* psxhdrs/pthread06.c: Remove.
* psxhdrs/pthread07.c: Remove.
* psxhdrs/pthread08.c: Remove.
* psxhdrs/pthread09.c: Remove.
* psxhdrs/pthread10.c: Remove.
* psxhdrs/pthread11.c: Remove.
* psxhdrs/pthread12.c: Remove.
* psxhdrs/pthread13.c: Remove.
* psxhdrs/pthread14.c: Remove.
* psxhdrs/pthread15.c: Remove.
* psxhdrs/pthread16.c: Remove.
* psxhdrs/pthread17.c: Remove.
* psxhdrs/pthread18.c: Remove.
* psxhdrs/pthread19.c: Remove.
* psxhdrs/pthread20.c: Remove.
* psxhdrs/pthread21.c: Remove.
* psxhdrs/pthread22.c: Remove.
* psxhdrs/pthread23.c: Remove.
* psxhdrs/pthread24.c: Remove.
* psxhdrs/pthread25.c: Remove.
* psxhdrs/pthread26.c: Remove.
* psxhdrs/pthread27.c: Remove.
* psxhdrs/pthread28.c: Remove.
* psxhdrs/pthread29.c: Remove.
* psxhdrs/pthread30.c: Remove.
* psxhdrs/pthread31.c: Remove.
* psxhdrs/pthread32.c: Remove.
* psxhdrs/pthread33.c: Remove.
* psxhdrs/pthread34.c: Remove.
* psxhdrs/pthread35.c: Remove.
* psxhdrs/pthread36.c: Remove.
* psxhdrs/sched01.c: Remove.
* psxhdrs/sched02.c: Remove.
* psxhdrs/sched03.c: Remove.
* psxhdrs/sched04.c: Remove.
* psxhdrs/sched05.c: Remove.
* psxhdrs/sched06.c: Remove.
* psxhdrs/sched07.c: Remove.
* psxhdrs/sched08.c: Remove.
* psxhdrs/signal01.c: Remove.
* psxhdrs/signal02.c: Remove.
* psxhdrs/signal03.c: Remove.
* psxhdrs/signal04.c: Remove.
* psxhdrs/signal05.c: Remove.
* psxhdrs/signal06.c: Remove.
* psxhdrs/signal07.c: Remove.
* psxhdrs/signal08.c: Remove.
* psxhdrs/signal09.c: Remove.
* psxhdrs/signal10.c: Remove.
* psxhdrs/signal11.c: Remove.
* psxhdrs/signal12.c: Remove.
* psxhdrs/signal13.c: Remove.
* psxhdrs/signal14.c: Remove.
* psxhdrs/signal15.c: Remove.
* psxhdrs/signal16.c: Remove.
* psxhdrs/signal17.c: Remove.
* psxhdrs/signal18.c: Remove.
* psxhdrs/signal19.c: Remove.
* psxhdrs/signal20.c: Remove.
* psxhdrs/signal21.c: Remove.
* psxhdrs/signal22.c: Remove.
* psxhdrs/signal23.c: Remove.
* psxhdrs/sync01.c: Remove.
* psxhdrs/sync02.c: Remove.
* psxhdrs/sync03.c: Remove.
* psxhdrs/time01.c: Remove.
* psxhdrs/time02.c: Remove.
* psxhdrs/time03.c: Remove.
* psxhdrs/time04.c: Remove.
* psxhdrs/time05.c: Remove.
* psxhdrs/time06.c: Remove.
* psxhdrs/time07.c: Remove.
* psxhdrs/time08.c: Remove.
* psxhdrs/time09.c: Remove.
* psxhdrs/time10.c: Remove.
* psxhdrs/time11.c: Remove.
* psxhdrs/time12.c: Remove.
* psxhdrs/time13.c: Remove.
* psxhdrs/timer01.c: Remove.
* psxhdrs/timer02.c: Remove.
* psxhdrs/timer03.c: Remove.
* psxhdrs/timer04.c: Remove.
* psxhdrs/timer05.c: Remove.
* psxhdrs/timer06.c: Remove.
* psxhdrs/timer07.c: Remove.
* psxmount/.cvsignore: Remove.
* psxmount/Makefile.am: Remove.
* psxmount/main.c: Remove.
* psxmount/psxmount.scn: Remove.
* psxmount/test.c: Remove.
* psxmsgq01/.cvsignore: Remove.
* psxmsgq01/Makefile.am: Remove.
* psxmsgq01/init.c: Remove.
* psxmsgq01/psxmsgq01.scn: Remove.
* psxmsgq01/system.h: Remove.
* psxreaddir/.cvsignore: Remove.
* psxreaddir/Makefile.am: Remove.
* psxreaddir/main.c: Remove.
* psxreaddir/psxreaddir.scn: Remove.
* psxreaddir/test.c: Remove.
* psxsem01/.cvsignore: Remove.
* psxsem01/Makefile.am: Remove.
* psxsem01/init.c: Remove.
* psxsem01/psxsem01.scn: Remove.
* psxsem01/system.h: Remove.
* psxstat/.cvsignore: Remove.
* psxstat/Makefile.am: Remove.
* psxstat/main.c: Remove.
* psxstat/psxstat.scn: Remove.
* psxstat/test.c: Remove.
* psxtime/.cvsignore: Remove.
* psxtime/Makefile.am: Remove.
* psxtime/main.c: Remove.
* psxtime/psxtime.scn: Remove.
* psxtime/test.c: Remove.
* psxtimer/.cvsignore: Remove.
* psxtimer/Makefile.am: Remove.
* psxtimer/psxtimer.c: Remove.
* psxtimer/psxtimer.scn: Remove.
* psxtimer/system.h: Remove.
Diffstat (limited to 'c/src/tests/psxtests/psxreaddir')
-rw-r--r-- | c/src/tests/psxtests/psxreaddir/.cvsignore | 2 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxreaddir/Makefile.am | 41 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxreaddir/main.c | 35 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxreaddir/psxreaddir.scn | 236 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxreaddir/test.c | 503 |
5 files changed, 0 insertions, 817 deletions
diff --git a/c/src/tests/psxtests/psxreaddir/.cvsignore b/c/src/tests/psxtests/psxreaddir/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/tests/psxtests/psxreaddir/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/c/src/tests/psxtests/psxreaddir/Makefile.am b/c/src/tests/psxtests/psxreaddir/Makefile.am deleted file mode 100644 index 1145a5960d..0000000000 --- a/c/src/tests/psxtests/psxreaddir/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## -## $Id$ -## - - -TEST = psxreaddir - -MANAGERS = all - -C_FILES = main.c test.c -C_O_FILES = $(C_FILES:%.c=${ARCH}/%.$(OBJEXT)) - -DOCTYPES = scn -DOCS = $(DOCTYPES:%=$(TEST).%) - -SRCS = $(DOCS) $(C_FILES) $(H_FILES) -OBJS = $(C_O_FILES) - -PRINT_SRCS = $(DOCS) - -PGM = ${ARCH}/$(TEST).exe - -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg -include $(top_srcdir)/../automake/compile.am -include $(top_srcdir)/../automake/leaf.am -include $(top_srcdir)/psxtests.am - -# -# (OPTIONAL) Add local stuff here using += -# - -AM_CPPFLAGS += -I$(top_srcdir)/include - -${PGM}: $(OBJS) $(LINK_FILES) - $(make-exe) - -all-local: $(ARCH) $(TMPINSTALL_FILES) - -EXTRA_DIST = $(C_FILES) $(DOCS) - -include $(top_srcdir)/../automake/local.am diff --git a/c/src/tests/psxtests/psxreaddir/main.c b/c/src/tests/psxtests/psxreaddir/main.c deleted file mode 100644 index 4ce4bae422..0000000000 --- a/c/src/tests/psxtests/psxreaddir/main.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Simple test program -- simplified version of sample test hello. - */ - -#define TEST_INIT - -#include <bsp.h> -#include <pmacros.h> - -void test_main( void ); - -rtems_task Init( - rtems_task_argument ignored -) -{ - test_main(); - rtems_test_exit( 0 ); -} - -/* configuration information */ - -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER - -#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM -#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10 - -#define CONFIGURE_MAXIMUM_TASKS 1 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_INIT - -#include <confdefs.h> - -/* end of file */ diff --git a/c/src/tests/psxtests/psxreaddir/psxreaddir.scn b/c/src/tests/psxtests/psxreaddir/psxreaddir.scn deleted file mode 100644 index 5259773924..0000000000 --- a/c/src/tests/psxtests/psxreaddir/psxreaddir.scn +++ /dev/null @@ -1,236 +0,0 @@ -*** READDIR TEST *** -chdir to the root directory -chdir() status : 0 -Creating a series of directories under / -Creating directory: a 0 0 Success -Creating directory: b 0 0 Success -Creating directory: c 0 0 Success -Creating directory: d 0 0 Success -Creating directory: e 0 0 Success -Creating directory: f 0 0 Success -Creating directory: c/y 0 0 Success -Creating directory: c/z 0 0 Success -Creating directory: c/x 0 0 Success -Creating directory: c/y/a3333 0 0 Success -Creating directory: c/y/j123 0 0 Success -Create a lot of files -Create a -Create b -Create c -Create d -Create e -Create f -Create g -Create h -Create i -Create j -Create k -Create l -Create m -Create n -Create o -Create p -Create q -Create r -Create s -Create t -Create u -Create v -Create w -Create x -Create y -Create z -Create aa -Create ab -Create ac -Create ad -Create ae -Create af -Create ag -Create ah -Create ai -Create aj -Create ak -Create al -Create am -Create an -Create ao -Create ap -Create aq -Create ar -Open /many and print the directory -name inode offset reclen type -a 17 0 268 0x010c -b 18 268 268 0x010c -c 19 536 268 0x010c -d 20 804 268 0x010c -e 21 1072 268 0x010c -f 22 1340 268 0x010c -g 23 1608 268 0x010c -h 24 1876 268 0x010c -i 25 2144 268 0x010c -j 26 2412 268 0x010c -k 27 2680 268 0x010c -l 28 2948 268 0x010c -m 29 3216 268 0x010c -n 30 3484 268 0x010c -o 31 3752 268 0x010c -p 32 4020 268 0x010c -q 33 4288 268 0x010c -r 34 4556 268 0x010c -s 35 4824 268 0x010c -t 36 5092 268 0x010c -u 37 5360 268 0x010c -v 38 5628 268 0x010c -w 39 5896 268 0x010c -x 40 6164 268 0x010c -y 41 6432 268 0x010c -z 42 6700 268 0x010c -aa 43 6968 268 0x010c -ab 44 7236 268 0x010c -ac 45 7504 268 0x010c -ad 46 7772 268 0x010c -ae 47 8040 268 0x010c -af 48 8308 268 0x010c -ag 49 8576 268 0x010c -ah 50 8844 268 0x010c -ai 51 9112 268 0x010c -aj 52 9380 268 0x010c -ak 53 9648 268 0x010c -al 54 9916 268 0x010c -am 55 10184 268 0x010c -an 56 10452 268 0x010c -ao 57 10720 268 0x010c -ap 58 10988 268 0x010c -aq 59 11256 268 0x010c -ar 60 11524 268 0x010c -open /b/myfile -scandir a file status: -1 -Open /b/new_file -fcntl F_SETFD should return 0 -fcntl F_SETFD should return 1 -fcntl F_DUPFD should return 0 -- skip until implemented -fcntl F_GETFL returns current flags -fcntl F_GETFL returned 0x200 -fcntl F_SETFL to add O_APPEND and O_NONBLOCK -fcntl F_GETFL return current flags to see changes -fcntl F_GETFL returned 0x1208 -fcntl F_GETLK should return -1 -fcntl F_SETLK should return -1 -fcntl F_SETLKW should return -1 -fcntl F_SETOWN should return -1 -fcntl F_GETOWN should return -1 -fcntl invalid argument should return -1 -Status -1 -opendir and readdir /b/myfile -opendir and readdir -chdir to /b/myfile -Performing stat of directory / -status for stat : 0, size of directory: 2144 -Open and print directory / -name inode offset reclen type -dev 2 0 268 0x010c -a 5 268 268 0x010c -b 6 536 268 0x010c -c 7 804 268 0x010c -d 8 1072 268 0x010c -e 9 1340 268 0x010c -f 10 1608 268 0x010c -many 16 1876 268 0x010c -mkdir /d/my_dir -Open /d/my_dir -remove /d/my_dir. -close /d/my_dir. -Opening directory /c -name inode offset reclen type -y 11 0 268 0x010c -z 12 268 268 0x010c -x 13 536 268 0x010c -Opening directory /c/y -name inode offset reclen type -a3333 14 0 268 0x010c -j123 15 268 268 0x010c -LSEEK to the start of the open directory -name inode offset reclen type -dev 2 0 268 0x010c -a 5 268 268 0x010c -b 6 536 268 0x010c -c 7 804 268 0x010c -d 8 1072 268 0x010c -e 9 1340 268 0x010c -f 10 1608 268 0x010c -many 16 1876 268 0x010c -Rewinding directory -name inode offset reclen type -dev 2 0 268 0x010c -a 5 268 268 0x010c -b 6 536 268 0x010c -c 7 804 268 0x010c -d 8 1072 268 0x010c -e 9 1340 268 0x010c -f 10 1608 268 0x010c -many 16 1876 268 0x010c -Send rewinddir a NULL pointer -Seek directory -telldir() should report only sizeof(struct dirent) increments -in position. Sizeof(struct dirent): 268 -seeked to 0 -- currently at 0 -seeked to 67 -- currently at 0 -seeked to 134 -- currently at 0 -Send seekdir a NULL pointer -Closing directory -SCANDIR TEST -selection rule 1 -scanning for any entry under directory /c -SCANDIR SELECT1 accepts nodename: y -SCANDIR SELECT1 accepts nodename: z -SCANDIR SELECT1 accepts nodename: x -scandir status: 3 -Selected Node Name: y -Selected Node Name: z -Selected Node Name: x -selection rule 2 -scanning for any entry under directory /c whose name = y -SCANDIR SELECT accepted nodename: y -SCANDIR SELECT rejected nodename: z -SCANDIR SELECT rejected nodename: x -scandir status: 1 -Selected Node Name: y -SCANDIR with sorting -selection rule 1 -scanning for any entry under directory /c -sort in ascending order -SCANDIR SELECT1 accepts nodename: y -SCANDIR SELECT1 accepts nodename: z -SCANDIR SELECT1 accepts nodename: x -scandir status: 3 -Selected and Sorted Node Name: x -Selected and Sorted Node Name: y -Selected and Sorted Node Name: z -SCANDIR with sorting -selection rule 1 -scanning for any entry under directory /c -sort in descending order -SCANDIR SELECT1 accepts nodename: y -SCANDIR SELECT1 accepts nodename: z -SCANDIR SELECT1 accepts nodename: x -scandir status: 3 -Selected and Sorted Node Name: z -Selected and Sorted Node Name: y -Selected and Sorted Node Name: x -Validate readdir across mount point -name inode offset reclen type -should_be_hidden 65 0 268 0x010c -Attempting to mount IMFS file system at /imfs -create /imfs/testdir and /imfs/testdir/testsubdir -name inode offset reclen type -testdir 2 0 268 0x010c -name inode offset reclen type -testdir 2 0 268 0x010c -name inode offset reclen type -testdir 2 0 268 0x010c -name inode offset reclen type -testsubdir 3 0 268 0x010c -name inode offset reclen type -testdir 2 0 268 0x010c -*** END OF READDIR TEST *** diff --git a/c/src/tests/psxtests/psxreaddir/test.c b/c/src/tests/psxtests/psxreaddir/test.c deleted file mode 100644 index bc790c5233..0000000000 --- a/c/src/tests/psxtests/psxreaddir/test.c +++ /dev/null @@ -1,503 +0,0 @@ -/* - * This is a native test to explore how the readdir() family works. - * Newlib supports the following readdir() family members: - * - * closedir() - - * readdir() - - * scandir() - - * opendir() - - * rewinddir() - - * telldir() - BSD not in POSIX - * seekdir() - BSD not in POSIX - * - * - * seekdir() takes an offset which is a byte offset. The Linux - * implementation of this appears to seek to the ((off/DIRENT_SIZE) + 1) - * record where DIRENT_SIZE seems to be 12 bytes. - * - * - * - * $Id$ - */ - -#include <stdio.h> -#include <sys/types.h> -#include <fcntl.h> -#include <dirent.h> -#include <string.h> -#include <assert.h> -#include <unistd.h> -#include <errno.h> -#include <imfs.h> -#include <assert.h> - -DIR *directory; -DIR *directory2; -DIR *directory3; -DIR *directory_not; - -#ifndef __P -#define __P(args)() -#endif - -/* -int scandir ( const char *dirname, - struct dirent *** namelist, - int (*select) __P((struct dirent *)), - int (*dcomp) __P((const struct dirent **, const struct dirent **)) -); -*/ - -#if defined(__rtems__) -#define d_type d_reclen -#include <pmacros.h> -#endif - -void printdir( DIR *directory ) -{ - struct dirent *d; - - printf( "%-20s %8s %8s %8s %4s\n", - "name", " inode", " offset", "reclen", " type" ); - d = readdir(directory); - - while (d) { - printf( "%-20s %8d %8d %6d 0x%04x\n", - d->d_name, (int)d->d_ino, (int)d->d_off, d->d_reclen, d->d_type ); - d = readdir(directory); - - } -} - -void complete_printdir( char *path ) -{ - DIR *the_dir; - int status; - - the_dir = opendir( path ); - assert( the_dir ); - printdir( the_dir ); - status = closedir( the_dir ); -} - -char *many_files[] = { - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "aa", - "ab", - "ac", - "ad", - "ae", - "af", - "ag", - "ah", - "ai", - "aj", - "ak", - "al", - "am", - "an", - "ao", - "ap", - "aq", - "ar" -}; - -char *dnames[] = { - "a", - "b", - "c", - "d", - "e", - "f", - "c/y", - "c/z", - "c/x", - "c/y/a3333", - "c/y/j123", - "END" -}; - -int select1 ( struct dirent *entry ) -{ - printf("SCANDIR SELECT1 accepts nodename: %s\n", entry->d_name ); - return 1; -} - -int select2 ( struct dirent *entry ) -{ - if( strcmp( entry->d_name, "y") == 0 ) { - printf("SCANDIR SELECT accepted nodename: %s\n", entry->d_name ); - return 1; - } - printf("SCANDIR SELECT rejected nodename: %s\n", entry->d_name ); - return 0; -} - -int compare_ascending(const struct dirent **a, const struct dirent **b ) -{ - int i; - - i = strcmp ( - (char *)((struct dirent *)(*a)->d_name), - (char *)((struct dirent *)(*b)->d_name) - ); - return i; -} - - -int compare_descending( const struct dirent **a, const struct dirent **b ) -{ - int i; - - i = strcmp ( - (char *)((const struct dirent *)(*b)->d_name), - (char *)((const struct dirent *)(*a)->d_name) - ); - - return i; -} - -void test_across_mount() -{ - rtems_filesystem_mount_table_entry_t *mt_entry; - int status; - - /* - * Verify Readdir works correctly over mount points. - */ - - printf("Validate readdir across mount point\n"); - assert( mkdir( "/imfs", 0777 ) == 0 ); - assert( mkdir( "/imfs/should_be_hidden", 0777 ) == 0 ); - complete_printdir("/imfs" ); - printf("Attempting to mount IMFS file system at /imfs \n"); - status = mount( - &mt_entry, - &IMFS_ops, - RTEMS_FILESYSTEM_READ_WRITE, - NULL, - "/imfs" ); - assert( status == 0 ); - if( mt_entry == NULL ){ - printf(" NULL mount table entry was returned\n"); - } - printf( "create /imfs/testdir and /imfs/testdir/testsubdir\n"); - - status = mkdir( "/imfs/testdir", 0777 ); - assert( status == 0 ); - status = mkdir( "/imfs/testdir/testsubdir", 0777 ); - assert( status == 0 ); - - complete_printdir("/imfs" ); - complete_printdir("/imfs/" ); - complete_printdir("/imfs/." ); - complete_printdir("/imfs/testdir" ); - complete_printdir("/imfs/testdir/.." ); -} - -#if defined(__rtems__) -int test_main(void) -#else -int main( - int argc, - char **argv -) -#endif -{ - int fd; - int i; - int status; - off_t off; - struct dirent *d_not; - struct dirent **namelist; - struct stat s; - - - printf( "\n\n*** READDIR TEST ***\n" ); - - printf( "\nchdir to the root directory\n" ); - status = chdir( "/" ); - printf( "chdir() status : %d\n\n", status ); - - printf( "\nCreating a series of directories under /\n" ); - i=0; - while ( strcmp(dnames[i], "END") != 0 ) - { - status = mkdir( dnames[i], 0x1c0 ); - printf("Creating directory: %s %d %d ", dnames[i], status, errno ); - if ( errno == 0 ) - printf(" Success\n"); - else - printf(" Failure\n"); - - i++; - } - - /* - * Create files under many and open the directory. - */ - - printf("Create a lot of files\n"); - status = mkdir( "/many", 0x1c0 ); - status = chdir( "/many" ); - for (i = 0; i<44; i++) { - printf("Create %s\n", many_files[i]); - fd = open (many_files[i], O_CREAT, S_IRWXU); - close (fd); - } - printf("Open /many and print the directory\n"); - directory_not = opendir( "/many" ); - printdir ( directory_not ); - d_not = readdir( directory_not ); - - printf("open /b/myfile\n"); - fd = open ("/b/my_file", O_CREAT, S_IRWXU); - assert( fd != -1 ); - close (fd); - - printf("scandir a file status: "); - status = scandir( - "/b/my_file", - &namelist, - select1, - NULL - ); - printf("%d\n", status); - - printf("Open /b/new_file\n"); - fd = open( "/b/new_file", O_CREAT, S_IRWXU ); - assert( fd != -1 ); - - printf("fcntl F_SETFD should return 0\n"); - status = fcntl( fd, F_SETFD, 1 ); - assert( status == 0 ); - - printf("fcntl F_SETFD should return 1\n"); - status = fcntl( fd, F_GETFD, 1 ); - assert( status == 1 ); - -#if 0 - printf("fcntl F_DUPFD should return 0\n"); - status = fcntl( fd, F_DUPFD, 0 ); - assert ( status == 0 ); -#else - printf("fcntl F_DUPFD should return 0 -- skip until implemented\n"); -#endif - - printf("fcntl F_GETFL returns current flags\n"); - status = fcntl( fd, F_GETFL, 1 ); - printf("fcntl F_GETFL returned 0x%x\n", status ); - assert( status != -1 ); - - printf("fcntl F_SETFL to add O_APPEND and O_NONBLOCK\n"); - status = fcntl( fd, F_SETFL, O_APPEND|O_NONBLOCK ); - assert ( status != -1 ); - - printf("fcntl F_GETFL return current flags to see changes\n"); - status = fcntl( fd, F_GETFL, 1 ); - printf("fcntl F_GETFL returned 0x%x\n", status ); - assert( status != -1 ); - - printf("fcntl F_GETLK should return -1\n"); - status = fcntl( fd, F_GETLK, 1 ); - assert ( status == -1 ); - - printf("fcntl F_SETLK should return -1\n"); - status = fcntl( fd, F_SETLK, 1 ); - assert ( status == -1 ); - - printf("fcntl F_SETLKW should return -1\n"); - status = fcntl( fd, F_SETLKW, 1 ); - assert ( status == -1 ); - - printf("fcntl F_SETOWN should return -1\n"); - status = fcntl( fd, F_SETOWN, 1 ); - assert ( status == -1 ); - - printf("fcntl F_GETOWN should return -1\n"); - status = fcntl( fd, F_GETOWN, 1 ); - assert ( status == -1 ); - - printf("fcntl invalid argument should return -1\n"); - status = fcntl( fd, 0xb, 1 ); - printf("Status %d\n",status); - assert( status == -1 ); - - printf("opendir and readdir /b/myfile\n"); - directory_not = opendir ("/b/my_file"); - d_not = readdir(directory_not); - - printf("opendir and readdir\n"); - directory_not = opendir ("/a"); - d_not = readdir (directory_not); - - printf("chdir to /b/myfile\n"); - status = chdir ("/b/my_file"); - assert (status == -1); - - printf( "\nPerforming stat of directory /\n"); - status = stat( "/", &s ); - printf("status for stat : %d, size of directory: %d\n\n", - status,(int)s.st_size); - - puts( "\nOpen and print directory /" ); - directory = opendir("/"); - assert( directory ); - printdir(directory); - - printf("\nmkdir /d/my_dir\n"); - status = mkdir( "/d/my_dir", 0x1c0 ); - printf("Open /d/my_dir\n"); - directory_not = opendir( "/d/my_dir" ); - assert( directory_not ); - - printf( "remove /d/my_dir.\n" ); - status = rmdir( "/d/my_dir" ); - assert( status == 0 ); - - printf( "close /d/my_dir.\n" ); - closedir( directory_not ); - - printf( "\nOpening directory /c\n" ); - directory2 = opendir("/c"); - - assert( directory2 ); - - printdir(directory2); - status = closedir( directory2 ); - - printf( "\nOpening directory /c/y\n" ); - directory3 = opendir("/c/y"); - assert( directory3 ); - printdir(directory3); - status = closedir( directory3 ); - - printf( "\nLSEEK to the start of the open directory\n" ); - lseek( directory->dd_fd, 0, SEEK_SET ); - printdir(directory); - - lseek( directory->dd_fd, 0, SEEK_CUR ); - - lseek( directory->dd_fd, 0, SEEK_END ); - - lseek( directory->dd_fd, 0, -99 ); - - printf( "\nRewinding directory\n" ); - rewinddir( directory ); - printdir(directory); - -/* Don't know how to check this one automatically. */ - printf( "Send rewinddir a NULL pointer\n"); - rewinddir( NULL ); - - printf( "\nSeek directory\n" ); - printf( "telldir() should report only sizeof(struct dirent) increments \n" ); - printf( "in position. Sizeof(struct dirent): %d\n", sizeof(struct dirent) ); - rewinddir( directory ); - for( off=0 ; off<=200 ; off=off + sizeof(struct dirent) / 4 ) { - seekdir( directory, off ); - printf( - "seeked to %2d -- currently at %2d\n", - (int)off, - (int)telldir(directory) - ); - } - - printf( "Send seekdir a NULL pointer\n"); - seekdir( NULL, off ); - - printf( "\nClosing directory\n" ); - status = closedir( directory ); - - printf( "\nSCANDIR TEST\n"); - printf( "\nselection rule 1\n"); - printf( "scanning for any entry under directory /c\n\n"); - status = scandir( - "/c", - &namelist, - select1, - NULL - ); - printf("\nscandir status: %d\n", status ); - for ( i=0; i<status; i++) - { - printf("Selected Node Name: %s\n", namelist[i]->d_name ); - } - - printf( "\nselection rule 2\n"); - printf( "scanning for any entry under directory /c whose name = y\n\n"); - status = scandir( - "/c", - &namelist, - select2, - NULL - ); - printf("\nscandir status: %d\n", status ); - for ( i=0; i<status; i++) - { - printf("Selected Node Name: %s\n", namelist[i]->d_name ); - } - - printf( "\nSCANDIR with sorting\n" ); - printf( "\nselection rule 1\n"); - printf( "scanning for any entry under directory /c\n"); - printf( "sort in ascending order\n\n"); - status = scandir( - "/c", - &namelist, - select1, - compare_ascending - ); - printf("\nscandir status: %d\n", status ); - for ( i=0; i<status; i++) - { - printf("Selected and Sorted Node Name: %s\n", namelist[i]->d_name ); - } - - - printf( "\nSCANDIR with sorting\n" ); - printf( "\nselection rule 1\n"); - printf( "scanning for any entry under directory /c\n"); - printf( "sort in descending order\n\n"); - status = scandir( - "/c", - &namelist, - select1, - compare_descending - ); - printf("scandir status: %d\n", status ); - for ( i=0; i<status; i++) - { - printf("Selected and Sorted Node Name: %s\n", namelist[i]->d_name ); - } - - test_across_mount(); - printf( "\n\n*** END OF READDIR TEST ***\n" ); - rtems_test_exit(0); -} - |