Skip to content

Commit 8b8e84c

Browse files
committed
test: add named arguments
1 parent 6c144a6 commit 8b8e84c

File tree

3 files changed

+286
-0
lines changed

3 files changed

+286
-0
lines changed

tests/dictionary_named_args.phpt

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
--TEST--
2+
dict function with use named arguments
3+
--SKIPIF--
4+
<?php
5+
if (PHP_VERSION_ID < 80000) die("skip requires PHP 8.0+");
6+
?>
7+
--FILE--
8+
<?php
9+
include(dirname(__FILE__) . '/data.inc');
10+
$dict = file_get_contents(dirname(__FILE__) . '/data.dic');
11+
12+
$level = ZSTD_COMPRESS_LEVEL_MAX;
13+
14+
echo "** zstd_compress_dict() **\n";
15+
try {
16+
var_dump(gettype(zstd_compress_dict()));
17+
} catch (Error $e) {
18+
echo $e->getMessage(), PHP_EOL;
19+
}
20+
21+
echo "** zstd_compress_dict(data:) **\n";
22+
try {
23+
var_dump(gettype(zstd_compress_dict(data: $data)));
24+
} catch (Error $e) {
25+
echo $e->getMessage(), PHP_EOL;
26+
}
27+
28+
echo "** zstd_compress_dict(dict:) **\n";
29+
try {
30+
var_dump(gettype(zstd_compress_dict(dict: $dict)));
31+
} catch (Error $e) {
32+
echo $e->getMessage(), PHP_EOL;
33+
}
34+
35+
echo "** zstd_compress_dict(level:) **\n";
36+
try {
37+
var_dump(gettype(zstd_compress_dict(level: $level)));
38+
} catch (Error $e) {
39+
echo $e->getMessage(), PHP_EOL;
40+
}
41+
42+
echo "** zstd_compress_dict(data:, level:) **\n";
43+
try {
44+
var_dump(gettype(zstd_compress_dict(data: $data, level: $level)));
45+
} catch (Error $e) {
46+
echo $e->getMessage(), PHP_EOL;
47+
}
48+
49+
echo "** zstd_compress_dict(data:, dict:) **\n";
50+
try {
51+
var_dump(gettype(zstd_compress_dict(data: $data, dict: $dict)));
52+
var_dump(zstd_uncompress_dict(zstd_compress_dict(data: $data, dict: $dict), $dict) === $data);
53+
} catch (Error $e) {
54+
echo $e->getMessage(), PHP_EOL;
55+
}
56+
57+
echo "** zstd_compress_dict(level:, dict:) **\n";
58+
try {
59+
var_dump(gettype(zstd_compress_dict(level: $level, dict: $dict)));
60+
} catch (Error $e) {
61+
echo $e->getMessage(), PHP_EOL;
62+
}
63+
64+
echo "** zstd_compress_dict(data:, dict:, level:) **\n";
65+
try {
66+
var_dump(gettype(zstd_compress_dict(data: $data, dict: $dict, level: $level)));
67+
var_dump(zstd_uncompress_dict(zstd_compress_dict(data: $data, dict: $dict, level: $level), $dict) === $data);
68+
} catch (Error $e) {
69+
echo $e->getMessage(), PHP_EOL;
70+
}
71+
72+
$compressed = zstd_compress_dict(data: $data, dict: $dict);
73+
74+
echo "** zstd_uncompress_dict(): false **\n";
75+
try {
76+
var_dump(gettype(zstd_uncompress_dict()));
77+
} catch (Error $e) {
78+
echo $e->getMessage(), PHP_EOL;
79+
}
80+
81+
echo "** zstd_uncompress_dict(data:) **\n";
82+
try {
83+
var_dump(gettype(zstd_uncompress_dict(data: $compressed)));
84+
} catch (Error $e) {
85+
echo $e->getMessage(), PHP_EOL;
86+
}
87+
88+
echo "** zstd_uncompress_dict(dict:) **\n";
89+
try {
90+
var_dump(gettype(zstd_uncompress_dict(dict: $dict)));
91+
} catch (Error $e) {
92+
echo $e->getMessage(), PHP_EOL;
93+
}
94+
95+
echo "** zstd_uncompress_dict(data:, dict:) **\n";
96+
try {
97+
var_dump(gettype(zstd_uncompress_dict(data: $compressed, dict: $dict)));
98+
var_dump(zstd_uncompress_dict(data: $compressed, dict: $dict) === $data);
99+
} catch (Error $e) {
100+
echo $e->getMessage(), PHP_EOL;
101+
}
102+
?>
103+
===DONE===
104+
--EXPECTF--
105+
** zstd_compress_dict() **
106+
zstd_compress_dict() expects at least 2 arguments, 0 given
107+
** zstd_compress_dict(data:) **
108+
zstd_compress_dict() expects at least 2 arguments, 1 given
109+
** zstd_compress_dict(dict:) **
110+
zstd_compress_dict(): Argument #1 ($data) not passed
111+
** zstd_compress_dict(level:) **
112+
zstd_compress_dict(): Argument #1 ($data) not passed
113+
** zstd_compress_dict(data:, level:) **
114+
zstd_compress_dict(): Argument #2 ($dict) not passed
115+
** zstd_compress_dict(data:, dict:) **
116+
string(6) "string"
117+
bool(true)
118+
** zstd_compress_dict(level:, dict:) **
119+
zstd_compress_dict(): Argument #1 ($data) not passed
120+
** zstd_compress_dict(data:, dict:, level:) **
121+
string(6) "string"
122+
bool(true)
123+
** zstd_uncompress_dict(): false **
124+
zstd_uncompress_dict() expects exactly 2 arguments, 0 given
125+
** zstd_uncompress_dict(data:) **
126+
zstd_uncompress_dict() expects exactly 2 arguments, 1 given
127+
** zstd_uncompress_dict(dict:) **
128+
zstd_uncompress_dict(): Argument #1 ($data) not passed
129+
** zstd_uncompress_dict(data:, dict:) **
130+
string(6) "string"
131+
bool(true)
132+
===DONE===

