diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2014-02-01 09:40:28 -0800 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2014-02-01 09:40:28 -0800 |
commit | e4ec95d87da51c7dfd039e3925814d6c9a7380da (patch) | |
tree | 1edd894c6a9616076f7e362df3d3d30db9a5d02e /tests | |
parent | 390d38e264eaccff1cd285624146710fff5f8775 (diff) | |
parent | 7581866c0c3a33698767c2b2adc2eee3bf525fe0 (diff) | |
download | cryptography-e4ec95d87da51c7dfd039e3925814d6c9a7380da.tar.gz cryptography-e4ec95d87da51c7dfd039e3925814d6c9a7380da.tar.bz2 cryptography-e4ec95d87da51c7dfd039e3925814d6c9a7380da.zip |
Merge pull request #541 from public/fix-466
Handle multiple errors on the stack
Diffstat (limited to 'tests')
-rw-r--r-- | tests/hazmat/backends/test_openssl.py | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py index f01c3f64..b0a58c41 100644 --- a/tests/hazmat/backends/test_openssl.py +++ b/tests/hazmat/backends/test_openssl.py @@ -77,24 +77,44 @@ class TestOpenSSL(object): def test_handle_unknown_error(self): with pytest.raises(InternalError): - backend._handle_error_code(0, 0, 0) + backend._handle_error_code(0) + backend._lib.ERR_put_error(backend._lib.ERR_LIB_EVP, 0, 0, + b"test_openssl.py", -1) with pytest.raises(InternalError): - backend._handle_error_code(backend._lib.ERR_LIB_EVP, 0, 0) - + backend._handle_error(None) + + backend._lib.ERR_put_error( + backend._lib.ERR_LIB_EVP, + backend._lib.EVP_F_EVP_ENCRYPTFINAL_EX, + 0, + b"test_openssl.py", + -1 + ) + with pytest.raises(InternalError): + backend._handle_error(None) + + backend._lib.ERR_put_error( + backend._lib.ERR_LIB_EVP, + backend._lib.EVP_F_EVP_DECRYPTFINAL_EX, + 0, + b"test_openssl.py", + -1 + ) with pytest.raises(InternalError): - backend._handle_error_code( - backend._lib.ERR_LIB_EVP, - backend._lib.EVP_F_EVP_ENCRYPTFINAL_EX, - 0 - ) + backend._handle_error(None) + + def test_handle_multiple_errors(self): + for i in range(10): + backend._lib.ERR_put_error(backend._lib.ERR_LIB_EVP, 0, 0, + b"test_openssl.py", -1) + + assert backend._lib.ERR_peek_error() != 0 with pytest.raises(InternalError): - backend._handle_error_code( - backend._lib.ERR_LIB_EVP, - backend._lib.EVP_F_EVP_DECRYPTFINAL_EX, - 0 - ) + backend._handle_error(None) + + assert backend._lib.ERR_peek_error() == 0 def test_ssl_ciphers_registered(self): meth = backend._lib.TLSv1_method() |