diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/libs/python/test/opaque.py | |
parent | Initial commit. (diff) | |
download | ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.tar.xz ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/python/test/opaque.py')
-rw-r--r-- | src/boost/libs/python/test/opaque.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/boost/libs/python/test/opaque.py b/src/boost/libs/python/test/opaque.py new file mode 100644 index 000000000..9f5663723 --- /dev/null +++ b/src/boost/libs/python/test/opaque.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Copyright Gottfried Ganßauge 2003..2006. 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 opaque_ext import * + + + Check for correct conversion + +>>> use(get()) + + Check that None is converted to a NULL opaque pointer + +>>> useany(get()) +1 +>>> useany(None) +0 + + Check that we don't lose type information by converting NULL + opaque pointers to None + +>>> assert getnull() is None +>>> useany(getnull()) +0 + +>>> failuse(get()) +Traceback (most recent call last): + ... +RuntimeError: success + + Check that there is no conversion from integers ... + +>>> try: use(0) +... except TypeError: pass +... else: print('expected a TypeError') + + ... and from strings to opaque objects + +>>> try: use("") +... except TypeError: pass +... else: print('expected a TypeError') + + Now check the same for another opaque pointer type + +>>> use2(get2()) +>>> failuse2(get2()) +Traceback (most recent call last): + ... +RuntimeError: success +>>> try: use2(0) +... except TypeError: pass +... else: print('expected a TypeError') +>>> try: use2("") +... except TypeError: pass +... else: print('expected a TypeError') + + Check that opaque types are distinct + +>>> try: use(get2()) +... except TypeError: pass +... else: print('expected a TypeError') +>>> try: use2(get()) +... except TypeError: pass +... else: print('expected a TypeError') + + This used to result in a segmentation violation + +>>> type(get()) != type (get2()) +1 +""" +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) |