cython
1# mode: run
2import sys
3
4def test_print_refcount():
5"""
6>>> test_print_refcount()
7"""
8old_stdout = sys.stdout
9class StdoutGuard:
10def __getattr__(self, attr):
11sys.stdout = old_stdout
12raise RuntimeError
13sys.stdout = StdoutGuard()
14try:
15print "Hello", "world!"
16except RuntimeError:
17pass
18finally:
19sys.stdout = old_stdout
20class TriggerSIGSEGV(object):
21pass
22
23def test_printone_refcount():
24"""
25>>> test_printone_refcount()
26"""
27old_stdout = sys.stdout
28class StdoutGuard:
29def __getattr__(self, attr):
30sys.stdout = old_stdout
31raise RuntimeError
32sys.stdout = StdoutGuard()
33try:
34print "Oops!"
35except RuntimeError:
36pass
37finally:
38sys.stdout = old_stdout
39class TriggerSIGSEGV(object):
40pass
41