Index: tools/cygprofile/mergetraces_unittest.py |
diff --git a/tools/cygprofile/mergetraces_unittest.py b/tools/cygprofile/mergetraces_unittest.py |
index 5a00bd6d9a03a0450a0a329f62c4cc0a1f38c6cc..de881379d69a260e0092acfc77985ecda748646a 100644 |
--- a/tools/cygprofile/mergetraces_unittest.py |
+++ b/tools/cygprofile/mergetraces_unittest.py |
@@ -6,17 +6,17 @@ import unittest |
import mergetraces |
-class GroupByProcessAndThreadIdTest(unittest.TestCase): |
+class GroupByProcessAndThreadIdTestBasic(unittest.TestCase): |
def runTest(self): |
# (sec, usec, 'pid:tid', function address). |
input_trace = [ |
(100, 10, '2000:2001', 0x5), |
(100, 11, '2000:2001', 0x3), |
- (100, 11, '2000:2000', 0x1), |
- (100, 12, '2001:2001', 0x6), |
- (100, 13, '2000:2002', 0x8), |
- (100, 13, '2001:2002', 0x9), |
- (100, 14, '2000:2000', 0x7) |
+ (100, 13, '2000:1999', 0x8), |
+ (100, 14, '2000:2000', 0x7), |
+ (120, 13, '2001:2003', 0x9), |
+ (150, 12, '2001:2004', 0x6), |
+ (180, 11, '2000:2000', 0x1), |
] |
# Functions should be grouped by thread-id and PIDs should not be |
@@ -24,13 +24,28 @@ class GroupByProcessAndThreadIdTest(unittest.TestCase): |
expected_trace = [ |
(100, 10, '2000:2001', 0x5), |
(100, 11, '2000:2001', 0x3), |
- (100, 11, '2000:2000', 0x1), |
+ (100, 13, '2000:1999', 0x8), |
(100, 14, '2000:2000', 0x7), |
- (100, 13, '2000:2002', 0x8), |
- (100, 12, '2001:2001', 0x6), |
- (100, 13, '2001:2002', 0x9) |
+ (180, 11, '2000:2000', 0x1), |
+ (120, 13, '2001:2003', 0x9), |
+ (150, 12, '2001:2004', 0x6), |
] |
grouped_trace = mergetraces.GroupByProcessAndThreadId(input_trace) |
self.assertEqual(grouped_trace, expected_trace) |
+ |
+class GroupByProcessAndThreadIdFailsWithNonUniqueTIDs(unittest.TestCase): |
+ def runTest(self): |
+ # (sec, usec, 'pid:tid', function address). |
+ input_trace = [ |
+ (100, 10, '1999:2001', 0x5), |
+ (100, 10, '1988:2001', 0x5), |
+ ] |
+ |
+ try: |
+ mergetraces.GroupByProcessAndThreadId(input_trace) |
+ except Exception: |
+ return |
+ |
+ self.fail('Multiple processes should not have a same thread-ID.') |