Annotation of embedaddon/php/ext/mysql/tests/bug48754.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #48754 (mysql_close() crash php when no handle specified)
        !             3: --SKIPIF--
        !             4: <?php
        !             5: require_once('skipif.inc');
        !             6: require_once('skipifconnectfailure.inc');
        !             7: ?>
        !             8: --FILE--
        !             9: <?php
        !            10: require_once('connect.inc');
        !            11: 
        !            12: function my_mysql_pconnect($host, $user, $passwd, $db, $port, $socket) {
        !            13:        if ($socket)
        !            14:                $host = sprintf("%s:%s", $host, $socket);
        !            15:        else if ($port)
        !            16:                $host = sprintf("%s:%s", $host, $port);
        !            17: 
        !            18:        if (!$link = mysql_pconnect($host, $user, $passwd, true)) {
        !            19:                printf("[000-a] Cannot connect using host '%s', user '%s', password '****', [%d] %s\n",
        !            20:                        $host, $user, $passwd,
        !            21:                        mysql_errno(), mysql_error());
        !            22:                return false;
        !            23:        }
        !            24:        return $link;
        !            25: }
        !            26: 
        !            27: echo "Explicit connection on close\n";
        !            28: $link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket);
        !            29: $link1_thread_id = mysql_thread_id($link);
        !            30: $default1_thread_id = mysql_thread_id();
        !            31: echo 'Expect same thread id for $link and default conn: ';
        !            32: var_dump($link1_thread_id == $default1_thread_id);
        !            33: var_dump($link);
        !            34: mysql_close($link);
        !            35: var_dump($link);
        !            36: 
        !            37: // we sohuld have no default link anymore
        !            38: mysql_close();
        !            39: 
        !            40: echo "\nClosing default link\n";
        !            41: $link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket);
        !            42: $link2_thread_id = mysql_thread_id($link);
        !            43: $default2_thread_id = mysql_thread_id();
        !            44: echo 'Expect same thread id for $link and default conn but not the previous: ';
        !            45: var_dump($link1_thread_id == $default1_thread_id && $link1_thread_id != $link2_thread_id);
        !            46: var_dump($link);
        !            47: mysql_close();
        !            48: var_dump($link);
        !            49: mysql_close($link);
        !            50: var_dump($link);
        !            51: 
        !            52: echo "\nExplicit resource and pconnect\n";
        !            53: $link = my_mysql_pconnect($host, $user, $passwd, $db, $port, $socket);
        !            54: var_dump($link);
        !            55: mysql_close($link);
        !            56: var_dump($link);
        !            57: 
        !            58: // we sohuld have no default link
        !            59: mysql_close();
        !            60: 
        !            61: echo "\nDefault link and pconnect\n";
        !            62: $link = my_mysql_pconnect($host, $user, $passwd, $db, $port, $socket);
        !            63: var_dump($link);
        !            64: mysql_close();
        !            65: var_dump($link);
        !            66: mysql_close($link);
        !            67: var_dump($link);
        !            68: ?>
        !            69: --EXPECTF--
        !            70: Explicit connection on close
        !            71: Expect same thread id for $link and default conn: bool(true)
        !            72: resource(%d) of type (mysql link)
        !            73: resource(%d) of type (Unknown)
        !            74: 
        !            75: Warning: mysql_close(): no MySQL-Link resource supplied in %s on line %d
        !            76: 
        !            77: Closing default link
        !            78: Expect same thread id for $link and default conn but not the previous: bool(true)
        !            79: resource(%d) of type (mysql link)
        !            80: resource(%d) of type (mysql link)
        !            81: resource(%d) of type (Unknown)
        !            82: 
        !            83: Explicit resource and pconnect
        !            84: resource(%d) of type (mysql link persistent)
        !            85: resource(%d) of type (Unknown)
        !            86: 
        !            87: Warning: mysql_close(): no MySQL-Link resource supplied in %s on line %d
        !            88: 
        !            89: Default link and pconnect
        !            90: resource(%d) of type (mysql link persistent)
        !            91: resource(%d) of type (mysql link persistent)
        !            92: resource(%d) of type (Unknown)

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