summaryrefslogtreecommitdiff
path: root/src/tests/dump_eval_whitelist.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/dump_eval_whitelist.phpt')
-rw-r--r--src/tests/dump_eval_whitelist.phpt51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/tests/dump_eval_whitelist.phpt b/src/tests/dump_eval_whitelist.phpt
new file mode 100644
index 0000000..24ca1d1
--- /dev/null
+++ b/src/tests/dump_eval_whitelist.phpt
@@ -0,0 +1,51 @@
1--TEST--
2Dump eval whitelist
3--SKIPIF--
4<?php
5if (!extension_loaded("snuffleupagus")) die "skip";
6?>
7--POST--
8post_a=data_post_a&post_b=data_post_b
9--GET--
10get_a=data_get_a&get_b=data_get_b
11--COOKIE--
12cookie_a=data_cookie_a&cookie_b=data_cookie_b
13--INI--
14sp.configuration_file={PWD}/config/dump_eval_whitelist.ini
15--FILE--
16<?php
17@mkdir("/tmp/dump_result/");
18foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) {
19 @unlink($dump);
20}
21
22function my_fun($p) {
23 return "my_fun: $p";
24}
25
26function my_other_fun($p) {
27 return "my_other_fun: $p";
28}
29
30$a = my_fun("1337 1337 1337");
31echo "Outside of eval: $a\n";
32eval('$a = my_fun("1234");');
33echo "After allowed eval: $a\n";
34eval('$a = my_other_fun("1234");');
35echo "After eval: $a\n";
36$filename = glob('/tmp/dump_result/sp_dump.*')[0];
37$res = file($filename);
38if ($res[2] != "GET:get_a='data_get_a' get_b='data_get_b' \n") {
39 echo "1\n";
40} elseif ($res[3] != "POST:post_a='data_post_a' post_b='data_post_b' \n") {
41 echo "2\n";
42} elseif ($res[4] != "COOKIE:cookie_a='data_cookie_a&cookie_b=data_cookie_b' \n") {
43 echo "3\n";
44}
45
46?>
47--EXPECTF--
48Outside of eval: my_fun: 1337 1337 1337
49After allowed eval: my_fun: 1234
50[snuffleupagus][0.0.0.0][Eval_whitelist][simulation] The function 'my_other_fun' isn't in the eval whitelist, logging its call.
51After eval: my_other_fun: 1234