initial code repo
[stor4nfv.git] / src / ceph / qa / workunits / fs / multiclient_sync_read_eof.py
diff --git a/src/ceph/qa/workunits/fs/multiclient_sync_read_eof.py b/src/ceph/qa/workunits/fs/multiclient_sync_read_eof.py
new file mode 100755 (executable)
index 0000000..d3e0f8e
--- /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()
+
+    open(os.path.join(args.mnt1, args.fn), 'w')
+    f1 = open(os.path.join(args.mnt1, args.fn), 'r+')
+    f2 = open(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()