diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2017-11-01 11:02:43 +0100 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2017-11-01 11:02:43 +0100 |
commit | e28778aea2629007236455aec17f1100fae1e8d8 (patch) | |
tree | 8e617ec673b73d8d3b4c8a6abcad9dc3e1f11ebf | |
parent | 8fdb0fbe00f730587914b3389a36dcefea7bab67 (diff) | |
download | cython-e28778aea2629007236455aec17f1100fae1e8d8.tar.gz |
Repair and extend TSS API test.
-rw-r--r-- | tests/run/tss.pyx | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/tests/run/tss.pyx b/tests/run/tss.pyx index c21b869a6..1729abdac 100644 --- a/tests/run/tss.pyx +++ b/tests/run/tss.pyx @@ -2,6 +2,7 @@ from cpython.pythread cimport * + def tss_create_delete(): """ >>> tss_create_delete() @@ -9,29 +10,48 @@ def tss_create_delete(): """ cdef Py_tss_t tss_key = Py_tss_NEEDS_INIT cdef bint after_create, after_delete - if PyThread_tss_create(&tss_key) > 0: - # handle key creation failure - pass + if PyThread_tss_create(&tss_key) != 0: + raise MemoryError() after_create = PyThread_tss_is_created(&tss_key) != 0 PyThread_tss_delete(&tss_key) after_delete = PyThread_tss_is_created(&tss_key) != 0 return (after_create, after_delete) + def tss_alloc_free(): """ >>> tss_alloc_free() - (True, False) + False + """ + cdef Py_tss_t *ptr_key + cdef bint after_alloc, after_free + ptr_key = PyThread_tss_alloc() + if ptr_key == NULL: + raise MemoryError() + after_alloc = PyThread_tss_is_created(ptr_key) != 0 + PyThread_tss_free(ptr_key) + return after_alloc + + +def tss_alloc_create_delete_free(): + """ + >>> tss_alloc_create_delete_free() + (False, True, False) """ cdef Py_tss_t *ptr_key cdef bint after_alloc, after_free ptr_key = PyThread_tss_alloc() if ptr_key == NULL: - # handle key allocation failure - pass + raise MemoryError() after_alloc = PyThread_tss_is_created(ptr_key) != 0 + if PyThread_tss_create(ptr_key) != 0: + raise MemoryError() + after_create = PyThread_tss_is_created(ptr_key) != 0 + PyThread_tss_delete(ptr_key) + after_delete = PyThread_tss_is_created(ptr_key) != 0 PyThread_tss_free(ptr_key) - after_free = PyThread_tss_is_created(ptr_key) != 0 - return (after_alloc, after_free) + return (after_alloc, after_create, after_delete) + def tss_set_get(): """ @@ -41,9 +61,8 @@ def tss_set_get(): cdef Py_tss_t tss_key = Py_tss_NEEDS_INIT cdef int the_value = 1 cdef int ret_value - if PyThread_tss_create(&tss_key) > 0: - # handle key creation failure - pass + if PyThread_tss_create(&tss_key) != 0: + raise MemoryError() if PyThread_tss_get(&tss_key) == NULL: PyThread_tss_set(&tss_key, <void *>&the_value) ret_value = (<int *>PyThread_tss_get(&tss_key))[0] |