summaryrefslogtreecommitdiffstats
path: root/c/src/tests/psxtests/psxreaddir
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2003-11-11 00:59:49 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2003-11-11 00:59:49 +0000
commitff6ab1b594d9f073ece9b7fedf1f6977f52aeee5 (patch)
treef0b2e3afb63f53a922a0c42137a6d6763548edc5 /c/src/tests/psxtests/psxreaddir
parent2003-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-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/.cvsignore2
-rw-r--r--c/src/tests/psxtests/psxreaddir/Makefile.am41
-rw-r--r--c/src/tests/psxtests/psxreaddir/main.c35
-rw-r--r--c/src/tests/psxtests/psxreaddir/psxreaddir.scn236
-rw-r--r--c/src/tests/psxtests/psxreaddir/test.c503
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);
-}
-