summaryrefslogtreecommitdiffstats
path: root/testsuites/fstests/mimfs_fsrename
diff options
context:
space:
mode:
authorAndre Marques <andre.lousa.marques@gmail.com>2014-02-22 21:57:34 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-17 10:21:56 +0100
commit27d240e050697cf3d5b1632fafd2312c5bc26e52 (patch)
tree0a74f668fae3713aeb719333434ce26a1d60672c /testsuites/fstests/mimfs_fsrename
parentscore: Use only next field for chain on/off (diff)
downloadrtems-27d240e050697cf3d5b1632fafd2312c5bc26e52.tar.bz2
New fstest to check rename POSIX conformance
This patch is a newer version of the test presented on http://www.rtems.org/pipermail/rtems-devel/2014-February/005318.html Unchecked error cases: - EIO (physical error) - ENOSPC (no space left in the new filepath) - EROFS (already covered on testsuites/fstests/fsrofs01) Untested functionality: - File system lock during rename() operation - If after rename() the link count of a file becomes 0 it should be removed and the space ocupied by the file shall be freed and no longer accessible (the function statvfs() gives "not implemented" on the imfs file system, so this is postponed for now)
Diffstat (limited to 'testsuites/fstests/mimfs_fsrename')
-rw-r--r--testsuites/fstests/mimfs_fsrename/Makefile.am30
-rw-r--r--testsuites/fstests/mimfs_fsrename/mimfs_fsrename.scn287
2 files changed, 317 insertions, 0 deletions
diff --git a/testsuites/fstests/mimfs_fsrename/Makefile.am b/testsuites/fstests/mimfs_fsrename/Makefile.am
new file mode 100644
index 0000000000..85b6072a25
--- /dev/null
+++ b/testsuites/fstests/mimfs_fsrename/Makefile.am
@@ -0,0 +1,30 @@
+
+rtems_tests_PROGRAMS = mimfs_fsrename
+mimfs_fsrename_SOURCES = ../fsrename/test.c
+mimfs_fsrename_SOURCES += ../support/fstest_support.c
+mimfs_fsrename_SOURCES += ../support/fstest_support.h
+mimfs_fsrename_SOURCES += ../support/fstest.h
+mimfs_fsrename_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fsrename_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fsrename_SOURCES += ../mimfs_support/fs_config.h
+
+dist_rtems_tests_DATA = mimfs_fsrename.scn
+#dist_rtems_tests_DATA += mimfs_fsrename.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mimfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mimfs_fsrename_OBJECTS)
+LINK_LIBS = $(mimfs_fsrename_LDLIBS)
+
+mimfs_fsrename$(EXEEXT): $(mimfs_fsrename_OBJECTS) $(mimfs_fsrename_DEPENDENCIES)
+ @rm -f mimfs_fsrename$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fsrename/mimfs_fsrename.scn b/testsuites/fstests/mimfs_fsrename/mimfs_fsrename.scn
new file mode 100644
index 0000000000..3979c2f903
--- /dev/null
+++ b/testsuites/fstests/mimfs_fsrename/mimfs_fsrename.scn
@@ -0,0 +1,287 @@
+*** BEGIN OF TEST FSRENAME MOUNTED IMFS ***
+Initializing filesystem MOUNTED IMFS
+
+Old is a simbolic link and rename operates on the simbolic link itself
+
+Testing rename with arguments: symlink01, name02 EXPECT "0"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 78
+Testing lstat with arguments: name02, &statbuf EXPECT "0"
+PASS
+Testing if name02 is now a symlink
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 86
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing unlink with arguments: name02 EXPECT "0"
+PASS
+Testing unlink with arguments: symlink01 EXPECT "-1"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 94
+
+New is a simbolic link and rename operates on the simbolic link itself
+
+Testing rename with arguments: name02, symlink01 EXPECT "0"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 116
+Testing lstat with arguments: symlink01, &statbuf EXPECT "0"
+PASS
+Testing that symlink01 is not a symlink
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 124
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing unlink with arguments: name02 EXPECT "-1"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 131
+Testing unlink with arguments: symlink01 EXPECT "0"
+PASS
+
+Testing with symbolic link loop's
+
+Testing rename with arguments: "path01, name01" EXPECT "ELOOP"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 149
+Testing rename with arguments: "path01, name01" EXPECT "ELOOP"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 152
+Testing unlink with arguments: name01 EXPECT "-1"
+PASS
+Testing unlink with arguments: symlink01 EXPECT "0"
+PASS
+Testing unlink with arguments: symlink02 EXPECT "0"
+PASS
+Testing rename with arguments: "name01, path01" EXPECT "ELOOP"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 180
+Testing rename with arguments: "name01, path01" EXPECT "ELOOP"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 183
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing unlink with arguments: symlink01 EXPECT "0"
+PASS
+Testing unlink with arguments: symlink02 EXPECT "0"
+PASS
+
+Rename file with itself
+
+Testing rename with arguments: name01, name01 EXPECT "0"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 244
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+
+Rename file with itself through a hard link in another directory
+
+Testing rename with arguments: name01, path01 EXPECT "0"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 271
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing unlink with arguments: path01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Rename directory with file
+
+Testing rename with arguments: "dir01, name01" EXPECT "ENOTDIR"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 343
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Rename file with directory
+
+Testing rename with arguments: "name01, dir01" EXPECT "EISDIR"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 367
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Rename directory with ancestor directory
+
+Testing rename with arguments: "dir02, path01" EXPECT "EINVAL"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 390
+Testing rmdir with arguments: path01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir02 EXPECT "0"
+PASS
+
+Rename directory with non empty directory
+
+Testing rename with arguments: dir01, dir02 EXPECT "-1"
+PASS
+Testing errno for EEXIST or ENOTEMPTY
+PASS
+Testing unlink with arguments: path01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir02 EXPECT "0"
+PASS
+
+Rename empty directory with another empty directory
+
+Testing rename with arguments: dir01, dir02 EXPECT "0"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 448
+Testing rmdir with arguments: dir01 EXPECT "-1"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 454
+Testing rmdir with arguments: dir02 EXPECT "0"
+PASS
+Testing rename with arguments: "dir02, path01" EXPECT "EMLINK"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 483
+Testing rmdir with arguments: path01 EXPECT "-1"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 497
+Testing rmdir with arguments: dir02 EXPECT "0"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 498
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Rename files within directories protected with S_ISVTX
+
+Testing rename with arguments: path01, name02 EXPECT "-1"
+PASS
+Testing errno for EPERM or EACCES
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 535
+Testing unlink with arguments: path01 EXPECT "0"
+PASS
+Testing unlink with arguments: name02 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+Testing rename with arguments: name02, path01 EXPECT "-1"
+PASS
+Testing errno for EPERM or EACCES
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 577
+Testing unlink with arguments: path01 EXPECT "0"
+PASS
+Testing unlink with arguments: name02 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Rename file with non existant file
+
+Testing rename with arguments: name01, name02 EXPECT "0"
+PASS
+Testing unlink with arguments: name01 EXPECT "-1"
+PASS
+Testing unlink with arguments: name02 EXPECT "0"
+PASS
+Testing rename with arguments: "name02, name01" EXPECT "ENOENT"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 660
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing unlink with arguments: name02 EXPECT "-1"
+PASS
+
+Rename file with non existant filepath
+
+Testing rename with arguments: "path01, name01" EXPECT "ENOENT"
+PASS
+Testing unlink with arguments: name01 EXPECT "-1"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Rename directory with non existant directory
+
+Testing rename with arguments: dir01, dir02 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "-1"
+PASS
+Testing rmdir with arguments: dir02 EXPECT "0"
+PASS
+
+Rename file with a name size exceeding NAME_MAX
+
+Testing rename with arguments: "name01, filename" EXPECT "ENAMETOOLONG"
+PASS
+Testing unlink with arguments: name01 EXPECT "0"
+PASS
+Testing unlink with arguments: filename EXPECT "-1"
+PASS
+
+Rename directory with current directory
+
+Testing rename with arguments: "." , dir01 EXPECT "-1"
+PASS
+Testing errno for EINVAL or EBUSY
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 787
+Testing rename with arguments: dir01, "." EXPECT "-1"
+PASS
+Testing errno for EINVAL or EBUSY
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 801
+
+Rename directory with previous directory
+
+Testing rename with arguments: ".." , dir01 EXPECT "-1"
+PASS
+Testing errno for EINVAL or EBUSY
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 817
+Testing rename with arguments: dir01, ".." EXPECT "-1"
+PASS
+Testing errno for EINVAL or EBUSY
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 831
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+
+Testing empty filepaths
+
+Testing rename with arguments: "name01, \"\"" EXPECT "ENOENT"
+PASS
+Testing with arguments: name01 EXPECT "0"
+PASS
+Testing rename with arguments: "\"\", name01" EXPECT "ENOENT"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 869
+Testing with arguments: name01 EXPECT "0"
+PASS
+
+Rename two files on a directory with no write permission
+
+Testing rename with arguments: "name01 , name02" EXPECT "EACCES"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 947
+
+Rename file between two directories, with and without write access
+
+Testing rename with arguments: "name01, path01" EXPECT "EACCES"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 971
+Testing rename with arguments: "path01, name01" EXPECT "EACCES"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 978
+Testing with arguments: name01 EXPECT "0"
+PASS
+Testing with arguments: path01 EXPECT "0"
+PASS
+Testing with arguments: path01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir02 EXPECT "0"
+PASS
+
+Rename two files on a directory with no execute permission
+
+Testing rename with arguments: "path01 , path02" EXPECT "EACCES"
+PASS
+
+Rename file between two directories, with and without execute access
+
+Testing rename with arguments: "path01, path02" EXPECT "EACCES"
+PASS
+Testing rename with arguments: "path02, path01" EXPECT "EACCES"
+FAIL testsuites/fstests/mimfs_fsrename/../fsrename/test.c: 1103
+Testing with arguments: path01 EXPECT "0"
+PASS
+Testing with arguments: path01 EXPECT "0"
+PASS
+Testing with arguments: path02 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir01 EXPECT "0"
+PASS
+Testing rmdir with arguments: dir02 EXPECT "0"
+PASS
+
+Rename files across diferent filesystems
+
+Testing rename with arguments: "name01, path01" EXPECT "EXDEV"
+PASS
+Testing with arguments: path01 EXPECT "-1"
+PASS
+Testing with arguments: name01 EXPECT "0"
+PASS
+
+
+Shutting down filesystem MOUNTED IMFS
+*** END OF TEST FSRENAME MOUNTED IMFS ***