]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw_file: add librgw unit test arguments
authorMatt Benjamin <mbenjamin@redhat.com>
Tue, 5 Jan 2021 21:08:02 +0000 (16:08 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Mon, 25 Jan 2021 21:46:25 +0000 (16:46 -0500)
Also adjust some unit test files to avoid trivial failures.
Fixes missing commit after rgw_write(), as well as conditional
cleanup.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
qa/workunits/rgw/test_librgw_file.sh
src/test/librgw_file_aw.cc
src/test/librgw_file_cd.cc
src/test/librgw_file_gp.cc
src/test/librgw_file_nfsns.cc

index ab4b67eb04021000e5ddf2ee507288ddfb36d08d..7eed6ad872602b093720eadfdce0f5d799e4211c 100755 (executable)
@@ -1,19 +1,51 @@
 #!/bin/sh -e
 
-export AWS_ACCESS_KEY_ID=`openssl rand -base64 20`
-export AWS_SECRET_ACCESS_KEY=`openssl rand -base64 40`
 
-radosgw-admin user create --uid ceph-test-librgw-file \
+if [ -z ${AWS_ACCESS_KEY_ID} ]
+then
+    export AWS_ACCESS_KEY_ID=`openssl rand -base64 20`
+    export AWS_SECRET_ACCESS_KEY=`openssl rand -base64 40`
+
+    radosgw-admin user create --uid ceph-test-librgw-file \
        --access-key $AWS_ACCESS_KEY_ID \
        --secret $AWS_SECRET_ACCESS_KEY \
        --display-name "librgw test user" \
        --email librgw@example.com || echo "librgw user exists"
+fi
+
+# nfsns is the main suite
+
+# create herarchy, and then list it
+echo "phase 1.1"
+ceph_test_librgw_file_nfsns  --hier1 --dirs1 --create --rename --verbose
+
+# the older librgw_file can consume the namespace
+echo "phase 1.2"
+ceph_test_librgw_file_nfsns --getattr --verbose
+
+# and delete the hierarchy
+echo "phase 1.3"
+ceph_test_librgw_file_nfsns --hier1 --dirs1 --delete --verbose
+
+# bulk create/delete buckets
+echo "phase 2.1"
+ceph_test_librgw_file_cd --create --multi --verbose
+echo "phase 2.2"
+ceph_test_librgw_file_cd --delete --multi --verbose
+
+# write continuation test
+echo "phase 3.1"
+ceph_test_librgw_file_aw --create --delete --large --verify
+
+# continued readdir
+echo "phase 4.1"
+ceph_test_librgw_file_marker --create --marker1 --marker2 --nobjs=100 --verbose
 
-ceph_test_librgw_file
-ceph_test_librgw_file_aw
-ceph_test_librgw_file_cd
-ceph_test_librgw_file_gp
-ceph_test_librgw_file_marker
-ceph_test_librgw_file_nfsns
+# advanced i/o--but skip readv/writev for now--split delete from
+# create and stat ops to avoid fault in sysobject cache
+echo "phase 5.1"
+ceph_test_librgw_file_gp --get --stat --put --create
+echo "phase 5.2"
+ceph_test_librgw_file_gp --delete
 
 exit 0
index fc494fe5a008a785886ed8fba3a00464480b2f59..1dfe9f1d1a81dcd85f6b6fabe9d219f036561c86 100644 (file)
@@ -47,7 +47,7 @@ namespace {
   bool do_verify = false;
   bool do_hexdump = false;
 
-  string bucket_name = "sorry_dave";
+  string bucket_name = "sorrydave";
   string object_name = "jocaml";
 
   struct rgw_file_handle *bucket_fh = nullptr;
index c4edecafc39cf013ab4f75ea93370f7019923eae..ff0bd1fbde2e71b1daa2c1544186120f401334be 100644 (file)
@@ -41,7 +41,7 @@ namespace {
   bool do_multi = false;
   int multi_cnt = 10;
 
-  string bucket_name = "sorry_dave";
+  string bucket_name = "sorrydave";
 
   struct {
     int argc;
index c274a82706fc27f06cbbf2d19c02f6aa80463d93..bde68fb4b9e24a0a204b2d07801f8781393f16de 100644 (file)
@@ -44,13 +44,18 @@ namespace {
   bool do_readv = false;
   bool do_verify = false;
   bool do_get = false;
+  bool do_create = false;
   bool do_delete = false;
   bool do_stat = false; // stat objects (not buckets)
   bool do_hexdump = false;
 
   bool object_open = false;
 
-  string bucket_name = "sorry_dave";
+  uint32_t owner_uid = 867;
+  uint32_t owner_gid = 5309;
+  uint32_t create_mask = RGW_SETATTR_UID | RGW_SETATTR_GID | RGW_SETATTR_MODE;
+
+  string bucket_name = "blastoff";
   string object_name = "jocaml";
 
   struct rgw_file_handle *bucket_fh = nullptr;
@@ -184,6 +189,21 @@ TEST(LibRGW, MOUNT) {
   ASSERT_NE(fs, nullptr);
 }
 
+TEST(LibRGW, CREATE_BUCKET) {
+  if (do_create) {
+    struct stat st;
+    struct rgw_file_handle *fh;
+
+    st.st_uid = owner_uid;
+    st.st_gid = owner_gid;
+    st.st_mode = 755;
+
+    int ret = rgw_mkdir(fs, fs->root_fh, bucket_name.c_str(), &st, create_mask,
+                       &fh, RGW_MKDIR_FLAG_NONE);
+    ASSERT_EQ(ret, 0);
+  }
+}
+
 TEST(LibRGW, LOOKUP_BUCKET) {
   int ret = rgw_lookup(fs, fs->root_fh, bucket_name.c_str(), &bucket_fh,
                       nullptr, 0, RGW_LOOKUP_FLAG_NONE);
@@ -474,6 +494,9 @@ int main(int argc, char *argv[])
     } else if (ceph_argparse_flag(args, arg_iter, "--prelist",
                                            (char*) nullptr)) {
       do_pre_list = true;
+    } else if (ceph_argparse_flag(args, arg_iter, "--create",
+                                           (char*) nullptr)) {
+      do_create = true;
     } else if (ceph_argparse_flag(args, arg_iter, "--hexdump",
                                            (char*) nullptr)) {
       do_hexdump = true;
index ecc3198c0213d397c711e6d3d585d4adf72bfe6f..bc4c0a4a25100f4bf6afbadc9097d02c1f7ad0e1 100644 (file)
@@ -520,7 +520,7 @@ TEST(LibRGW, RGW_SETUP_RENAME1) {
     st.st_mode = 755;
 
     for (int b_ix : {0, 1}) {
-      std::string bname{"brename_" + to_string(b_ix)};
+      std::string bname{"brename" + to_string(b_ix)};
       obj_rec brec{bname, nullptr, nullptr, nullptr};
       (void) rgw_lookup(fs, fs->root_fh, brec.name.c_str(), &brec.fh,
                        nullptr, 0, RGW_LOOKUP_FLAG_NONE);