Skip to content

Commit

Permalink
Add tests for testing the Pool for probe functionality
Browse files Browse the repository at this point in the history
* Fix a bug in when testing when_new event
* Add case when a consumer needs to wait a producer
  • Loading branch information
evangelos-vazaios-wdc authored and jpgrayson committed Aug 2, 2018
1 parent 53f3bf2 commit 55b9921
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
5 changes: 4 additions & 1 deletion tests/test_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ def consumer(expected_amount, wait):
env.process(producer(2, 1))
env.process(consumer(1, 0))
env.process(consumer(2, 1))
env.process(consumer(2, 2))
env.process(producer(1, 2))
env.process(producer(1, 3))
env.run()


Expand Down Expand Up @@ -50,7 +53,7 @@ def any_waiter(env):
result.append('any')

def new_waiter(env):
yield pool.when_any()
yield pool.when_new()
assert env.now == 1
result.append('new')

Expand Down
36 changes: 36 additions & 0 deletions tests/test_probe.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from desmod.probe import attach
from desmod.queue import Queue
from desmod.pool import Pool

import pytest
import simpy
Expand Down Expand Up @@ -134,3 +135,38 @@ def proc():
env.process(proc())
env.run()
assert values == [9, 8, 7, 8]


def test_attach_pool_level(env):
values = []
pool = Pool(env)
attach('scope', pool, [values.append])

def proc():
yield pool.put(1)
yield pool.put(1)
yield pool.put(1)
item = yield pool.get(1)
assert item == 1

env.process(proc())
env.run()
assert values == [1, 2, 3, 2]


def test_attach_pool_remaining(env):
values = []
pool = Pool(env, capacity=10)

attach('scope', pool, [values.append], trace_remaining=True)

def proc():
yield pool.put(1)
yield pool.put(1)
yield pool.put(1)
item = yield pool.get(3)
assert item == 3

env.process(proc())
env.run()
assert values == [9, 8, 7, 10]

0 comments on commit 55b9921

Please sign in to comment.