Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/python/test/opaque.py @ 45

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

updated boost from 1_33_1 to 1_34_1

File size: 1.8 KB
Line 
1# -*- coding: iso-latin-1 -*-
2# Copyright Gottfried Ganßauge 2003..2006.  Distributed under the Boost
3# Software License, Version 1.0. (See accompanying
4# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6
7"""
8>>> from opaque_ext import *
9
10
11    Check for correct conversion
12   
13>>> use(get())
14
15    Check that None is converted to a NULL opaque pointer
16   
17>>> useany(get())
181
19>>> useany(None)
200
21
22    Check that we don't lose type information by converting NULL
23    opaque pointers to None
24   
25>>> assert getnull() is None
26>>> useany(getnull())
270
28
29>>> failuse(get())
30Traceback (most recent call last):
31        ...
32RuntimeError: success
33
34   Check that there is no conversion from integers ...
35   
36>>> try: use(0)
37... except TypeError: pass
38... else: print 'expected a TypeError'
39
40   ... and from strings to opaque objects
41   
42>>> try: use("")
43... except TypeError: pass
44... else: print 'expected a TypeError'
45
46   Now check the same for another opaque pointer type
47   
48>>> use2(get2())
49>>> failuse2(get2())
50Traceback (most recent call last):
51        ...
52RuntimeError: success
53>>> try: use2(0)
54... except TypeError: pass
55... else: print 'expected a TypeError'
56>>> try: use2("")
57... except TypeError: pass
58... else: print 'expected a TypeError'
59
60   Check that opaque types are distinct
61
62>>> try: use(get2())
63... except TypeError: pass
64... else: print 'expected a TypeError'
65>>> try: use2(get())
66... except TypeError: pass
67... else: print 'expected a TypeError'
68
69   This used to result in a segmentation violation
70
71>>> type(get()) != type (get2())
721
73"""
74def run(args = None):
75    import sys
76    import doctest
77
78    if args is not None:
79        sys.argv = args
80    return doctest.testmod(sys.modules.get(__name__))
81   
82if __name__ == '__main__':
83    print "running..."
84    import sys
85    status = run()[0]
86    if (status == 0): print "Done."
87    sys.exit(status)
Note: See TracBrowser for help on using the repository browser.