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

1.1     ! misho       1: --TEST--
        !             2: mysqli_debug() - invalid debug control strings
        !             3: --SKIPIF--
        !             4: <?php
        !             5: require_once('skipif.inc');
        !             6: require_once('skipifemb.inc');
        !             7: require_once('skipifconnectfailure.inc');
        !             8: 
        !             9: if (!function_exists('mysqli_debug'))
        !            10:        die("skip: mysqli_debug() not available");
        !            11: 
        !            12: if (!defined('MYSQLI_DEBUG_TRACE_ENABLED'))
        !            13:        die("skip: can't say for sure if mysqli_debug works");
        !            14: 
        !            15: if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
        !            16:        die("skip: debug functionality not enabled");
        !            17: 
        !            18: if (!$IS_MYSQLND)
        !            19:        die("SKIP Libmysql feature not sufficiently spec'd in MySQL C API documentation");
        !            20: ?>
        !            21: --FILE--
        !            22: <?php
        !            23:        require_once('connect.inc');
        !            24:        require_once('table.inc');
        !            25: 
        !            26:        function try_control_string($link, $control_string, $trace_file, $offset) {
        !            27: 
        !            28:                if (true !== ($tmp = mysqli_debug($control_string))) {
        !            29:                        printf("[%03d][control string '%s'] Expecting boolean/true, got %s/%s.\n",
        !            30:                                $offset + 1,
        !            31:                                $control_string,
        !            32:                                gettype($tmp),
        !            33:                                $tmp);
        !            34:                        return false;
        !            35:                }
        !            36: 
        !            37:                if (!$res = mysqli_query($link, 'SELECT * FROM test')) {
        !            38:                        printf("[%03d][control string '%s'] [%d] %s.\n",
        !            39:                                $offset + 2,
        !            40:                                $control_string,
        !            41:                                mysqli_errno($link),
        !            42:                                mysqli_error($link));
        !            43:                        return false;
        !            44:                }
        !            45: 
        !            46:                clearstatcache();
        !            47:                if (!file_exists($trace_file)) {
        !            48:                        printf("[%03d][control string '%s'] Trace file has not been written.\n",
        !            49:                                $offset + 3,
        !            50:                                $control_string,
        !            51:                                gettype($tmp),
        !            52:                                $tmp);
        !            53:                        return false;
        !            54:                }
        !            55: 
        !            56:                unlink($trace_file);
        !            57:        }
        !            58: 
        !            59:        $trace_file = sprintf('%s%s%s', sys_get_temp_dir(), DIRECTORY_SEPARATOR, 'mysqli_debug_phpt.trace');
        !            60:        try_control_string($link, 't:,,:o,' . $trace_file, $trace_file, 10);
        !            61:        try_control_string($link, ':' . chr(0) . 'A,' . $trace_file, $trace_file, 20);
        !            62:        try_control_string($link, 't:o,' . $trace_file . ':abc', $trace_file, 30);
        !            63:        try_control_string($link, 't:o,' . $trace_file . ':ABC,123:b', $trace_file, 40);
        !            64:        try_control_string($link, 't:ABC,123:b;:o,' . $trace_file, $trace_file, 50);
        !            65:        try_control_string($link, 't:A;BC,123:b;:o,' . $trace_file, $trace_file, 60);
        !            66:        try_control_string($link, 't:p:o,' . $trace_file, $trace_file, 70);
        !            67:        try_control_string($link, 't:p,1,,2:o,' . $trace_file, $trace_file, 80);
        !            68:        try_control_string($link, 't:z,1,,2:o,' . $trace_file, $trace_file, 90);#
        !            69: 
        !            70:        mysqli_close($link);
        !            71:        print "done";
        !            72:        if ($IS_MYSQLND)
        !            73:                print "libmysql/DBUG package prints some debug info here."
        !            74: ?>
        !            75: --EXPECTF--
        !            76: [023][control string '%s'] Trace file has not been written.
        !            77: done%s

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