Annotation of embedaddon/php/ext/mysqli/tests/bug34810.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: Bug #34810 (mysqli::init() and others use wrong $this pointer without checks)
                      3: --SKIPIF--
                      4: <?php
                      5: require_once('skipif.inc');
                      6: require_once('skipifconnectfailure.inc');
                      7: ?>
                      8: --FILE--
                      9: <?php
                     10: 
                     11: class DbConnection {
                     12:        public function connect() {
                     13:                require_once("connect.inc");
                     14: 
                     15:                $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
                     16:                var_dump($link);
                     17: 
                     18:                $link = mysqli_init();
                     19:                /* @ is to supress 'Property access is not allowed yet' */
                     20:                @var_dump($link);
                     21: 
                     22:                $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
                     23:                $mysql->query("DROP TABLE IF EXISTS test_warnings");
                     24:                $mysql->query("CREATE TABLE test_warnings (a int not null)");
                     25:                $mysql->query("SET sql_mode=''");
                     26:                $mysql->query("INSERT INTO test_warnings VALUES (1),(2),(NULL)");
                     27: 
                     28:                $warning = $mysql->get_warnings();
                     29:                if (!$warning)
                     30:                        printf("[001] No warning!\n");
                     31: 
                     32:                if ($warning->errno == 1048 || $warning->errno == 1253) {
                     33:                        /* 1048 - Column 'a' cannot be null, 1263 - Data truncated; NULL supplied to NOT NULL column 'a' at row */
                     34:                        if ("HY000" != $warning->sqlstate)
                     35:                                printf("[003] Wrong sql state code: %s\n", $warning->sqlstate);
                     36: 
                     37:                        if ("" == $warning->message)
                     38:                                printf("[004] Message string must not be empty\n");
                     39: 
                     40: 
                     41:                } else {
                     42:                        printf("[002] Empty error message!\n");
                     43:                        var_dump($warning);
                     44:                }
                     45:        }
                     46: }
                     47: 
                     48: $db = new DbConnection();
                     49: $db->connect();
                     50: 
                     51: echo "Done\n";
                     52: ?>
                     53: --CLEAN--
                     54: <?php
                     55: require_once("connect.inc");
                     56: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
                     57:    printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
                     58: 
                     59: if (!mysqli_query($link, "DROP TABLE IF EXISTS test_warnings"))
                     60:        printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     61: 
                     62: mysqli_close($link);
                     63: ?>
                     64: --EXPECTF--
                     65: object(mysqli)#%d (%d) {
                     66:   [%u|b%"affected_rows"]=>
                     67:   int(0)
                     68:   [%u|b%"client_info"]=>
                     69:   %unicode|string%(%d) "%s"
                     70:   [%u|b%"client_version"]=>
                     71:   int(%d)
                     72:   [%u|b%"connect_errno"]=>
                     73:   int(0)
                     74:   [%u|b%"connect_error"]=>
                     75:   NULL
                     76:   [%u|b%"errno"]=>
                     77:   int(0)
                     78:   [%u|b%"error"]=>
                     79:   %unicode|string%(0) ""
1.1.1.2 ! misho      80:   [%u|b%"error_list"]=>
        !            81:   array(0) {
        !            82:   }
1.1       misho      83:   [%u|b%"field_count"]=>
                     84:   int(0)
                     85:   [%u|b%"host_info"]=>
                     86:   %unicode|string%(%d) "%s"
                     87:   [%u|b%"info"]=>
                     88:   NULL
                     89:   [%u|b%"insert_id"]=>
                     90:   int(0)
                     91:   [%u|b%"server_info"]=>
                     92:   %unicode|string%(%d) "%s"
                     93:   [%u|b%"server_version"]=>
                     94:   int(%d)
1.1.1.2 ! misho      95:   [%u|b%"stat"]=>
        !            96:   string(%d) "Uptime: %d  Threads: %d  Questions: %d  Slow queries: %d  Opens: %d  Flush tables: %d  Open tables: %d  Queries per second avg: %d.%d"
1.1       misho      97:   [%u|b%"sqlstate"]=>
                     98:   %unicode|string%(5) "00000"
                     99:   [%u|b%"protocol_version"]=>
                    100:   int(10)
                    101:   [%u|b%"thread_id"]=>
                    102:   int(%d)
                    103:   [%u|b%"warning_count"]=>
                    104:   int(0)
                    105: }
                    106: object(mysqli)#%d (%d) {
                    107:   [%u|b%"affected_rows"]=>
                    108:   NULL
                    109:   [%u|b%"client_info"]=>
                    110:   %unicode|string%(%d) "%s"
                    111:   [%u|b%"client_version"]=>
                    112:   int(%d)
                    113:   [%u|b%"connect_errno"]=>
                    114:   int(0)
                    115:   [%u|b%"connect_error"]=>
                    116:   NULL
                    117:   [%u|b%"errno"]=>
                    118:   int(0)
                    119:   [%u|b%"error"]=>
                    120:   %unicode|string%(0) ""
1.1.1.2 ! misho     121:   [%u|b%"error_list"]=>
        !           122:   NULL
1.1       misho     123:   [%u|b%"field_count"]=>
                    124:   NULL
                    125:   [%u|b%"host_info"]=>
                    126:   NULL
                    127:   [%u|b%"info"]=>
                    128:   NULL
                    129:   [%u|b%"insert_id"]=>
                    130:   NULL
                    131:   [%u|b%"server_info"]=>
                    132:   NULL
                    133:   [%u|b%"server_version"]=>
                    134:   NULL
1.1.1.2 ! misho     135:   [%u|b%"stat"]=>
1.1       misho     136:   NULL
                    137:   [%u|b%"sqlstate"]=>
                    138:   NULL
                    139:   [%u|b%"protocol_version"]=>
                    140:   NULL
                    141:   [%u|b%"thread_id"]=>
                    142:   NULL
                    143:   [%u|b%"warning_count"]=>
                    144:   NULL
                    145: }
                    146: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>