Browse Source

Stresstests: Adds test with task returning large values

Ask Solem 11 years ago
parent
commit
cba17a21fc
2 changed files with 14 additions and 1 deletions
  1. 6 0
      funtests/stress/stress/app.py
  2. 8 1
      funtests/stress/stress/suite.py

+ 6 - 0
funtests/stress/stress/app.py

@@ -76,6 +76,12 @@ def any_(*args, **kwargs):
         sleep(wait)
 
 
+@app.task
+def any_returning(*args, **kwargs):
+    any_(*args, **kwargs)
+    return args, kwargs
+
+
 @app.task
 def exiting(status=0):
     sys.exit(status)

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

@@ -20,7 +20,7 @@ from celery.utils.timeutils import humanize_seconds
 
 from .app import (
     marker, _marker, add, any_, exiting, kill, sleeping,
-    sleeping_ignore_limits, segfault,
+    sleeping_ignore_limits, segfault, any_returning,
 )
 from .data import BIG, SMALL
 from .fbi import FBI
@@ -98,6 +98,7 @@ class Suite(object):
                 self.manyshort,
                 self.termbysig,
                 self.bigtasks,
+                self.bigtasksbigvalue,
                 self.smalltasks,
                 self.timelimits,
                 self.timelimits_soft,
@@ -109,6 +110,7 @@ class Suite(object):
             'green': testgroup(
                 self.manyshort,
                 self.bigtasks,
+                self.bigtasksbigvalue,
                 self.smalltasks,
                 self.alwaysexits,
                 self.group_with_exit,
@@ -241,6 +243,11 @@ class Suite(object):
         self.join(g1(), timeout=10)
         self.join(g2(), timeout=10)
 
+    def bigtasksbigvalue(self):
+        g = group(any_returning.s(BIG, sleep=0.3) for i in range(8))
+        r = g()
+        self.join(r, timeout=10)
+
     def bigtasks(self, wait=None):
         self._revoketerm(wait, False, False, BIG)