123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- # Copyright David Abrahams 2004. Distributed under the Boost
- # Software License, Version 1.0. (See accompanying
- # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- '''
- >>> from auto_ptr_ext import *
- >>> x = X(42)
- >>> x.value()
- 42
- >>> look(x), look(x)
- (42, 42)
- >>> maybe_steal(x, 0)
- 42
- >>> look(x)
- 42
- >>> maybe_steal(x, 1)
- 42
- >>> broken_auto_ptr and -1 or look(x)
- -1
- >>> x = X(69)
- >>> steal(x)
- 69
- >>> broken_auto_ptr and -1 or look(x)
- -1
- >>> if not broken_auto_ptr:
- ... try: x.value()
- ... except TypeError: pass
- ... else: print('expected a TypeError exception')
- >>> x = make()
- >>> look(x)
- 77
- >>> z = callback(lambda z: z)
- >>> z.value()
- 77
- >>> extract(x).value()
- 77
- #
- # Test derived to base conversions
- #
- >>> y = Y(42)
- >>> y.value()
- 42
- >>> try: maybe_steal(y, 0)
- ... except TypeError: pass
- ... else: print('expected a TypeError exception')
- >>> y.value()
- 42
- >>> broken_auto_ptr and 42 or steal(y)
- 42
- >>> if not broken_auto_ptr:
- ... try: y.value()
- ... except TypeError: pass
- ... else: print('expected a TypeError exception')
- >>> print(look.__doc__.splitlines()[1])
- look( (X)arg1) -> int :
- >>> print(steal.__doc__.splitlines()[1])
- steal( (X)arg1) -> int :
- >>> print(maybe_steal.__doc__.splitlines()[1])
- maybe_steal( (X)arg1, (bool)arg2) -> int :
- >>> print(make.__doc__.splitlines()[1])
- make() -> X :
- >>> print(callback.__doc__.splitlines()[1])
- callback( (object)arg1) -> X :
- >>> print(extract.__doc__.splitlines()[1])
- extract( (object)arg1) -> X :
- '''
- def run(args = None):
- import sys
- import doctest
- if args is not None:
- sys.argv = args
- return doctest.testmod(sys.modules.get(__name__))
-
- if __name__ == '__main__':
- print("running...")
- import sys
- status = run()[0]
- if (status == 0): print("Done.")
- sys.exit(status)
|