summaryrefslogtreecommitdiff
path: root/test/git/async
diff options
context:
space:
mode:
Diffstat (limited to 'test/git/async')
-rw-r--r--test/git/async/test_pool.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/test/git/async/test_pool.py b/test/git/async/test_pool.py
index df3eaf11..791f89d4 100644
--- a/test/git/async/test_pool.py
+++ b/test/git/async/test_pool.py
@@ -2,6 +2,7 @@
from test.testlib import *
from git.async.pool import *
from git.async.task import *
+from git.async.thread import terminate_threads
from git.async.util import cpu_count
import threading
import time
@@ -46,7 +47,7 @@ class TestThreadPool(TestBase):
# add a simple task
# it iterates n items
- ni = 1000
+ ni = 500
assert ni % 2 == 0, "ni needs to be dividable by 2"
assert ni % 4 == 0, "ni needs to be dividable by 4"
@@ -106,8 +107,9 @@ class TestThreadPool(TestBase):
assert len(rc.read(1)) == 1 # processes nothing
# rest - it has ni/2 - 2 on the queue, and pulls ni-2
# It wants too much, so the task realizes its done. The task
- # doesn't care about the items in its output channel
- assert len(rc.read(ni-2)) == ni - 2
+ # doesn't care about the items in its output channel
+ items = rc.read(ni-2)
+ assert len(items) == ni - 2
assert p.num_tasks() == null_tasks
task._assert(2, ni) # two chunks, 20 calls ( all items )
@@ -125,7 +127,8 @@ class TestThreadPool(TestBase):
assert len(rc.read(ni / 2 + 2)) == ni / 2 + 2
# have n / 4 - 2 items on queue, want n / 4 in first chunk, cause 1 processing
# ( 4 in total ). Still want n / 4 - 2 in second chunk, causing another processing
- assert len(rc.read(ni / 2 - 2)) == ni / 2 - 2
+ items = rc.read(ni / 2 - 2)
+ assert len(items) == ni / 2 - 2
task._assert( 5, ni)
assert p.num_tasks() == null_tasks # depleted
@@ -158,9 +161,12 @@ class TestThreadPool(TestBase):
task.min_count = ni / 4
rc = p.add_task(task)
for i in range(ni):
- assert rc.read(1)[0] == i
+ if async:
+ assert len(rc.read(1)) == 1
+ else:
+ assert rc.read(1)[0] == i
# END for each item
- task._assert(ni / task.min_count, ni)
+ task._assert(ni / task.min_count + 1, ni)
del(rc)
assert p.num_tasks() == null_tasks
@@ -181,6 +187,7 @@ class TestThreadPool(TestBase):
# t1 -> x -> t3
pass
+ @terminate_threads
def test_base(self):
p = ThreadPool()
@@ -239,7 +246,6 @@ class TestThreadPool(TestBase):
p.set_size(2)
self._assert_single_task(p, True)
-
# DEPENDENT TASK ASYNC MODE
###########################
self._assert_async_dependent_tasks(p)