Rev 7: Make the bench suite be parameterised. in http://people.ubuntu.com/~robertc/baz2.0/plugins/piss/trunk
Robert Collins
robertc at robertcollins.net
Sun Aug 19 07:46:10 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/plugins/piss/trunk
------------------------------------------------------------
revno: 7
revision-id: robertc at robertcollins.net-20070819064600-0zp9lp3jubju05g0
parent: robertc at robertcollins.net-20070503051846-ye6016zuffkelvk2
committer: Robert Collins <robertc at robertcollins.net>
branch nick: trunk
timestamp: Sun 2007-08-19 16:46:00 +1000
message:
Make the bench suite be parameterised.
modified:
benchmarks/__init__.py __init__.py-20070501062416-23ztx65da4ul4oxv-6
benchmarks/bench_import.py bench_import.py-20070501062416-23ztx65da4ul4oxv-7
=== modified file 'benchmarks/__init__.py'
--- a/benchmarks/__init__.py 2007-05-01 09:00:31 +0000
+++ b/benchmarks/__init__.py 2007-08-19 06:46:00 +0000
@@ -19,8 +19,12 @@
"""The real deal benchmarks."""
-
-from bzrlib.tests.TestUtil import TestLoader, TestSuite
+from bzrlib.tests import (
+ adapt_modules,
+ TestLoader,
+ TestScenarioApplier,
+ TestSuite,
+ )
def bench_suite():
@@ -28,4 +32,20 @@
'bzrlib.plugins.piss.benchmarks.bench_import',
]
loader = TestLoader()
- return loader.loadTestsFromModuleNames(module_names)
+ applier = TestScenarioApplier()
+ applier.scenarios = []
+ # manual generation of scenarios:
+ # decoration
+ for decorated in (False, True):
+ for functions in (0, 10, 100, 1000, 10000):
+ scenario_name_bits = []
+ scenario = {}
+ if decorated:
+ scenario_name_bits.append('decorated')
+ scenario['decorated'] = decorated
+ scenario_name_bits.append('%d functions' % functions)
+ scenario['functions'] = functions
+ applier.scenarios.append((','.join(scenario_name_bits), scenario))
+ result = TestSuite()
+ adapt_modules(module_names, applier, loader, result)
+ return result
=== modified file 'benchmarks/bench_import.py'
--- a/benchmarks/bench_import.py 2007-05-03 05:18:46 +0000
+++ b/benchmarks/bench_import.py 2007-08-19 06:46:00 +0000
@@ -39,39 +39,8 @@
self.import_and_forget('tiny_piss')
self.time(self.import_and_forget, 'tiny_piss')
- def test_import_tiny_module(self):
- self.time_importing_module(0)
-
- def test_import_10_functions(self):
- self.time_importing_module(10)
-
- def test_import_100_functions(self):
- self.time_importing_module(100)
-
- def test_import_1000_functions(self):
- self.time_importing_module(1000)
-
- def test_import_10000_functions(self):
- self.time_importing_module(10000)
-
- def test_import_10_decorated_functions(self):
- self.time_importing_module(10, True)
-
- def test_import_100_decorated_functions(self):
- self.time_importing_module(100, True)
-
- def test_import_1000_decorated_functions(self):
- self.time_importing_module(1000, True)
-
- def test_import_10000_decorated_functions(self):
- self.time_importing_module(10000, True)
-
- def test_import_tiny_package(self):
- self.add_cwd_to_path()
- # import once to generate a .pyc - the common case.
- self.creator.build_package('tiny_piss')
- self.import_and_forget('tiny_piss')
- self.time(self.import_and_forget, 'tiny_piss')
+ def test_import_parameterised(self):
+ self.time_importing_module(self.functions, decorated=self.decorated)
def add_cwd_to_path(self):
sys.path.append(os.getcwd())
More information about the bazaar-commits
mailing list