summaryrefslogtreecommitdiff
path: root/src/tests/unserialize
diff options
context:
space:
mode:
authorjvoisin2019-01-14 19:29:25 +0000
committerGitHub2019-01-14 19:29:25 +0000
commite79f7e3bd992c7f0915ef9afe7afb6d79740527a (patch)
treef881c25694eb00da2331a9ab280ec1c24a5662ab /src/tests/unserialize
parentc943db586ac46b686b49bdf61d8473e39dd93000 (diff)
Reorganize the testsuite
Splitting the testsuite in several components makes it easier to manage and comprehend. This was also needed some some tests aren't passing on Alpine Linux, but we still want to run as many of them as we can on this platform.
Diffstat (limited to 'src/tests/unserialize')
-rw-r--r--src/tests/unserialize/config/config_serialize.ini2
-rw-r--r--src/tests/unserialize/config/config_serialize_sim.ini2
-rw-r--r--src/tests/unserialize/config/dump_unserialize.ini2
-rw-r--r--src/tests/unserialize/dump_unserialize.phpt39
-rw-r--r--src/tests/unserialize/serialize.phpt13
-rw-r--r--src/tests/unserialize/unserialize.phpt13
-rw-r--r--src/tests/unserialize/unserialize_fail.phpt15
-rw-r--r--src/tests/unserialize/unserialize_sim.phpt18
-rw-r--r--src/tests/unserialize/unserialize_wrong_call.phpt14
9 files changed, 118 insertions, 0 deletions
diff --git a/src/tests/unserialize/config/config_serialize.ini b/src/tests/unserialize/config/config_serialize.ini
new file mode 100644
index 0000000..f2c1699
--- /dev/null
+++ b/src/tests/unserialize/config/config_serialize.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.unserialize_hmac.enable(); \ No newline at end of file
diff --git a/src/tests/unserialize/config/config_serialize_sim.ini b/src/tests/unserialize/config/config_serialize_sim.ini
new file mode 100644
index 0000000..7f015e0
--- /dev/null
+++ b/src/tests/unserialize/config/config_serialize_sim.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.unserialize_hmac.enable().simulation();
diff --git a/src/tests/unserialize/config/dump_unserialize.ini b/src/tests/unserialize/config/dump_unserialize.ini
new file mode 100644
index 0000000..4352a3e
--- /dev/null
+++ b/src/tests/unserialize/config/dump_unserialize.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.unserialize_hmac.enable().dump("/tmp/dump_result/");
diff --git a/src/tests/unserialize/dump_unserialize.phpt b/src/tests/unserialize/dump_unserialize.phpt
new file mode 100644
index 0000000..4b54cbb
--- /dev/null
+++ b/src/tests/unserialize/dump_unserialize.phpt
@@ -0,0 +1,39 @@
1--TEST--
2Dump unserialize
3--SKIPIF--
4<?php
5if (!extension_loaded("snuffleupagus")) {
6 print "skip";
7}
8?>
9--POST--
10post_a=data_post_a&post_b=data_post_b
11--GET--
12get_a=data_get_a&get_b=data_get_b
13--COOKIE--
14cookie_a=data_cookie_a&cookie_b=data_cookie_b
15--INI--
16sp.configuration_file={PWD}/config/dump_unserialize.ini
17--FILE--
18<?php
19@mkdir("/tmp/dump_result/");
20foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) {
21 @unlink($dump);
22}
23
24echo "1\n";
25var_dump(unserialize('s:1:"a";alyualskdufyhalkdjsfhalkjdhflaksjdfhlkasdhflkahdawkuerylksjdfhlkssjgdflaksjdhflkasjdf'));
26$filename = glob('/tmp/dump_result/sp_dump.*')[0];
27$res = file($filename);
28if ($res[2] != "GET:get_a='data_get_a' get_b='data_get_b' \n") {
29 echo "1\n";
30} elseif ($res[3] != "POST:post_a='data_post_a' post_b='data_post_b' \n") {
31 echo "2\n";
32} elseif ($res[4] != "COOKIE:cookie_a='data_cookie_a&cookie_b=data_cookie_b' \n") {
33 echo "3\n";
34}
35?>
36--EXPECTF--
371
38
39Fatal error: [snuffleupagus][unserialize] Invalid HMAC for s:1:"a";alyualskdufyhalkdjsfh in %a/dump_unserialize.php on line 8
diff --git a/src/tests/unserialize/serialize.phpt b/src/tests/unserialize/serialize.phpt
new file mode 100644
index 0000000..e93dbaf
--- /dev/null
+++ b/src/tests/unserialize/serialize.phpt
@@ -0,0 +1,13 @@
1--TEST--
2Test serialize hmac
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9echo serialize("a");
10?>
11--EXPECT--
12s:1:"a";650609b417904d0d9bbf1fc44a975d13ecdf6b02b715c1a06271fb3b673f25b1
13
diff --git a/src/tests/unserialize/unserialize.phpt b/src/tests/unserialize/unserialize.phpt
new file mode 100644
index 0000000..b1db915
--- /dev/null
+++ b/src/tests/unserialize/unserialize.phpt
@@ -0,0 +1,13 @@
1--TEST--
2Unserialize ok
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9$a=serialize("a");
10var_dump(unserialize($a));
11?>
12--EXPECT--
13string(1) "a"
diff --git a/src/tests/unserialize/unserialize_fail.phpt b/src/tests/unserialize/unserialize_fail.phpt
new file mode 100644
index 0000000..c6411a5
--- /dev/null
+++ b/src/tests/unserialize/unserialize_fail.phpt
@@ -0,0 +1,15 @@
1--TEST--
2Unserialize fail
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9var_dump(unserialize('s:1:"a";'));
10var_dump(unserialize('s:1:"a";alyualskdufyhalkdjsfhalkjdhflaksjdfhlkasdhflkahdawkuerylksjdfhlkssjgdflaksjdhflkasjdf'));
11var_dump(unserialize('s:1:"a";dslfjklfjfkjfdjffjfjads'));
12var_dump(unserialize(1,2,3,4));
13?>
14--EXPECTF--
15Fatal error: [snuffleupagus][unserialize] The serialized object is too small. in %a/unserialize_fail.php on line 2 \ No newline at end of file
diff --git a/src/tests/unserialize/unserialize_sim.phpt b/src/tests/unserialize/unserialize_sim.phpt
new file mode 100644
index 0000000..d919af1
--- /dev/null
+++ b/src/tests/unserialize/unserialize_sim.phpt
@@ -0,0 +1,18 @@
1--TEST--
2Unserialize ok
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize_sim.ini
7--FILE--
8<?php
9$a=serialize("a");
10echo $a;
11var_dump(unserialize($a));
12var_dump(unserialize('s:1:"a";alyualskdufyhalkdjsfhalkjdhflaksjdfhlkasdhflkahdawkuerylksjdfhlkssjgdflaksjdh1337sjdf'));
13?>
14--EXPECTF--
15s:1:"a";650609b417904d0d9bbf1fc44a975d13ecdf6b02b715c1a06271fb3b673f25b1string(1) "a"
16
17Warning: [snuffleupagus][unserialize] Invalid HMAC for s:1:"a";alyualskdufyhalkdjsfh in %a/unserialize_sim.php on line 5
18string(1) "a"
diff --git a/src/tests/unserialize/unserialize_wrong_call.phpt b/src/tests/unserialize/unserialize_wrong_call.phpt
new file mode 100644
index 0000000..729d020
--- /dev/null
+++ b/src/tests/unserialize/unserialize_wrong_call.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Unserialize ok, but called with the wrong numeber of aguments
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9$a=serialize("a");
10var_dump(unserialize($a, "too", "many", "aaaaaaaarguments!"));
11?>
12--EXPECTF--
13Warning: unserialize() expects at most 2 parameters, 4 given in %a/unserialize_wrong_call.php on line %d
14bool(false)