Bläddra i källkod

Adds -g green option to stresstest suite for eventlet/gevent tests

Ask Solem 11 år sedan
förälder
incheckning
f7c0d7825e
2 ändrade filer med 21 tillägg och 9 borttagningar
  1. 2 0
      funtests/stress/stress/__main__.py
  2. 19 9
      funtests/stress/stress/suite.py

+ 2 - 0
funtests/stress/stress/__main__.py

@@ -30,6 +30,8 @@ class Stress(Command):
                    help='List all tests'),
             Option('-r', '--repeat', type='float', default=0,
                    help='Number of times to repeat the test suite'),
+            Option('-g', '--group', default='all',
+                   help='Specify test group (all|green)'),
         )
 
 

+ 19 - 9
funtests/stress/stress/suite.py

@@ -50,6 +50,10 @@ def pstatus(p):
         p, since=humanize_seconds(time() - p.when, now='0 seconds'))
 
 
+def testgroup(*funs):
+    return OrderedDict((fun.__name__, fun) for fun in funs)
+
+
 class Suite(object):
 
     def __init__(self, app, block_timeout=30 * 60):
@@ -58,8 +62,8 @@ class Suite(object):
         self.block_timeout = block_timeout
         self.progress = None
 
-        self.tests = OrderedDict(
-            (fun.__name__, fun) for fun in [
+        self.groups = {
+            'all': testgroup(
                 self.manyshort,
                 self.termbysig,
                 self.bigtasks,
@@ -69,12 +73,17 @@ class Suite(object):
                 self.revoketermfast,
                 self.revoketermslow,
                 self.alwayskilled,
-            ]
-        )
+            ),
+            'green': testgroup(
+                self.manyshort,
+                self.bigtasks,
+                self.smalltasks,
+            ),
+        }
 
     def run(self, names=None, iterations=50, offset=0,
-            numtests=None, list_all=False, repeat=0, **kw):
-        tests = self.filtertests(names)[offset:numtests or None]
+            numtests=None, list_all=False, repeat=0, group='all', **kw):
+        tests = self.filtertests(group, names)[offset:numtests or None]
         if list_all:
             return print(self.testlist(tests))
         print(self.banner(tests))
@@ -91,10 +100,11 @@ class Suite(object):
                 '+',
             )
 
-    def filtertests(self, names):
+    def filtertests(self, group, names):
+        tests = self.groups[group]
         try:
-            return ([self.tests[n] for n in names] if names
-                    else list(values(self.tests)))
+            return ([tests[n] for n in names] if names
+                    else list(values(tests)))
         except KeyError as exc:
             raise KeyError('Unknown test name: {0}'.format(exc))