]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librgw_file_gp: check test state before closing null fh handle
authorMatt Benjamin <mbenjamin@redhat.com>
Wed, 4 Nov 2015 17:48:03 +0000 (12:48 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Fri, 12 Feb 2016 17:05:36 +0000 (12:05 -0500)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/test/librgw_file_gp.cc

index 70468fb39ba5516b491d4fb61372f1c530b0a7e4..adc9629de3b32154afbca872e6fc654752d64dc3 100644 (file)
@@ -47,6 +47,8 @@ namespace {
   bool do_delete = false;
   bool do_hexdump = false;
 
+  bool object_open = false;
+
   string bucket_name = "sorry_dave";
   string object_name = "jocaml";
 
@@ -226,6 +228,7 @@ TEST(LibRGW, OBJ_OPEN) {
   if (do_get || do_put || do_readv || do_writev) {
     int ret = rgw_open(fs, object_fh, 0 /* flags */);
     ASSERT_EQ(ret, 0);
+    object_open = true;
   }
 }
 
@@ -361,10 +364,15 @@ TEST(LibRGW, CLEANUP) {
       uio->uio_rele(uio, RGW_UIO_NONE);
     }
   }
-  int ret = rgw_close(fs, object_fh, 0 /* flags */);
-  ASSERT_EQ(ret, 0);
-  ret = rgw_fh_rele(fs, object_fh, 0 /* flags */);
-  ASSERT_EQ(ret, 0);
+  int ret;
+  if (object_open) {
+    ret = rgw_close(fs, object_fh, 0 /* flags */);
+    ASSERT_EQ(ret, 0);
+  }
+  if (object_fh) {
+    ret = rgw_fh_rele(fs, object_fh, 0 /* flags */);
+    ASSERT_EQ(ret, 0);
+  }
   ret = rgw_fh_rele(fs, bucket_fh, 0 /* flags */);
   ASSERT_EQ(ret, 0);
 }