Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/python/test/test_pointer_adoption.py @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 1.7 KB
Line 
1# Copyright David Abrahams 2004. Distributed under the Boost
2# Software License, Version 1.0. (See accompanying
3# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4"""
5>>> from test_pointer_adoption_ext import *
6
7>>> num_a_instances()
80
9
10>>> a = create('dynamically allocated')
11>>> num_a_instances()
121
13
14>>> a.content()
15'dynamically allocated'
16
17>>> innards = a.get_inner()
18>>> innards.change('with an exposed reference')
19>>> a.content()
20'with an exposed reference'
21
22# The a instance should be kept alive...
23>>> a = None
24>>> num_a_instances()
251
26
27# ...until we're done with its innards
28>>> innards = None
29>>> num_a_instances()
300
31
32>>> b = B()
33>>> a = create('another')
34>>> b.a_content()
35'empty'
36>>> innards = b.adopt(a);
37>>> b.a_content()
38'another'
39>>> num_a_instances()
401
41>>> del a # innards and b are both holding a reference
42>>> num_a_instances()
431
44>>> innards.change('yet another')
45>>> b.a_content()
46'yet another'
47
48>>> del innards
49>>> num_a_instances() # b still owns a reference to a
501
51>>> del b
52>>> num_a_instances()
530
54
55Test call policies for constructors here
56
57>>> a = create('second a')
58>>> num_a_instances()
591
60>>> b = B(a)
61>>> num_a_instances()
621
63>>> a.content()
64'second a'
65
66>>> del a
67>>> num_a_instances()
681
69>>> b.a_content()
70'second a'
71
72>>> del b
73>>> num_a_instances()
740
75
76>>> assert as_A(create('dynalloc')) is not None
77>>> base = Base()
78>>> assert as_A(base) is None
79"""
80def run(args = None):
81    import sys
82    import doctest
83
84    if args is not None:
85        sys.argv = args
86    return doctest.testmod(sys.modules.get(__name__))
87   
88if __name__ == '__main__':
89    print "running..."
90    import sys
91    status = run()[0]
92    if (status == 0): print "Done."
93    sys.exit(status)
Note: See TracBrowser for help on using the repository browser.