]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
s3: add read to unitest
authorYehuda Sadeh <yehuda@hq.newdream.net>
Thu, 30 Apr 2009 20:21:22 +0000 (13:21 -0700)
committerSage Weil <sage@newdream.net>
Mon, 11 May 2009 22:29:03 +0000 (15:29 -0700)
src/s3/c3.cc

index 5d716cadba16d50b9f6de56583cfc4476ca2bd48..6bf96d70b077d68563809b38c4014a99d6561e76 100644 (file)
@@ -87,6 +87,22 @@ class C3 : public Dispatcher
       cerr << "WriteCommit finish" << std::endl;
     }
   };
+  class C_ReadCommit : public Context {
+    object_t oid;
+    loff_t start;
+    size_t length;
+    bufferlist *bl;
+  public:
+    tid_t tid;
+    C_ReadCommit(object_t o, loff_t s, size_t l, bufferlist *b) : oid(o), start(s), length(l), bl(b) {}
+    void finish(int r) {
+       char *buf = bl->c_str();
+      cerr << "ReadCommit finish" << std::endl;
+      for (size_t i=0; i<bl->length(); i++)
+       cerr << (int)buf[i] << " ";
+      cerr << std::endl;
+    }
+  };
 
 public:
   C3() : messenger(NULL), lock("c3") {}
@@ -94,6 +110,7 @@ public:
 
 
   void write();
+  void read();
 };
 
 
@@ -201,13 +218,16 @@ bool C3::_dispatch(Message *m)
 void C3::write()
 {
   SnapContext snapc;
-  object_t oid(0x1010, 0);
+  object_t oid(0x1020, 0);
   loff_t off = 0;
   size_t len = 1024;
   bufferlist bl;
-  utime_t ut;
+  utime_t ut = g_clock.now();
   char buf[len];
 
+  for (size_t i=0; i<len; i++)
+    buf[i] = i%20;
+
   bl.append(buf, len);
 
   C_WriteAck *onack = new C_WriteAck(oid, off, len);
@@ -225,6 +245,28 @@ void C3::write()
 
 }
 
+void C3::read()
+{
+  SnapContext snapc;
+  object_t oid(0x1020, 0);
+  loff_t off = 0;
+  size_t len = 1024;
+  bufferlist *bl = new bufferlist;
+
+  C_ReadCommit *oncommit = new C_ReadCommit(oid, off, len, bl);
+
+  ceph_object_layout layout = objecter->osdmap->file_to_object_layout(oid, g_default_mds_dir_layout);
+
+  dout(0) << "going to read" << dendl;
+
+  objecter->read(oid, layout,
+             off, len, bl, 0,
+              oncommit);
+
+  dout(0) << "after read call" << dendl;
+
+}
+
 int main(int argc, const char **argv) 
 {
   vector<const char*> args;
@@ -249,6 +291,7 @@ int main(int argc, const char **argv)
   c3.init();
 
   c3.write();
+  c3.read();
 
   rank.wait();