From 3fbfd9fce3e68ad4801f281a17341eaebed5200d Mon Sep 17 00:00:00 2001
From: robk-tahoe <robk-tahoe@allmydata.com>
Date: Mon, 20 Oct 2008 16:52:35 -0700
Subject: [PATCH] fuse/runtests: make exceptions in 'read_in_random_order' into
 TestFailures

---
 contrib/fuse/runtests.py | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/contrib/fuse/runtests.py b/contrib/fuse/runtests.py
index 67f68091..5a94cce8 100644
--- a/contrib/fuse/runtests.py
+++ b/contrib/fuse/runtests.py
@@ -468,19 +468,27 @@ class SystemTest (object):
         # XXX this should also do a test where sz%bs != 0, so that it correctly tests
         # the edge case where the last read is a 'short' block
         path = os.path.join(testdir, name)
-        fsize = os.path.getsize(path)
-        if fsize != len(body):
-            tmpl = 'Expected file size %s but found %s'
-            raise TestFailure(tmpl, len(body), fsize)
-
-        f = open(path, 'r')
-        posns = range(0,sz,bs)
-        random.shuffle(posns)
-        data = [None] * (sz/bs)
-        for p in posns:
-            f.seek(p)
-            data[p/bs] = f.read(bs)
-        found = ''.join(data)
+        try:
+            fsize = os.path.getsize(path)
+            if fsize != len(body):
+                tmpl = 'Expected file size %s but found %s'
+                raise TestFailure(tmpl, len(body), fsize)
+        except Exception, err:
+            tmpl = 'Could not read file size for %r: %r'
+            raise TestFailure(tmpl, path, err)
+
+        try:
+            f = open(path, 'r')
+            posns = range(0,sz,bs)
+            random.shuffle(posns)
+            data = [None] * (sz/bs)
+            for p in posns:
+                f.seek(p)
+                data[p/bs] = f.read(bs)
+            found = ''.join(data)
+        except Exception, err:
+            tmpl = 'Could not read file %r: %r'
+            raise TestFailure(tmpl, path, err)
 
         if found != body:
             tmpl = 'Expected file contents %s but found %s'
-- 
2.45.2