]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunits/fs/multiclient_sync_read_eof.py
authorSage Weil <sage@inktank.com>
Wed, 14 Aug 2013 04:27:21 +0000 (21:27 -0700)
committerSage Weil <sage@inktank.com>
Wed, 14 Aug 2013 04:28:35 +0000 (21:28 -0700)
Simple test to verify clients behave at EOF.

Signed-off-by: Sage Weil <sage@inktank.com>
qa/workunits/fs/multiclient_sync_read_eof.py [new file with mode: 0755]

diff --git a/qa/workunits/fs/multiclient_sync_read_eof.py b/qa/workunits/fs/multiclient_sync_read_eof.py
new file mode 100755 (executable)
index 0000000..03293d8
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+
+import argparse
+import os
+import sys
+import time
+
+def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('mnt1')
+    parser.add_argument('mnt2')
+    parser.add_argument('fn')
+    args = parser.parse_args()
+
+    file(os.path.join(args.mnt1, args.fn), 'w')
+    f1 = file(os.path.join(args.mnt1, args.fn), 'r+')
+    f2 = file(os.path.join(args.mnt2, args.fn), 'r+')
+
+    f1.write('foo')
+    f1.flush()
+    a = f2.read(3)
+    print 'got "%s"' % a
+    assert a == 'foo'
+    f2.write('bar')
+    f2.flush()
+    a = f1.read(3)
+    print 'got "%s"' % a
+    assert a == 'bar'
+
+    ## test short reads
+    f1.write('short')
+    f1.flush()
+    a = f2.read(100)
+    print 'got "%s"' % a
+    assert a == 'short'
+    f2.write('longer')
+    f2.flush()
+    a = f1.read(1000)
+    print 'got "%s"' % a
+    assert a == 'longer'
+
+    print 'ok'
+
+main()