@@ -6,22 +6,31 @@ if (!extension_loaded('brotli')) die('skip need ext/brotli');
6
6
?>
7
7
--FILE--
8
8
<?php
9
- function test ($ quality = 0 , $ mode = 0 ) {
9
+ function test ($ quality = 0 , $ mode = 0 , $ types = [] ) {
10
10
echo "quality= {$ quality }, mode= {$ mode }\n" ;
11
11
12
- $ modeTypes = [
12
+ $ modeTypes = array_merge ( [
13
13
'BROTLI_PROCESS ' => BROTLI_PROCESS ,
14
14
'BROTLI_FLUSH ' => BROTLI_FLUSH ,
15
- ];
15
+ ], $ types ) ;
16
16
17
17
foreach ($ modeTypes as $ modeTypeKey => $ modeType ) {
18
18
19
19
$ uncompressed = $ compressed = '' ;
20
20
21
21
$ resource = brotli_compress_init ($ quality , $ mode );
22
+ if ($ resource === false ) {
23
+ echo "ERROR \n" ;
24
+ return ;
25
+ }
22
26
foreach (range ('a ' , 'z ' ) as $ c ) {
23
27
$ uncompressed .= $ c ;
24
- $ compressed .= brotli_compress_add ($ resource , $ c , $ modeType );
28
+ $ result = brotli_compress_add ($ resource , $ c , $ modeType );
29
+ if ($ result === false ) {
30
+ echo "ERROR: brotli_compress_add | {$ modeTypeKey }\n" ;
31
+ return ;
32
+ }
33
+ $ compressed .= $ result ;
25
34
}
26
35
$ compressed .= brotli_compress_add ($ resource , '' , BROTLI_FINISH );
27
36
@@ -39,6 +48,7 @@ foreach ([0, 9, 11, 20, -1] as $quality) {
39
48
foreach ([0 , 1 , 2 , 3 , -1 ] as $ mode ) {
40
49
test (0 , $ mode );
41
50
}
51
+ test (0 , 0 , ['INCORRECT ' => -1 ]);
42
52
?>
43
53
===DONE===
44
54
--EXPECTF--
53
63
OK
54
64
quality=20, mode=0
55
65
56
- Warning: brotli_compress_init(): brotli: compression level (20) must be within 0..11 in %s on line %d
57
- OK
58
-
59
- Warning: brotli_compress_init(): brotli: compression level (20) must be within 0..11 in %s on line %d
60
- OK
66
+ Warning: brotli_compress_init(): failed to compression quality (20): must be within 0..11 in %s on line %d
67
+ ERROR
61
68
quality=-1, mode=0
62
69
63
- Warning: brotli_compress_init(): brotli: compression level (-1) must be within 0..11 in %s on line %d
64
- OK
65
-
66
- Warning: brotli_compress_init(): brotli: compression level (-1) must be within 0..11 in %s on line %d
67
- OK
70
+ Warning: brotli_compress_init(): failed to compression quality (-1): must be within 0..11 in %s on line %d
71
+ ERROR
68
72
quality=0, mode=0
69
73
OK
70
74
OK
76
80
OK
77
81
quality=0, mode=3
78
82
79
- Warning: brotli_compress_init(): brotli: compression mode (3) must be 0, 1, 2 in %s on line %d
80
- OK
81
-
82
- Warning: brotli_compress_init(): brotli: compression mode (3) must be 0, 1, 2 in %s on line %d
83
- OK
83
+ Warning: brotli_compress_init(): failed to compression mode (3): must be BROTLI_GENERIC(0)|BROTLI_TEXT(1)|BROTLI_FONT(2) in %s on line %d
84
+ ERROR
84
85
quality=0, mode=-1
85
86
86
- Warning: brotli_compress_init(): brotli: compression mode (-1) must be 0, 1, 2 in %s on line %d
87
+ Warning: brotli_compress_init(): failed to compression mode (-1): must be BROTLI_GENERIC(0)|BROTLI_TEXT(1)|BROTLI_FONT(2) in %s on line %d
88
+ ERROR
89
+ quality=0, mode=0
87
90
OK
88
-
89
- Warning: brotli_compress_init(): brotli: compression mode (-1) must be 0, 1, 2 in %s on line %d
90
91
OK
92
+
93
+ Warning: brotli_compress_add(): failed to compression mode (-1): must be BROTLI_PROCESS(0)|BROTLI_FLUSH(1)|BROTLI_FINISH(2) in %s on line %d
94
+ ERROR: brotli_compress_add | INCORRECT
91
95
===DONE===
0 commit comments