tests/inc_named_args.phpt

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
--TEST--
2+
incremental function with use named arguments
3+
--SKIPIF--
4+
<?php
5+
if (PHP_VERSION_ID < 80000) die("skip requires PHP 8.0+");
6+
?>
7+
--FILE--
8+
<?php
9+
include(dirname(__FILE__) . '/data.inc');
10+
11+
function test($data, $level = 0) {
12+
echo "level={$level}\n";
13+
14+
$compressed = '';
15+
16+
$context = zstd_compress_init(level: $level);
17+
if ($context === false) {
18+
echo "ERROR\n";
19+
return;
20+
}
21+
foreach (str_split($data, 6) as $var) {
22+
$compressed .= zstd_compress_add(
23+
context: $context,
24+
data: $var,
25+
end: false,
26+
);
27+
}
28+
$compressed .= zstd_compress_add(
29+
context: $context,
30+
data: '',
31+
end: true,
32+
);
33+
34+
if ($data === zstd_uncompress(data: $compressed)) {
35+
echo "OK\n";
36+
} else {
37+
echo "ERROR: uncompress\n";
38+
}
39+
40+
$out = '';
41+
$context = zstd_uncompress_init();
42+
foreach (str_split($compressed, 6) as $var) {
43+
$out .= zstd_uncompress_add(
44+
context: $context,
45+
data: $var,
46+
);
47+
}
48+
if ($data === $out) {
49+
echo "Ok\n";
50+
} else {
51+
echo "Error: increment uncompress\n";
52+
}
53+
}
54+
55+
foreach ([0, 9, 22, 30, -1] as $level) {
56+
test($data, $level, 0);
57+
}
58+
?>
59+
===DONE===
60+
--EXPECTF--
61+
level=0
62+
OK
63+
Ok
64+
level=9
65+
OK
66+
Ok
67+
level=22
68+
OK
69+
Ok
70+
level=30
71+
72+
Warning: zstd_compress_init(): compression level (30) must be within 1..22 or smaller then 0 in %s on line %d
73+
ERROR
74+
level=-1
75+
OK
76+
Ok
77+
===DONE===

tests/named_args.phpt

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
--TEST--
2+
use named arguments
3+
--SKIPIF--
4+
<?php
5+
if (PHP_VERSION_ID < 80000) die("skip requires PHP 8.0+");
6+
?>
7+
--FILE--
8+
<?php
9+
include(dirname(__FILE__) . '/data.inc');
10+
11+
$level = ZSTD_COMPRESS_LEVEL_MAX;
12+
13+
echo "** zstd_compress() **\n";
14+
try {
15+
var_dump(gettype(zstd_compress()));
16+
} catch (Error $e) {
17+
echo $e->getMessage(), PHP_EOL;
18+
}
19+
20+
echo "** zstd_compress(data:) **\n";
21+
try {
22+
var_dump(gettype(zstd_compress(data: $data)));
23+
var_dump(zstd_uncompress(zstd_compress(data: $data)) === $data);
24+
} catch (Error $e) {
25+
echo $e->getMessage(), PHP_EOL;
26+
}
27+
28+
echo "** zstd_compress(level:) **\n";
29+
try {
30+
var_dump(gettype(zstd_compress(level: $level)));
31+
} catch (Error $e) {
32+
echo $e->getMessage(), PHP_EOL;
33+
}
34+
35+
echo "** zstd_compress(data:, level:) **\n";
36+
try {
37+
var_dump(gettype(zstd_compress(data: $data, level: $level)));
38+
var_dump(zstd_uncompress(zstd_compress(data: $data, level: $level)) === $data);
39+
} catch (Error $e) {
40+
echo $e->getMessage(), PHP_EOL;
41+
}
42+
43+
$compressed = zstd_compress(data: $data);
44+
45+
echo "** zstd_uncompress(): false **\n";
46+
try {
47+
var_dump(gettype(zstd_uncompress()));
48+
} catch (Error $e) {
49+
echo $e->getMessage(), PHP_EOL;
50+
}
51+
52+
echo "** zstd_uncompress(data:) **\n";
53+
try {
54+
var_dump(gettype(zstd_uncompress(data: $compressed)));
55+
var_dump(zstd_uncompress(data: $compressed) === $data);
56+
} catch (Error $e) {
57+
echo $e->getMessage(), PHP_EOL;
58+
}
59+
?>
60+
===DONE===
61+
--EXPECTF--
62+
** zstd_compress() **
63+
zstd_compress() expects at least 1 argument, 0 given
64+
** zstd_compress(data:) **
65+
string(6) "string"
66+
bool(true)
67+
** zstd_compress(level:) **
68+
zstd_compress(): Argument #1 ($data) not passed
69+
** zstd_compress(data:, level:) **
70+
string(6) "string"
71+
bool(true)
72+
** zstd_uncompress(): false **
73+
zstd_uncompress() expects exactly 1 argument, 0 given
74+
** zstd_uncompress(data:) **
75+
string(6) "string"
76+
bool(true)
77+
===DONE===

0 commit comments

Comments
 (0)