From: Yan, Zheng Date: Wed, 9 Mar 2016 04:06:52 +0000 (+0800) Subject: ceph_test_libcephfs: shutdown without closing file/dir X-Git-Tag: v10.1.0~174^2~1^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F7994%2Fhead;p=ceph.git ceph_test_libcephfs: shutdown without closing file/dir Signed-off-by: Yan, Zheng --- diff --git a/src/test/libcephfs/test.cc b/src/test/libcephfs/test.cc index 464c5a966453..06061a6f24ef 100644 --- a/src/test/libcephfs/test.cc +++ b/src/test/libcephfs/test.cc @@ -1321,3 +1321,26 @@ TEST(LibCephFS, GetOsdAddr) { ceph_shutdown(cmount); } + +TEST(LibCephFS, OpenNoClose) { + struct ceph_mount_info *cmount; + ASSERT_EQ(ceph_create(&cmount, NULL), 0); + ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0); + ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL)); + ASSERT_EQ(ceph_mount(cmount, "/"), 0); + + pid_t mypid = getpid(); + char str_buf[256]; + sprintf(str_buf, "open_no_close_dir%d", mypid); + ASSERT_EQ(0, ceph_mkdirs(cmount, str_buf, 0777)); + + struct ceph_dir_result *ls_dir = NULL; + ASSERT_EQ(ceph_opendir(cmount, str_buf, &ls_dir), 0); + + sprintf(str_buf, "open_no_close_file%d", mypid); + int fd = ceph_open(cmount, str_buf, O_RDONLY|O_CREAT, 0666); + ASSERT_LT(0, fd); + + // shutdown should force close opened file/dir + ceph_shutdown(cmount); +}