LCOV - code coverage report
Current view: top level - Modules/_ssl - misc.c (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit acb105a7c1f] Lines: 10 14 71.4 %
Date: 2022-07-20 13:12:14 Functions: 2 2 100.0 %
Branches: 4 8 50.0 %

           Branch data     Line data    Source code
       1                 :            : #include "Python.h"
       2                 :            : #include "../_ssl.h"
       3                 :            : 
       4                 :            : #include "openssl/bio.h"
       5                 :            : 
       6                 :            : /* BIO_s_mem() to PyBytes
       7                 :            :  */
       8                 :            : static PyObject *
       9                 :          1 : _PySSL_BytesFromBIO(_sslmodulestate *state, BIO *bio)
      10                 :            : {
      11                 :            :     long size;
      12                 :          1 :     char *data = NULL;
      13                 :          1 :     size = BIO_get_mem_data(bio, &data);
      14   [ +  -  -  + ]:          1 :     if (data == NULL || size < 0) {
      15                 :          0 :         PyErr_SetString(PyExc_ValueError, "Not a memory BIO");
      16                 :          0 :         return NULL;
      17                 :            :     }
      18                 :          1 :     return PyBytes_FromStringAndSize(data, size);
      19                 :            : }
      20                 :            : 
      21                 :            : /* BIO_s_mem() to PyUnicode
      22                 :            :  */
      23                 :            : static PyObject *
      24                 :          7 : _PySSL_UnicodeFromBIO(_sslmodulestate *state, BIO *bio, const char *error)
      25                 :            : {
      26                 :            :     long size;
      27                 :          7 :     char *data = NULL;
      28                 :          7 :     size = BIO_get_mem_data(bio, &data);
      29   [ +  -  -  + ]:          7 :     if (data == NULL || size < 0) {
      30                 :          0 :         PyErr_SetString(PyExc_ValueError, "Not a memory BIO");
      31                 :          0 :         return NULL;
      32                 :            :     }
      33                 :          7 :     return PyUnicode_DecodeUTF8(data, size, error);
      34                 :            : }

Generated by: LCOV version 1.14