Parcourir la source

Stresstests: Adds more tests for "green" suite

Ask Solem il y a 11 ans
Parent
commit
f79a0169a3
2 fichiers modifiés avec 24 ajouts et 2 suppressions
  1. 13 1
      funtests/stress/README.rst
  2. 11 1
      funtests/stress/stress/suite.py

+ 13 - 1
funtests/stress/README.rst

@@ -59,7 +59,19 @@ Ideas include:
     $ celery -A stress worker -c1 --maxtasksperchild=1 -- celery.acks_late=1
     $ celery -A stress worker -c1 --maxtasksperchild=1 -- celery.acks_late=1
 
 
 
 
-It's a good idea to include the ``--purge`` argument to clear out tasks from
+8) Worker using eventlet pool.
+
+    Start the worker::
+
+        $ celery -A stress worker -c1000 -P eventlet
+
+    Then must use the `-g green` test group::
+
+        $ python -m stress -g green
+
+9) Worker using gevent pool.
+
+It's also a good idea to include the ``--purge`` argument to clear out tasks from
 previous runs.
 previous runs.
 
 
 Note that the stress client will probably hang if the test fails, so this
 Note that the stress client will probably hang if the test fails, so this

+ 11 - 1
funtests/stress/stress/suite.py

@@ -17,7 +17,7 @@ from celery.utils.text import pluralize
 from celery.utils.timeutils import humanize_seconds
 from celery.utils.timeutils import humanize_seconds
 
 
 from .app import (
 from .app import (
-    marker, _marker, add, any_, kill, sleeping,
+    marker, _marker, add, any_, exiting, kill, sleeping,
     sleeping_ignore_limits, segfault,
     sleeping_ignore_limits, segfault,
 )
 )
 from .data import BIG, SMALL
 from .data import BIG, SMALL
@@ -73,11 +73,14 @@ class Suite(object):
                 self.revoketermfast,
                 self.revoketermfast,
                 self.revoketermslow,
                 self.revoketermslow,
                 self.alwayskilled,
                 self.alwayskilled,
+                self.alwaysexits,
             ),
             ),
             'green': testgroup(
             'green': testgroup(
                 self.manyshort,
                 self.manyshort,
                 self.bigtasks,
                 self.bigtasks,
                 self.smalltasks,
                 self.smalltasks,
+                self.alwaysexits,
+                self.group_with_exit,
             ),
             ),
         }
         }
 
 
@@ -159,6 +162,9 @@ class Suite(object):
     def termbysig(self):
     def termbysig(self):
         self._evil_groupmember(kill)
         self._evil_groupmember(kill)
 
 
+    def group_with_exit(self):
+        self._evil_groupmember(exiting)
+
     def termbysegfault(self):
     def termbysegfault(self):
         self._evil_groupmember(segfault)
         self._evil_groupmember(segfault)
 
 
@@ -173,6 +179,10 @@ class Suite(object):
         g = group(kill.s() for _ in range(10))
         g = group(kill.s() for _ in range(10))
         self.join(g(), timeout=10)
         self.join(g(), timeout=10)
 
 
+    def alwaysexits(self):
+        g = group(exiting.s() for _ in range(10))
+        self.join(g(), timeout=10)
+
     def _evil_groupmember(self, evil_t, *eargs, **opts):
     def _evil_groupmember(self, evil_t, *eargs, **opts):
         g1 = group(add.s(2, 2).set(**opts), evil_t.s(*eargs).set(**opts),
         g1 = group(add.s(2, 2).set(**opts), evil_t.s(*eargs).set(**opts),
                    add.s(4, 4).set(**opts), add.s(8, 8).set(**opts))
                    add.s(4, 4).set(**opts), add.s(8, 8).set(**opts))