Annotation of embedaddon/php/ext/mysqli/tests/mysqli_debug_control_string.phpt, revision 1.1.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>