r68105 - sandbox/trunk/iobench/iobench.py
Author: antoine.pitrou Date: Wed Dec 31 18:19:29 2008 New Revision: 68105 Log: use OptionParser, and fix a test which can't be run in text mode (because of relative seeks) Modified: sandbox/trunk/iobench/iobench.py Modified: sandbox/trunk/iobench/iobench.py ============================================================================== --- sandbox/trunk/iobench/iobench.py (original) +++ sandbox/trunk/iobench/iobench.py Wed Dec 31 18:19:29 2008 @@ -7,6 +7,7 @@ import sys import hashlib import functools +from optparse import OptionParser out = sys.stdout @@ -104,7 +105,7 @@ for i in xrange(0, size - 1, 1000): f.seek(i, 0) -@with_open_mode("r") +@with_open_mode("rb") @with_sizes("medium") def read_seek_bytewise(f): """ alternate read & seek one unit """ @@ -112,7 +113,7 @@ while f.read(1): f.seek(1, 1) -@with_open_mode("r") +@with_open_mode("rb") @with_sizes("medium") def read_seek_blockwise(f): """ alternate read & seek 1000 units """ @@ -296,8 +297,6 @@ } file_sizes = list(get_file_sizes()) - options = options or "rwbt" - if "b" in options: print("Binary unit = one byte") if "t" in options: @@ -393,15 +392,44 @@ f.write(head) f.write(tail) -def main(options=None): +def main(): + usage = "usage: %prog [-h|--help] [options]" + parser = OptionParser(usage=usage) + parser.add_option("-b", "--binary", + action="store_true", dest="binary", default=False, + help="run binary I/O tests") + parser.add_option("-t", "--text", + action="store_true", dest="text", default=False, + help="run text I/O tests") + parser.add_option("-r", "--read", + action="store_true", dest="read", default=False, + help="run read tests") + parser.add_option("-w", "--write", + action="store_true", dest="write", default=False, + help="run write & modify tests") + options, args = parser.parse_args() + if args: + parser.error("unexpected arguments") + + test_options = "" + if options.read: + test_options += "r" + if options.write: + test_options += "w" + elif not options.read: + test_options += "rw" + if options.text: + test_options += "t" + if options.binary: + test_options += "b" + elif not options.text: + test_options += "tb" + prepare_files() - run_all_tests(options) + run_all_tests(test_options) if __name__ == "__main__": - if len(sys.argv) > 1: - main(sys.argv[1]) - else: - main() + main() # -- This part to exercise text reading. Don't change anything! --
participants (1)
-
antoine.pitrou