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

1.1     ! misho       1: --TEST--
        !             2: mysqli_get_client_stats() - PS
        !             3: --SKIPIF--
        !             4: <?PHP
        !             5: require_once('skipif.inc');
        !             6: require_once('skipifemb.inc');
        !             7: require_once('skipifconnectfailure.inc');
        !             8: if (!function_exists('mysqli_get_client_stats')) {
        !             9:        die("skip only available with mysqlnd");
        !            10: }
        !            11: ?>
        !            12: --INI--
        !            13: mysqlnd.collect_statistics=1
        !            14: mysqlnd.collect_memory_statistics=1
        !            15: --FILE--
        !            16: <?php
        !            17:        require_once('connect.inc');
        !            18:        require_once('table.inc');
        !            19: 
        !            20:        $stats = mysqli_get_client_stats();
        !            21:        printf("BEGINNING: rows_fetched_from_client_ps_unbuffered = %d\n",      $stats['rows_fetched_from_client_ps_unbuffered']);
        !            22:        printf("BEGINNING: rows_fetched_from_client_ps_buffered = %d\n",        $stats['rows_fetched_from_client_ps_buffered']);
        !            23:        printf("BEGINNING: rows_fetched_from_client_ps_cursor = %d\n",  $stats['rows_fetched_from_client_ps_cursor']);
        !            24: 
        !            25:        if (!$stmt = mysqli_stmt_init($link))
        !            26:                printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
        !            27: 
        !            28:        $id = null;
        !            29:        if (!mysqli_stmt_prepare($stmt, 'SELECT id FROM test') ||
        !            30:                        !mysqli_stmt_execute($stmt) ||
        !            31:                        !mysqli_stmt_store_result($stmt) ||
        !            32:                        !mysqli_stmt_bind_result($stmt, $id))
        !            33:                printf("[002] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
        !            34: 
        !            35:        $num_rows = 0;
        !            36:        while (mysqli_stmt_fetch($stmt))
        !            37:                $num_rows++;
        !            38: 
        !            39:        mysqli_stmt_free_result($stmt);
        !            40: 
        !            41:        $after = mysqli_get_client_stats();
        !            42: 
        !            43:        if ($after['rows_fetched_from_client_ps_unbuffered'] != $stats['rows_fetched_from_client_ps_unbuffered'])
        !            44:                printf("[003] Unbuffered rows got increased after buffered PS, expecting %d got %d.\n",
        !            45:                        $stats['rows_fetched_from_client_ps_unbuffered'],
        !            46:                        $after['rows_fetched_from_client_ps_unbuffered']);
        !            47: 
        !            48:        $stats['rows_fetched_from_client_ps_buffered'] += $num_rows;
        !            49:        if ($after['rows_fetched_from_client_ps_buffered'] != $stats['rows_fetched_from_client_ps_buffered'] )
        !            50:                printf("[005] Buffered rows should be %d got %d.\n",
        !            51:                        $stats['rows_fetched_from_client_ps_buffered'],
        !            52:                        $after['rows_fetched_from_client_ps_buffered']);
        !            53: 
        !            54:        $stats = $after;
        !            55:        printf("BUFFERED: rows_fetched_from_client_ps_unbuffered = %d\n",       $stats['rows_fetched_from_client_ps_unbuffered']);
        !            56:        printf("BUFFERED: rows_fetched_from_client_ps_buffered = %d\n", $stats['rows_fetched_from_client_ps_buffered']);
        !            57:        printf("BUFFERED: rows_fetched_from_client_ps_cursor = %d\n",   $stats['rows_fetched_from_client_ps_cursor']);
        !            58: 
        !            59:        $id = null;
        !            60:        if (!mysqli_stmt_prepare($stmt, 'SELECT id FROM test') ||
        !            61:                        !mysqli_stmt_execute($stmt) ||
        !            62:                        !mysqli_stmt_bind_result($stmt, $id))
        !            63:                printf("[006] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
        !            64: 
        !            65:        $num_rows = 0;
        !            66:        while (mysqli_stmt_fetch($stmt))
        !            67:                $num_rows++;
        !            68: 
        !            69:        $after = mysqli_get_client_stats();
        !            70:        $stats['rows_fetched_from_client_ps_unbuffered'] += $num_rows;
        !            71:        if ($after['rows_fetched_from_client_ps_unbuffered'] != $stats['rows_fetched_from_client_ps_unbuffered'])
        !            72:                printf("[007] Unbuffered rows should be %d got %d.\n",
        !            73:                        $stats['rows_fetched_from_client_ps_unbuffered'],
        !            74:                        $after['rows_fetched_from_client_ps_unbuffered']);
        !            75: 
        !            76:        if ($after['rows_fetched_from_client_ps_buffered'] != $stats['rows_fetched_from_client_ps_buffered'] )
        !            77:                printf("[005] Buffered rows should be unchanged, expecting %d got %d.\n",
        !            78:                        $stats['rows_fetched_from_client_ps_buffered'],
        !            79:                        $after['rows_fetched_from_client_ps_buffered']);
        !            80: 
        !            81:        mysqli_stmt_free_result($stmt);
        !            82:        mysqli_stmt_close($stmt);
        !            83: 
        !            84:        $stats = $after;
        !            85:        printf("UNBUFFERED: rows_fetched_from_client_ps_unbuffered = %d\n",     $stats['rows_fetched_from_client_ps_unbuffered']);
        !            86:        printf("UNBUFFERED: rows_fetched_from_client_ps_buffered = %d\n",       $stats['rows_fetched_from_client_ps_buffered']);
        !            87:        printf("UNBUFFERED: rows_fetched_from_client_ps_cursor = %d\n", $stats['rows_fetched_from_client_ps_cursor']);
        !            88: 
        !            89:        mysqli_close($link);
        !            90:        print "done!";
        !            91: ?>
        !            92: --CLEAN--
        !            93: <?php
        !            94:        require_once("clean_table.inc");
        !            95: ?>
        !            96: --EXPECTF--
        !            97: BEGINNING: rows_fetched_from_client_ps_unbuffered = %d
        !            98: BEGINNING: rows_fetched_from_client_ps_buffered = %d
        !            99: BEGINNING: rows_fetched_from_client_ps_cursor = 0
        !           100: BUFFERED: rows_fetched_from_client_ps_unbuffered = %d
        !           101: BUFFERED: rows_fetched_from_client_ps_buffered = %d
        !           102: BUFFERED: rows_fetched_from_client_ps_cursor = 0
        !           103: UNBUFFERED: rows_fetched_from_client_ps_unbuffered = %d
        !           104: UNBUFFERED: rows_fetched_from_client_ps_buffered = %d
        !           105: UNBUFFERED: rows_fetched_from_client_ps_cursor = 0
        !           106: done!

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