From e8ab88bd15581d6198a38916dd54ae89aea7a461 Mon Sep 17 00:00:00 2001 From: Karthikeyan Krishnasamy Date: Mon, 22 Apr 2024 18:43:13 +0530 Subject: [PATCH] tests: posix: fs: add test suite for rmdir add test suite for POSIX API rmdir Signed-off-by: Karthikeyan Krishnasamy --- tests/posix/fs/src/test_fs_dir.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/posix/fs/src/test_fs_dir.c b/tests/posix/fs/src/test_fs_dir.c index 6f5f23b5382..e52741276f5 100644 --- a/tests/posix/fs/src/test_fs_dir.c +++ b/tests/posix/fs/src/test_fs_dir.c @@ -150,3 +150,30 @@ ZTEST(posix_fs_dir_test, test_fs_readdir_threadsafe) zassert_true(test_mkdir() == TC_PASS); zassert_true(test_lsdir(TEST_DIR, true) == TC_PASS); } + +/** + * @brief Test for POSIX rmdir API + * + * @details Test creates a new directory through POSIX + * mkdir API and remove directory using rmdir. + */ +ZTEST(posix_fs_dir_test, test_fs_rmdir) +{ +#define IRWXG 0070 + /* Create and remove empty directory */ + zassert_ok(mkdir(TEST_DIR, IRWXG), "Error creating dir: %d", errno); + zassert_ok(rmdir(TEST_DIR), "Error removing dir: %d\n", errno); + + /* Create directory and open a file in the directory + * now removing the directory will fail, test will + * fail in removal of non empty directory + */ + zassert_ok(mkdir(TEST_DIR, IRWXG), "Error creating dir: %d", errno); + zassert_not_equal(open(TEST_DIR_FILE, O_CREAT | O_RDWR), -1, + "Error creating file: %d", errno); + zassert_not_ok(rmdir(TEST_DIR), "Error Non empty dir removed"); + zassert_not_ok(rmdir(""), "Error Invalid path removed"); + zassert_not_ok(rmdir(NULL), "Error Invalid path removed"); + zassert_not_ok(rmdir("TEST_DIR."), "Error Invalid path removed"); + zassert_not_ok(rmdir(TEST_FILE), "Error file removed"); +}