Skip to content

Commit

Permalink
test: add brotli_{compress,uncompress}_add test mode
Browse files Browse the repository at this point in the history
  • Loading branch information
kjdev committed Jan 19, 2024
1 parent 4c6f6d7 commit 3838533
Show file tree
Hide file tree
Showing 5 changed files with 112 additions and 57 deletions.
25 changes: 16 additions & 9 deletions tests/incremental_compress_add_alias.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,24 @@ if (PHP_VERSION_ID < 70000) die('skip need version: 7.0+');
?>
--FILE--
<?php
$uncompressed = $compressed = '';
$modeTypes = [
'BROTLI_PROCESS' => BROTLI_PROCESS,
'BROTLI_FLUSH' => BROTLI_FLUSH,
];

$resource = Brotli\compress_init();
foreach (range('a', 'z') as $c) {
$uncompressed .= $c;
$compressed .= Brotli\compress_add($resource, $c, BROTLI_PROCESS);
}
$compressed .= Brotli\compress_add($resource, '', BROTLI_FINISH);
foreach ($modeTypes as $modeTypeKey => $modeType) {
$uncompressed = $compressed = '';

$resource = Brotli\compress_init();
foreach (range('a', 'z') as $c) {
$uncompressed .= $c;
$compressed .= Brotli\compress_add($resource, $c, $modeType);
}
$compressed .= Brotli\compress_add($resource, '', BROTLI_FINISH);

if ($uncompressed !== brotli_uncompress($compressed)) {
echo "Error: Brotli\\compress_add\n";
if ($uncompressed !== brotli_uncompress($compressed)) {
echo "Error: Brotli\\compress_add | {$modeTypeKey}\n";
}
}
?>
===DONE===
Expand Down
48 changes: 37 additions & 11 deletions tests/incremental_compress_add_args.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,27 @@ if (PHP_VERSION_ID < 70000) die('skip need version: 7.0+');
function test($quality = 0, $mode = 0) {
echo "quality={$quality}, mode={$mode}\n";

$uncompressed = $compressed = '';
$modeTypes = [
'BROTLI_PROCESS' => BROTLI_PROCESS,
'BROTLI_FLUSH' => BROTLI_FLUSH,
];

$resource = brotli_compress_init($quality, $mode);
foreach (range('a', 'z') as $c) {
$uncompressed .= $c;
$compressed .= brotli_compress_add($resource, $c, BROTLI_PROCESS);
}
$compressed .= brotli_compress_add($resource, '', BROTLI_FINISH);
foreach ($modeTypes as $modeTypeKey => $modeType) {

$uncompressed = $compressed = '';

$resource = brotli_compress_init($quality, $mode);
foreach (range('a', 'z') as $c) {
$uncompressed .= $c;
$compressed .= brotli_compress_add($resource, $c, $modeType);
}
$compressed .= brotli_compress_add($resource, '', BROTLI_FINISH);

if ($uncompressed === brotli_uncompress($compressed)) {
echo "OK\n";
} else {
echo "Error: brotli_compress_add\n";
if ($uncompressed === brotli_uncompress($compressed)) {
echo "OK\n";
} else {
echo "Error: brotli_compress_add | {$modeTypeKey}\n";
}
}
}

Expand All @@ -37,30 +45,48 @@ foreach ([0, 1, 2, 3, -1] as $mode) {
--EXPECTF--
quality=0, mode=0
OK
OK
quality=9, mode=0
OK
OK
quality=11, mode=0
OK
OK
quality=20, mode=0

Warning: brotli_compress_init(): brotli: compression level (20) must be within 0..11 in %s on line %d
OK

Warning: brotli_compress_init(): brotli: compression level (20) must be within 0..11 in %s on line %d
OK
quality=-1, mode=0

Warning: brotli_compress_init(): brotli: compression level (-1) must be within 0..11 in %s on line %d
OK

Warning: brotli_compress_init(): brotli: compression level (-1) must be within 0..11 in %s on line %d
OK
quality=0, mode=0
OK
OK
quality=0, mode=1
OK
OK
quality=0, mode=2
OK
OK
quality=0, mode=3

Warning: brotli_compress_init(): brotli: compression mode (3) must be 0, 1, 2 in %s on line %d
OK

Warning: brotli_compress_init(): brotli: compression mode (3) must be 0, 1, 2 in %s on line %d
OK
quality=0, mode=-1

Warning: brotli_compress_init(): brotli: compression mode (-1) must be 0, 1, 2 in %s on line %d
OK

Warning: brotli_compress_init(): brotli: compression mode (-1) must be 0, 1, 2 in %s on line %d
OK
===DONE===
26 changes: 17 additions & 9 deletions tests/incremental_compress_add_basic.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,25 @@ if (PHP_VERSION_ID < 70000) die('skip need version: 7.0+');
?>
--FILE--
<?php
$uncompressed = $compressed = '';
$modeTypes = [
'BROTLI_PROCESS' => BROTLI_PROCESS,
'BROTLI_FLUSH' => BROTLI_FLUSH,
];

$resource = brotli_compress_init();
foreach (range('a', 'z') as $c) {
$uncompressed .= $c;
$compressed .= brotli_compress_add($resource, $c, BROTLI_PROCESS);
}
$compressed .= brotli_compress_add($resource, '', BROTLI_FINISH);
foreach ($modeTypes as $modeTypeKey => $modeType) {
$uncompressed = $compressed = '';

$resource = brotli_compress_init();

foreach (range('a', 'z') as $c) {
$uncompressed .= $c;
$compressed .= brotli_compress_add($resource, $c, $modeType);
}
$compressed .= brotli_compress_add($resource, '', BROTLI_FINISH);

if ($uncompressed !== brotli_uncompress($compressed)) {
echo "Error: brotli_compress_add\n";
if ($uncompressed !== brotli_uncompress($compressed)) {
echo "Error: brotli_compress_add | {$modeTypeKey}\n";
}
}
?>
===DONE===
Expand Down
35 changes: 21 additions & 14 deletions tests/incremental_uncompress_add_alias.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,31 @@ if (PHP_VERSION_ID < 70000) die('skip need version: 7.0+');
?>
--FILE--
<?php
$uncompressed = '';
for ($i = 0; $i < (32768 * 2); $i++) {
$uncompressed .= chr(rand(48, 125));
}
$modeTypes = [
'BROTLI_PROCESS' => BROTLI_PROCESS,
'BROTLI_FLUSH' => BROTLI_FLUSH,
];

$compressed = brotli_compress($uncompressed);
$compressedLen = strlen($compressed);
foreach ($modeTypes as $modeTypeKey => $modeType) {
$uncompressed = '';
for ($i = 0; $i < (32768 * 2); $i++) {
$uncompressed .= chr(rand(48, 125));
}

$out = '';
$compressed = brotli_compress($uncompressed);
$compressedLen = strlen($compressed);

$resource = Brotli\uncompress_init();
for ($i = 0; $i < $compressedLen; $i++) {
$out .= Brotli\uncompress_add($resource, $compressed[$i], BROTLI_PROCESS);
}
$out .= Brotli\uncompress_add($resource, '', BROTLI_FINISH);
$out = '';

$resource = Brotli\uncompress_init();
for ($i = 0; $i < $compressedLen; $i++) {
$out .= Brotli\uncompress_add($resource, $compressed[$i], $modeType);
}
$out .= Brotli\uncompress_add($resource, '', BROTLI_FINISH);

if ($out !== $uncompressed) {
echo "Error: Brotli\\uncompress_add\n";
if ($out !== $uncompressed) {
echo "Error: Brotli\\uncompress_add | {$modeTypeKey}\n";
}
}
?>
===DONE===
Expand Down
35 changes: 21 additions & 14 deletions tests/incremental_uncompress_add_basic.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,31 @@ if (PHP_VERSION_ID < 70000) die('skip need version: 7.0+');
?>
--FILE--
<?php
$uncompressed = '';
for ($i = 0; $i < (32768 * 2); $i++) {
$uncompressed .= chr(rand(48, 125));
}
$modeTypes = [
'BROTLI_PROCESS' => BROTLI_PROCESS,
'BROTLI_FLUSH' => BROTLI_FLUSH,
];

$compressed = brotli_compress($uncompressed);
$compressedLen = strlen($compressed);
foreach ($modeTypes as $modeTypeKey => $modeType) {
$uncompressed = '';
for ($i = 0; $i < (32768 * 2); $i++) {
$uncompressed .= chr(rand(48, 125));
}

$out = '';
$compressed = brotli_compress($uncompressed);
$compressedLen = strlen($compressed);

$resource = brotli_uncompress_init();
for ($i = 0; $i < $compressedLen; $i++) {
$out .= brotli_uncompress_add($resource, $compressed[$i], BROTLI_PROCESS);
}
$out .= brotli_uncompress_add($resource, '', BROTLI_FINISH);
$out = '';

$resource = brotli_uncompress_init();
for ($i = 0; $i < $compressedLen; $i++) {
$out .= brotli_uncompress_add($resource, $compressed[$i], $modeType);
}
$out .= brotli_uncompress_add($resource, '', BROTLI_FINISH);

if ($out !== $uncompressed) {
echo "Error: brotli_uncompress_add\n";
if ($out !== $uncompressed) {
echo "Error: brotli_uncompress_add | {$modeTypeKey}\n";
}
}
?>
===DONE===
Expand Down

0 comments on commit 3838533

Please sign in to comment.