1--TEST--
2token_get_all() produces T_BAD_CHARACTER for unexpected characters
3--SKIPIF--
4<?php if (!extension_loaded("tokenizer")) print "skip tokenizer extension not enabled"; ?>
5--FILE--
6<?php
7
8$codes = [
9    "<?php \0 foo",
10    "<?php \1 bar",
11    "<?php \1\2 bar \3",
12];
13
14foreach ($codes as $code) {
15    foreach (token_get_all($code) as $token) {
16        if (is_array($token)) {
17            echo token_name($token[0]), " ", strlen($token[1]), "\n";
18        } else {
19            echo $token, "\n";
20        }
21    }
22}
23
24?>
25--EXPECTF--
26Warning: Unexpected character in input:  ' in %s on line %d
27T_OPEN_TAG 6
28T_BAD_CHARACTER 1
29T_WHITESPACE 1
30T_STRING 3
31
32Warning: Unexpected character in input:  '%s' (ASCII=1) state=0 in %s on line %d
33T_OPEN_TAG 6
34T_BAD_CHARACTER 1
35T_WHITESPACE 1
36T_STRING 3
37
38Warning: Unexpected character in input:  '%s' (ASCII=1) state=0 in %s on line %d
39
40Warning: Unexpected character in input:  '%s' (ASCII=2) state=0 in %s on line %d
41
42Warning: Unexpected character in input:  '%s' (ASCII=3) state=0 in %s on line %d
43T_OPEN_TAG 6
44T_BAD_CHARACTER 1
45T_BAD_CHARACTER 1
46T_WHITESPACE 1
47T_STRING 3
48T_WHITESPACE 1
49T_BAD_CHARACTER 1
50