diff options
author | Jeremy Erickson <jerickso@cs.unc.edu> | 2013-11-25 16:00:17 -0500 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-11-26 18:14:57 -0500 |
commit | eff718df52ffeb21bff6b59a5584e5b641887832 (patch) | |
tree | 2bcafa03fb5688e112c019095c9d23eca02a7bc5 /tests/example_end_to_end.py | |
parent | 972ff75fcdddf59db00b50e8a28414cf0894cc24 (diff) |
Add example code and related end-to-end tests.
Diffstat (limited to 'tests/example_end_to_end.py')
-rw-r--r-- | tests/example_end_to_end.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/example_end_to_end.py b/tests/example_end_to_end.py new file mode 100644 index 0000000..1181490 --- /dev/null +++ b/tests/example_end_to_end.py | |||
@@ -0,0 +1,67 @@ | |||
1 | # Uses the example code in the example/ directory, since it's a good end-to-end | ||
2 | # test. | ||
3 | from __future__ import division | ||
4 | |||
5 | import unittest | ||
6 | |||
7 | from example.driver import get_script_dir, nolock_example, lock_example | ||
8 | |||
9 | nolock_example_1_list = [0, 55575, 55575, 67570, 67569, 8805, 8805, 68149, | ||
10 | 68149, 12514, 12513, 55400, 55400, 76501, 76501, | ||
11 | 66761, 66762, -324, -324, 91995, 91995, 35996, 35997] | ||
12 | |||
13 | nolock_example_2_list = None | ||
14 | lock_example_1_list = [-44967, -104360, -9607, -44134, -53237, -31791, -68420, | ||
15 | -67526, -55107, -47183, -11898] | ||
16 | |||
17 | lock_example_2_list = None | ||
18 | |||
19 | class NoLockExample(unittest.TestCase): | ||
20 | def setUp(self): | ||
21 | example_dir = get_script_dir() | ||
22 | self.nolock_example_1 = example_dir + "/nolock_example_1" | ||
23 | self.nolock_example_2 = example_dir + "/nolock_example_2" | ||
24 | results = nolock_example([self.nolock_example_1, self.nolock_example_2]) | ||
25 | self.distilled = [] | ||
26 | for (name, clusts) in results: | ||
27 | if clusts is None: | ||
28 | self.distilled.append((name, None)) | ||
29 | else: | ||
30 | new_distilled = [] | ||
31 | for clust in clusts: | ||
32 | new_distilled += [task.response_time - task.deadline | ||
33 | for task in clust] | ||
34 | self.distilled.append((name, new_distilled)) | ||
35 | |||
36 | def test_nolock_example_1_works(self): | ||
37 | self.assertEqual(self.distilled[0], (self.nolock_example_1, | ||
38 | nolock_example_1_list)) | ||
39 | |||
40 | def test_nolock_example_2_works(self): | ||
41 | self.assertEqual(self.distilled[1], (self.nolock_example_2, | ||
42 | nolock_example_2_list)) | ||
43 | |||
44 | class LockExample(unittest.TestCase): | ||
45 | def setUp(self): | ||
46 | example_dir = get_script_dir() | ||
47 | self.lock_example_1 = example_dir + "/lock_example_1" | ||
48 | self.lock_example_2 = example_dir + "/lock_example_2" | ||
49 | results = lock_example([self.lock_example_1, self.lock_example_2]) | ||
50 | self.distilled = [] | ||
51 | for (name, clusts) in results: | ||
52 | if clusts is None: | ||
53 | self.distilled.append((name, None)) | ||
54 | else: | ||
55 | new_distilled = [] | ||
56 | for clust in clusts: | ||
57 | new_distilled += [task.response_time - task.deadline | ||
58 | for task in clust] | ||
59 | self.distilled.append((name, new_distilled)) | ||
60 | |||
61 | def test_nolock_example_1_works(self): | ||
62 | self.assertEqual(self.distilled[0], (self.lock_example_1, | ||
63 | lock_example_1_list)) | ||
64 | |||
65 | def test_nolock_example_2_works(self): | ||
66 | self.assertEqual(self.distilled[1], (self.lock_example_2, | ||
67 | lock_example_2_list)) | ||