Skip to content

Commit 500bb02

Browse files
authored
Merge pull request #33 from distributed-system-analysis/exception_assert_cleanups
no naked asserts, remove dead or redundant code
2 parents e8d3224 + 3e96714 commit 500bb02

File tree

3 files changed

+20
-29
lines changed

3 files changed

+20
-29
lines changed

invoke_process.py

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
'''
1010

1111
import multiprocessing
12+
import shutil
13+
import os
14+
import time
15+
1216
import smallfile
1317
from smallfile import unittest_module, SMFRunException
1418
from sync_files import touch
15-
import os
16-
import time
1719

1820

1921
# this class launches multiple threads with SmallfileWorkload instances
@@ -60,22 +62,6 @@ def run(self):
6062
# including multi-threaded test
6163
# to run, just do "python invoke_process.py"
6264

63-
def deltree(dir_tree):
64-
assert len(dir_tree) > 6
65-
if not os.path.exists(dir_tree):
66-
return
67-
assert os.path.isdir(dir_tree)
68-
for (dir, subdirs, files) in os.walk(dir_tree, topdown=False):
69-
for f in files:
70-
os.unlink(os.path.join(dir, f))
71-
for d in subdirs:
72-
os.rmdir(os.path.join(dir, d))
73-
os.rmdir(dir_tree)
74-
75-
76-
ok = 0
77-
78-
7965
class Test(unittest_module.TestCase):
8066

8167
def setUp(self):
@@ -84,15 +70,15 @@ def setUp(self):
8470
self.invok.verbose = True
8571
self.invok.tid = 'regtest'
8672
self.invok.start_log()
87-
deltree(self.invok.src_dirs[0])
73+
shutil.rmtree(self.invok.src_dirs[0], ignore_errors=True)
8874
os.makedirs(self.invok.src_dirs[0], 0o644)
8975

9076
def test_multiproc_stonewall(self):
9177
self.invok.log.info('starting stonewall test')
9278
thread_ready_timeout = 4
9379
thread_count = 4
9480
for tree in self.invok.top_dirs:
95-
deltree(tree)
81+
shutil.rmtree(tree)
9682
os.mkdir(tree)
9783
for dir in self.invok.src_dirs:
9884
os.mkdir(dir)
@@ -143,7 +129,7 @@ def test_multiproc_stonewall(self):
143129
assert rtnd_invok.elapsed_time is not None
144130
assert rtnd_invok.rq_final is not None
145131
assert rtnd_invok.filenum_final is not None
146-
if rtnd_invok.status != ok:
132+
if rtnd_invok.status != rtnd_invok.OK:
147133
raise SMFRunException('subprocess failure for %s invocation %s: '
148134
% (str(t), str(rtnd_invok)))
149135

output_results.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ def output_results(invoke_list, test_params):
9292
# add up work that it did
9393
# and determine time interval over which test ran
9494

95-
assert isinstance(invk, smallfile.SmallfileWorkload)
95+
if not isinstance(invk, smallfile.SmallfileWorkload):
96+
raise SMFResultException('invoke is of wrong type: %s' % str(invk))
9697
if invk.status:
9798
status = 'ERR: ' + os.strerror(invk.status)
9899
else:

smallfile.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ class SMFResultException(Exception):
147147
class SMFRunException(Exception):
148148
pass
149149

150+
def myassert(bool_expr):
151+
if (not bool_expr):
152+
raise SMFRunException('assertion failed!')
150153

151154
# abort routine just cleans up threads
152155

@@ -786,8 +789,9 @@ def end_test(self):
786789
# during do_workload()
787790
if self.test_ended():
788791
return
789-
assert self.end_time is None and self.rq_final is None and self.filenum_final is None
790-
792+
myassert(self.end_time is None and
793+
self.rq_final is None and
794+
self.filenum_final is None)
791795
self.rq_final = self.rq
792796
self.filenum_final = self.filenum
793797
self.end_time = time.time()
@@ -968,11 +972,11 @@ def create_biggest_buf(self, contents_random):
968972

969973
# initialize to a single random byte
970974
biggest_buf = bytearray([self.randstate.randrange(0, 255)])
971-
assert len(biggest_buf) == 1
975+
myassert(len(biggest_buf) == 1)
972976
powerof2 = 1
973977
powersum = 1
974978
for j in range(0, self.biggest_buf_size_bits - 1):
975-
assert len(biggest_buf) == powersum
979+
myassert(len(biggest_buf) == powersum)
976980
powerof2 *= 2
977981
powersum += powerof2
978982
# biggest_buf length is now 2^j - 1
@@ -987,8 +991,8 @@ def create_biggest_buf(self, contents_random):
987991
# by just using different offset into biggest_buf
988992

989993
biggest_buf.extend(biggest_buf[0:self.buf_offset_range])
990-
assert (len(biggest_buf) ==
991-
self.biggest_buf_size + self.buf_offset_range)
994+
myassert(
995+
len(biggest_buf) == self.biggest_buf_size + self.buf_offset_range)
992996
return biggest_buf
993997

994998
# allocate buffer of correct size with offset based on filenum, tid, etc.
@@ -1029,7 +1033,7 @@ def prepare_buf(self):
10291033
unique_offset = ((int(self.tid)+1) * self.filenum) % max_buffer_offset
10301034
except ValueError:
10311035
unique_offset = self.filenum % max_buffer_offset
1032-
assert total_space + unique_offset < len(self.biggest_buf)
1036+
myassert(total_space + unique_offset < len(self.biggest_buf))
10331037
#if self.verbose:
10341038
# self.log.debug('unique_offset: %d' % unique_offset)
10351039

0 commit comments

Comments
 (0)