| @@ 79-98 (lines=20) @@ | ||
| 76 | ||
| 77 | self.assertEventsEqual("f F e E d D c C b B a") |
|
| 78 | ||
| 79 | def test_diamond_dependencies(self): |
|
| 80 | # a |
|
| 81 | # / \ |
|
| 82 | # b c |
|
| 83 | # \ / |
|
| 84 | # d |
|
| 85 | ||
| 86 | a = self._action("a") |
|
| 87 | barrier = self._barrier(2) |
|
| 88 | b = self._action("b", barrier=barrier, end_event=True) |
|
| 89 | c = self._action("c", barrier=barrier, end_event=True) |
|
| 90 | d = self._action("d", end_event=True) |
|
| 91 | a.add_dependency(b) |
|
| 92 | a.add_dependency(c) |
|
| 93 | b.add_dependency(d) |
|
| 94 | c.add_dependency(d) |
|
| 95 | ||
| 96 | execute(a, cpu_cores=3) |
|
| 97 | ||
| 98 | self.assertEventsEqual("d D bc BC a") |
|
| 99 | ||
| 100 | def test_half_diamond_dependency(self): |
|
| 101 | # a |
|
| @@ 31-48 (lines=18) @@ | ||
| 28 | ||
| 29 | self.assertEventsEqual("bcd BCD a") |
|
| 30 | ||
| 31 | def test_many_dependencies_with_default_cpu_cores(self): |
|
| 32 | # a |
|
| 33 | # /|\ |
|
| 34 | # / | \ |
|
| 35 | # b c d |
|
| 36 | ||
| 37 | a = self._action("a") |
|
| 38 | barrier = self._barrier(3) |
|
| 39 | b = self._action("b", barrier=barrier, end_event=True) |
|
| 40 | c = self._action("c", barrier=barrier, end_event=True) |
|
| 41 | d = self._action("d", barrier=barrier, end_event=True) |
|
| 42 | a.add_dependency(b) |
|
| 43 | a.add_dependency(c) |
|
| 44 | a.add_dependency(d) |
|
| 45 | ||
| 46 | execute(a, cpu_cores=None) |
|
| 47 | ||
| 48 | self.assertEventsEqual("bcd BCD a") |
|
| 49 | ||
| 50 | def test_deep_dependencies(self): |
|
| 51 | # a |
|
| @@ 12-29 (lines=18) @@ | ||
| 9 | ||
| 10 | ||
| 11 | class MultiThreadedExecutionTestCase(ActionTreeTestCase): |
|
| 12 | def test_many_dependencies(self): |
|
| 13 | # a |
|
| 14 | # /|\ |
|
| 15 | # / | \ |
|
| 16 | # b c d |
|
| 17 | ||
| 18 | a = self._action("a") |
|
| 19 | barrier = self._barrier(3) |
|
| 20 | b = self._action("b", barrier=barrier, end_event=True) |
|
| 21 | c = self._action("c", barrier=barrier, end_event=True) |
|
| 22 | d = self._action("d", barrier=barrier, end_event=True) |
|
| 23 | a.add_dependency(b) |
|
| 24 | a.add_dependency(c) |
|
| 25 | a.add_dependency(d) |
|
| 26 | ||
| 27 | execute(a, cpu_cores=3) |
|
| 28 | ||
| 29 | self.assertEventsEqual("bcd BCD a") |
|
| 30 | ||
| 31 | def test_many_dependencies_with_default_cpu_cores(self): |
|
| 32 | # a |
|