summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-29 11:34:53 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-03 11:35:11 +0100
commitc4d5a341bd5aad1141be929a5a7e67a59d3730aa (patch)
tree3a754100b3122bf2ad3b8180856b265e5d731e45
parentsptests/spextensions01: Add comment (diff)
downloadrtems-c4d5a341bd5aad1141be929a5a7e67a59d3730aa.tar.bz2
fstests/fsrename: Rename a file twice
-rw-r--r--testsuites/fstests/fsrename/test.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/testsuites/fstests/fsrename/test.c b/testsuites/fstests/fsrename/test.c
index d5acb7031d..487c60b45c 100644
--- a/testsuites/fstests/fsrename/test.c
+++ b/testsuites/fstests/fsrename/test.c
@@ -208,6 +208,34 @@ static void symbolic_link_test (void)
rtems_test_assert (status == 0);
}
+static void rename_file_twice_test (void)
+{
+ const char *name01 = "name01";
+ const char *name02 = "name02";
+ const char *name03 = "name03";
+ mode_t mode;
+ int fd;
+ int status;
+
+ puts ("\nRename file twice\n");
+
+ mode = S_IRWXU | S_IRWXG | S_IRWXO;
+ fd = creat (name01, mode);
+ rtems_test_assert (fd >= 0);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ EXPECT_EQUAL (0, rename, name01, name02);
+ EXPECT_EQUAL (0, rename, name02, name03);
+
+ errno = 0;
+ EXPECT_EQUAL (-1, unlink, name01);
+ rtems_test_assert (errno == ENOENT);
+ EXPECT_EQUAL (-1, unlink, name02);
+ rtems_test_assert (errno == ENOENT);
+ EXPECT_EQUAL (0, unlink, name03);
+}
+
static void same_file_test (void)
{
int fd;
@@ -1221,6 +1249,7 @@ static void filesystem_test (void)
void test (void)
{
symbolic_link_test ();
+ rename_file_twice_test ();
same_file_test ();
directory_test ();
arg_test ();