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

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) ""
        !            80:   [%u|b%"field_count"]=>
        !            81:   int(0)
        !            82:   [%u|b%"host_info"]=>
        !            83:   %unicode|string%(%d) "%s"
        !            84:   [%u|b%"info"]=>
        !            85:   NULL
        !            86:   [%u|b%"insert_id"]=>
        !            87:   int(0)
        !            88:   [%u|b%"server_info"]=>
        !            89:   %unicode|string%(%d) "%s"
        !            90:   [%u|b%"server_version"]=>
        !            91:   int(%d)
        !            92:   ["stat"]=>
        !            93:   %s
        !            94:   [%u|b%"sqlstate"]=>
        !            95:   %unicode|string%(5) "00000"
        !            96:   [%u|b%"protocol_version"]=>
        !            97:   int(10)
        !            98:   [%u|b%"thread_id"]=>
        !            99:   int(%d)
        !           100:   [%u|b%"warning_count"]=>
        !           101:   int(0)
        !           102: }
        !           103: object(mysqli)#%d (%d) {
        !           104:   [%u|b%"affected_rows"]=>
        !           105:   NULL
        !           106:   [%u|b%"client_info"]=>
        !           107:   %unicode|string%(%d) "%s"
        !           108:   [%u|b%"client_version"]=>
        !           109:   int(%d)
        !           110:   [%u|b%"connect_errno"]=>
        !           111:   int(0)
        !           112:   [%u|b%"connect_error"]=>
        !           113:   NULL
        !           114:   [%u|b%"errno"]=>
        !           115:   int(0)
        !           116:   [%u|b%"error"]=>
        !           117:   %unicode|string%(0) ""
        !           118:   [%u|b%"field_count"]=>
        !           119:   NULL
        !           120:   [%u|b%"host_info"]=>
        !           121:   NULL
        !           122:   [%u|b%"info"]=>
        !           123:   NULL
        !           124:   [%u|b%"insert_id"]=>
        !           125:   NULL
        !           126:   [%u|b%"server_info"]=>
        !           127:   NULL
        !           128:   [%u|b%"server_version"]=>
        !           129:   NULL
        !           130:   ["stat"]=>
        !           131:   NULL
        !           132:   [%u|b%"sqlstate"]=>
        !           133:   NULL
        !           134:   [%u|b%"protocol_version"]=>
        !           135:   NULL
        !           136:   [%u|b%"thread_id"]=>
        !           137:   NULL
        !           138:   [%u|b%"warning_count"]=>
        !           139:   NULL
        !           140: }
        !           141: Done

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