-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathtest_types_rbtree.py
More file actions
34 lines (28 loc) · 1.19 KB
/
test_types_rbtree.py
File metadata and controls
34 lines (28 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# -*- coding: utf-8 -*-
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
import unittest
import gdb
from crash.types.rbtree import rbtree_postorder_for_each, rbtree_postorder_for_each_entry
class TestRbtree(unittest.TestCase):
def setUp(self):
self.vmap_area_root = gdb.lookup_symbol('vmap_area_root')[0].value()
self.vmap_area_type = gdb.lookup_type('struct vmap_area')
self.rb_node_type = gdb.lookup_type('struct rb_node')
def test_postorder_for_each(self):
count = 0
last = None
for node in rbtree_postorder_for_each(self.vmap_area_root):
count += 1
last = node
self.assertTrue(count > 0)
self.assertTrue(last.type == self.rb_node_type)
def test_postorder_for_each_entry(self):
count = 0
last = None
for vmap_area in rbtree_postorder_for_each_entry(self.vmap_area_root,
self.vmap_area_type, 'rb_node'):
count += 1
last = vmap_area
self.assertTrue(count > 0)
self.assertTrue(last.type == self.vmap_area_type)
self.assertTrue(int(last['va_start']) <= int(last['va_end']))