Annotation of embedaddon/php/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_set_local_infile_handler() - random ASCII character including \0
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifemb.inc');
7: require_once('skipifconnectfailure.inc');
8: require_once('connect.inc');
9:
10: if (!function_exists('mysqli_set_local_infile_handler'))
11: die("skip - function not available.");
12:
13: if (!$TEST_EXPERIMENTAL)
14: die("skip - experimental (= unsupported) feature");
15:
16: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
17: die("skip Cannot connect to MySQL");
18:
19: include_once("local_infile_tools.inc");
20: if ($msg = check_local_infile_support($link, $engine))
21: die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
22:
23: mysqli_close($link);
24: ?>
25: --INI--
26: mysqli.allow_local_infile=1
27: --FILE--
28: <?php
29: require_once('connect.inc');
30: require_once('local_infile_tools.inc');
31: require_once('table.inc');
32:
33: function callback_bad_character($fp, &$buffer, $buflen, &$error) {
34: static $invocation = 0;
35:
36: printf("Callback: %d\n", $invocation++);
37:
38: $num_chars = (version_compare(PHP_VERSION, '5.9.9', '>') == 1) ? (floor($buflen / 2) - 10) : ($buflen - 5);
39: $part1 = floor($num_chars / 2);
40: $part2 = $num_chars - $part1;
41:
42: $buffer = '';
43: for ($i = 0; $i < $part1; $i++)
44: $buffer .= chr(mt_rand(0, 255));
45:
46: $buffer .= ';"';
47:
48: for ($i = 0; $i < $part2; $i++)
49: $buffer .= chr(mt_rand(0, 255));
50:
51: $buffer .= '";';
52: if ($invocation > 10)
53: return 0;
54:
55: return strlen($buffer);
56: }
57:
58: $file = create_standard_csv(5);
59: /* we feed the handler with random data, therefore we cannot specify and expected rows */
60: try_handler(20, $link, $file, 'callback_bad_character');
61:
62: mysqli_close($link);
63: print "done!";
64: ?>
65: --CLEAN--
66: <?php
67: require_once("clean_table.inc");
68: ?>
69: --EXPECTF--
70: Callback set to 'callback_bad_character'
71: Callback: 0
72: Callback: 1
73: Callback: 2
74: Callback: 3
75: Callback: 4
76: Callback: 5
77: Callback: 6
78: Callback: 7
79: Callback: 8
80: Callback: 9
81: Callback: 10
82: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>