@@ -86,7 +86,8 @@ class TestTree(greentest.TestCase):
...
@@ -86,7 +86,8 @@ class TestTree(greentest.TestCase):
# so perhaps we need a GC?
# so perhaps we need a GC?
for_inrange(3):
for_inrange(3):
gc.collect()
gc.collect()
gevent.get_hub().resolver=None# Reset resolver, don't need to see it
gevent.get_hub().threadpool=None# ditto the pool
glets=[]
glets=[]
l=MyLocal(42)
l=MyLocal(42)
assertl
assertl
...
@@ -135,6 +136,10 @@ class TestTree(greentest.TestCase):
...
@@ -135,6 +136,10 @@ class TestTree(greentest.TestCase):
def_normalize_tree_format(self,value):
def_normalize_tree_format(self,value):
importre
importre
hexobj=re.compile('0x[0123456789abcdef]+L?',re.I)
hexobj=re.compile('0x[0123456789abcdef]+L?',re.I)
hub_repr=repr(gevent.get_hub())
value=value.replace(hub_repr,"<HUB>")
value=hexobj.sub('X',value)
value=hexobj.sub('X',value)
value=value.replace('epoll','select')
value=value.replace('epoll','select')
value=value.replace('select','default')
value=value.replace('select','default')
...
@@ -160,26 +165,26 @@ class TestTree(greentest.TestCase):
...
@@ -160,26 +165,26 @@ class TestTree(greentest.TestCase):
: Greenlet Locals:
: Greenlet Locals:
: Local <class '__main__.MyLocal'> at X
: Local <class '__main__.MyLocal'> at X
: {'foo': 42}
: {'foo': 42}
+--- <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
+--- <HUB>
: Parent: <greenlet.greenlet object at X>
: Parent: <greenlet.greenlet object at X>
+--- <Greenlet "Greenlet-1" at X: t2>; finished with value <Greenlet "CustomName-0" at 0x
+--- <Greenlet "Greenlet-1" at X: t2>; finished with value <Greenlet "CustomName-0" at 0x
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
| +--- <Greenlet "CustomName-0" at X: t1>; finished with exception ExpectedException()
| +--- <Greenlet "CustomName-0" at X: t1>; finished with exception ExpectedException()
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
+--- <Greenlet "Greenlet-2" at X: t2>; finished with value <Greenlet "CustomName-4" at 0x
+--- <Greenlet "Greenlet-2" at X: t2>; finished with value <Greenlet "CustomName-4" at 0x
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
| +--- <Greenlet "CustomName-4" at X: t1>; finished with exception ExpectedException()
| +--- <Greenlet "CustomName-4" at X: t1>; finished with exception ExpectedException()
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
+--- <Greenlet "Greenlet-3" at X: t3>; finished with value <Greenlet "Greenlet-5" at X
+--- <Greenlet "Greenlet-3" at X: t3>; finished with value <Greenlet "Greenlet-5" at X
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
: Spawn Tree Locals
: Spawn Tree Locals
: {'stl': 'STL'}
: {'stl': 'STL'}
| +--- <Greenlet "Greenlet-5" at X: t2>; finished with value <Greenlet "CustomName-6" at 0x
| +--- <Greenlet "Greenlet-5" at X: t2>; finished with value <Greenlet "CustomName-6" at 0x
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
| +--- <Greenlet "CustomName-6" at X: t1>; finished with exception ExpectedException()
| +--- <Greenlet "CustomName-6" at X: t1>; finished with exception ExpectedException()
: Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>
: Parent: <HUB>
+--- <Greenlet "Greenlet-7" at X: <bound method GreenletTree.current_tree of <class 'gevent.util.GreenletTree'>>>; finished with value <gevent.util.GreenletTree obje
+--- <Greenlet "Greenlet-7" at X: <bound method GreenletTree.current_tree of <class 'gevent.util.GreenletTree'>>>; finished with value <gevent.util.GreenletTree obje
Parent: <QuietHub '' at X default default pending=0 ref=0 thread_ident=X>