PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LTP GCOV extension - code coverage report
Current view: directory - mysqli - mysqli_driver.c
Test: PHP Code Coverage
Date: 2009-11-23 Instrumented lines: 24
Code covered: 91.7 % Executed lines: 22
Legend: not executed executed

       1                 : /*
       2                 :   +----------------------------------------------------------------------+
       3                 :   | PHP Version 6                                                        |
       4                 :   +----------------------------------------------------------------------+
       5                 :   | Copyright (c) 1997-2009 The PHP Group                                |
       6                 :   +----------------------------------------------------------------------+
       7                 :   | This source file is subject to version 3.01 of the PHP license,      |
       8                 :   | that is bundled with this package in the file LICENSE, and is        |
       9                 :   | available through the world-wide-web at the following url:           |
      10                 :   | http://www.php.net/license/3_01.txt                                  |
      11                 :   | If you did not receive a copy of the PHP license and are unable to   |
      12                 :   | obtain it through the world-wide-web, please send a note to          |
      13                 :   | license@php.net so we can mail you a copy immediately.               |
      14                 :   +----------------------------------------------------------------------+
      15                 :   | Authors: Georg Richter <georg@php.net>                               |
      16                 :   |          Andrey Hristov <andrey@php.net>                             |
      17                 :   |          Ulf Wendel <uw@php.net>                                     |
      18                 :   +----------------------------------------------------------------------+
      19                 : */
      20                 : 
      21                 : /* $Id: mysqli_driver.c 280837 2009-05-20 08:29:23Z kalle $ */
      22                 : 
      23                 : #ifdef HAVE_CONFIG_H
      24                 : #include "config.h"
      25                 : #endif
      26                 : 
      27                 : #include <signal.h>
      28                 : 
      29                 : #include "php.h"
      30                 : #include "php_ini.h"
      31                 : #include "ext/standard/info.h"
      32                 : #include "php_mysqli_structs.h"
      33                 : #include "zend_exceptions.h"
      34                 : 
      35                 : 
      36                 : #define MAP_PROPERTY_MYG_BOOL_READ(name, value) \
      37                 : static int name(mysqli_object *obj, zval **retval TSRMLS_DC) \
      38                 : { \
      39                 :         MAKE_STD_ZVAL(*retval); \
      40                 :         ZVAL_BOOL(*retval, MyG(value)); \
      41                 :         return SUCCESS; \
      42                 : } \
      43                 : 
      44                 : #define MAP_PROPERTY_MYG_BOOL_WRITE(name, value) \
      45                 : static int name(mysqli_object *obj, zval *value TSRMLS_DC) \
      46                 : { \
      47                 :         MyG(value) = Z_LVAL_P(value) > 0; \
      48                 :         return SUCCESS; \
      49                 : } \
      50                 : 
      51                 : #define MAP_PROPERTY_MYG_LONG_READ(name, value) \
      52                 : static int name(mysqli_object *obj, zval **retval TSRMLS_DC) \
      53                 : { \
      54                 :         MAKE_STD_ZVAL(*retval); \
      55                 :         ZVAL_LONG(*retval, MyG(value)); \
      56                 :         return SUCCESS; \
      57                 : } \
      58                 : 
      59                 : #define MAP_PROPERTY_MYG_LONG_WRITE(name, value) \
      60                 : static int name(mysqli_object *obj, zval *value TSRMLS_DC) \
      61                 : { \
      62                 :         MyG(value) = Z_LVAL_P(value); \
      63                 :         return SUCCESS; \
      64                 : } \
      65                 : 
      66                 : #define MAP_PROPERTY_MYG_STRING_READ(name, value) \
      67                 : static int name(mysqli_object *obj, zval **retval TSRMLS_DC) \
      68                 : { \
      69                 :         MAKE_STD_ZVAL(*retval); \
      70                 :         ZVAL_STRING(*retval, MyG(value), 1); \
      71                 :         return SUCCESS; \
      72                 : } \
      73                 : 
      74                 : #define MAP_PROPERTY_MYG_STRING_WRITE(name, value) \
      75                 : static int name(mysqli_object *obj, zval *value TSRMLS_DC) \
      76                 : { \
      77                 :         MyG(value) = Z_STRVAL_P(value); \
      78                 :         return SUCCESS; \
      79                 : } \
      80                 : 
      81                 : /* {{{ property driver_report_write */
      82                 : static int driver_report_write(mysqli_object *obj, zval *value TSRMLS_DC)
      83               5 : {
      84               5 :         MyG(report_mode) = Z_LVAL_P(value);
      85                 :         /* FIXME */
      86                 :         /* zend_replace_error_handling(MyG(report_mode) & MYSQLI_REPORT_STRICT ? EH_THROW : EH_NORMAL, NULL, NULL TSRMLS_CC); */
      87               5 :         return SUCCESS;
      88                 : }
      89                 : /* }}} */
      90                 : 
      91                 : /* {{{ property driver_embedded_read */
      92                 : static int driver_embedded_read(mysqli_object *obj, zval **retval TSRMLS_DC)
      93             247 : {
      94             247 :         MAKE_STD_ZVAL(*retval);
      95                 : #ifdef HAVE_EMBEDDED_MYSQLI
      96                 :         ZVAL_BOOL(*retval, 1);
      97                 : #else
      98             247 :         ZVAL_BOOL(*retval, 0);
      99                 : #endif
     100             247 :         return SUCCESS;
     101                 : }
     102                 : /* }}} */
     103                 : 
     104                 : /* {{{ property driver_client_version_read */
     105                 : static int driver_client_version_read(mysqli_object *obj, zval **retval TSRMLS_DC)
     106               4 : {
     107               4 :         MAKE_STD_ZVAL(*retval);
     108               4 :         ZVAL_LONG(*retval, MYSQL_VERSION_ID);
     109               4 :         return SUCCESS;
     110                 : }
     111                 : /* }}} */
     112                 : 
     113                 : /* {{{ property driver_client_info_read */
     114                 : static int driver_client_info_read(mysqli_object *obj, zval **retval TSRMLS_DC)
     115               4 : {
     116               4 :         MAKE_STD_ZVAL(*retval);
     117               4 :         ZVAL_RT_STRING(*retval, (char *)mysql_get_client_info(), 1);
     118               4 :         return SUCCESS;
     119                 : }
     120                 : /* }}} */
     121                 : 
     122                 : /* {{{ property driver_driver_version_read */
     123                 : static int driver_driver_version_read(mysqli_object *obj, zval **retval TSRMLS_DC)
     124               4 : {
     125               4 :         MAKE_STD_ZVAL(*retval);
     126               4 :         ZVAL_LONG(*retval, MYSQLI_VERSION_ID);
     127               4 :         return SUCCESS;
     128                 : }
     129                 : /* }}} */
     130                 : 
     131               3 : MAP_PROPERTY_MYG_BOOL_READ(driver_reconnect_read, reconnect);
     132               3 : MAP_PROPERTY_MYG_BOOL_WRITE(driver_reconnect_write, reconnect);
     133               6 : MAP_PROPERTY_MYG_LONG_READ(driver_report_read, report_mode);
     134                 : 
     135                 : ZEND_FUNCTION(mysqli_driver_construct)
     136               0 : {
     137                 : #if G0
     138                 :         MYSQLI_RESOURCE         *mysqli_resource;
     139                 : 
     140                 :         mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
     141                 :         mysqli_resource->ptr = 1;
     142                 :         mysqli_resource->status = (ZEND_NUM_ARGS() == 1) ? MYSQLI_STATUS_INITIALIZED : MYSQLI_STATUS_VALID;
     143                 :         ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource;
     144                 : #endif
     145               0 : }
     146                 : 
     147                 : const mysqli_property_entry mysqli_driver_property_entries[] = {
     148                 :         {"client_info", sizeof("client_info") - 1, driver_client_info_read, NULL},
     149                 :         {"client_version", sizeof("client_version") - 1, driver_client_version_read, NULL},
     150                 :         {"driver_version", sizeof("driver_version") - 1, driver_driver_version_read, NULL},
     151                 :         {"embedded", sizeof("embedded") - 1, driver_embedded_read, NULL},
     152                 :         {"reconnect", sizeof("reconnect") - 1, driver_reconnect_read, driver_reconnect_write},
     153                 :         {"report_mode", sizeof("report_mode") - 1, driver_report_read, driver_report_write},
     154                 :         {NULL, 0, NULL, NULL}
     155                 : };
     156                 : 
     157                 : /* {{{ mysqli_warning_property_info_entries */
     158                 : zend_property_info mysqli_driver_property_info_entries[] = {
     159                 :         {ZEND_ACC_PUBLIC, {"client_info"},    sizeof("client_info") - 1,            0, {NULL}, 0, NULL},
     160                 :         {ZEND_ACC_PUBLIC, {"client_version"},sizeof("client_version") - 1,  0, {NULL}, 0, NULL},
     161                 :         {ZEND_ACC_PUBLIC, {"driver_version"},sizeof("driver_version") - 1,  0, {NULL}, 0, NULL},
     162                 :         {ZEND_ACC_PUBLIC, {"embedded"},               sizeof("embedded") - 1,                       0, {NULL}, 0, NULL},
     163                 :         {ZEND_ACC_PUBLIC, {"reconnect"},      sizeof("reconnect") - 1,              0, {NULL}, 0, NULL},
     164                 :         {ZEND_ACC_PUBLIC, {"report_mode"},    sizeof("report_mode") - 1,            0, {NULL}, 0, NULL},
     165                 :         {0,                                     {NULL},                 0,                                                              0, {NULL}, 0, NULL},
     166                 : };
     167                 : /* }}} */
     168                 : 
     169                 : 
     170                 : /* {{{ mysqli_driver_methods[]
     171                 :  */
     172                 : const zend_function_entry mysqli_driver_methods[] = {
     173                 : #if defined(HAVE_EMBEDDED_MYSQLI)
     174                 :         PHP_FALIAS(embedded_server_start, mysqli_embedded_server_start, NULL)
     175                 :         PHP_FALIAS(embedded_server_end, mysqli_embedded_server_end, NULL)
     176                 : #endif
     177                 :         {NULL, NULL, NULL}
     178                 : };
     179                 : /* }}} */
     180                 : 
     181                 : /*
     182                 :  * Local variables:
     183                 :  * tab-width: 4
     184                 :  * c-basic-offset: 4
     185                 :  * indent-tabs-mode: t
     186                 :  * End:
     187                 :  * vim600: noet sw=4 ts=4 fdm=marker
     188                 :  * vim<600: noet sw=4 ts=4
     189                 :  */

Generated by: LTP GCOV extension version 1.5

Generated at Mon, 23 Nov 2009 17:39:32 +0000 (34 hours ago)

Copyright © 2005-2009 The PHP Group
All rights reserved.