summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorjvoisin2020-12-28 20:45:33 +0100
committerjvoisin2020-12-31 14:14:26 +0100
commit032718b7cb93c4143877e355e9bcb6935d8cedcf (patch)
tree133c7dda7c02633dd2099a59ea9f28b43b0d9935 /src/tests
parent72d52e5b6933b44ab9f01bc22e3d264626716cd4 (diff)
Add tests for broken configuration on php8
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/broken_configuration_php8/broken_conf.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf2.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_allow_broken_disabled.phpt18
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_allow_broken_enabled.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_config_regexp.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_config_regexp_no_closing_paren.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_encryption_key.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_env_var.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_cookie_name_and_regexp.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_enable_disable.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_eval.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_expecting_bool.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_cidr.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_cidr6.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_no_slash.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_too_big.phpt9
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_cidr_value.phpt17
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_filename.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_log_media.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_invalid_type.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_key_value.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_line_empty_string.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_line_no_closing.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_1.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_10.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_11.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_12.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_13.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_14.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_15.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_16.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_2.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_3.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_4.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_5.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_6.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_7.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_8.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_local_var_9.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_lots_of_quotes.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_missing_script.phpt17
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive10.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive11.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive12.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive2.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive3.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive4.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive5.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive6.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive7.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive8.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_mutually_exclusive9.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_no_cookie_action.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_no_cookie_name.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_no_file_specified.phpt10
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_nonexisting_script.phpt17
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_quotes.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_readonly_exec.phpt17
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_samesite.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_session_encryption.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_session_encryption_without_encryption_key.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_session_encryption_without_env_var.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_shown_in_phpinfo.phpt27
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_truncated.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_unserialize.phpt17
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_upload_validation.phpt17
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_weird_keyword.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_wrapper_whitelist.phpt18
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_wrong_quotes.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_wrong_type.phpt14
-rw-r--r--src/tests/broken_configuration_php8/broken_invalid_client_ip4.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_regexp.phpt16
-rw-r--r--src/tests/broken_configuration_php8/broken_unmatching_brackets.phpt16
-rw-r--r--src/tests/broken_configuration_php8/config/borken_conf_enable_disable.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/borken_conf_upload_validation.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf2.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_cookie_action.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_encryption_key.ini2
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_env_var.ini2
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_cookie_name_and_regexp.ini2
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_cookie_samesite.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_eval.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_expecting_bool.ini5
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_no_slash.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_too_big.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr_value.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_filename.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_log_media.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_invalid_type.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_key_value.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_line_empty_string.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_line_no_closing.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_1.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_10.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_11.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_12.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_13.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_14.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_15.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_16.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_2.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_3.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_4.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_5.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_6.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_7.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_8.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_local_var_9.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_lots_of_quotes.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_missing_script.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive10.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive11.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive12.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive2.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive3.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive4.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive5.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive6.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive7.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive8.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive9.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_nonexisting_script.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_quotes.ini3
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_readonly_exec.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_session_encryption.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_encryption_key.ini2
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_env_var.ini2
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_to_few_args.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_unserialize.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_weird_keyword.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_wrapper_whitelist.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_wrong_quotes.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_conf_wrong_type.ini5
-rw-r--r--src/tests/broken_configuration_php8/config/broken_config_regexp.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_config_regexp_no_closing_paren.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/broken_regexp.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/config_broken_conf_truncated.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/config_encrypted_cookies_noname.ini3
-rw-r--r--src/tests/broken_configuration_php8/config/config_encrypted_regexp_cookies_bad_regexp.ini3
-rw-r--r--src/tests/broken_configuration_php8/config/config_unmatching_brackets.ini1
-rw-r--r--src/tests/broken_configuration_php8/config/disabled_functions_cidr.ini9
-rw-r--r--src/tests/broken_configuration_php8/encrypt_regexp_cookies_bad_regexp.phpt22
147 files changed, 1231 insertions, 0 deletions
diff --git a/src/tests/broken_configuration_php8/broken_conf.phpt b/src/tests/broken_configuration_php8/broken_conf.phpt
new file mode 100644
index 0000000..7dde7d6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration prefix for 'this is a broken line' on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf2.phpt b/src/tests/broken_configuration_php8/broken_conf2.phpt
new file mode 100644
index 0000000..bf337b4
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf2.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf2.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration section 'sp.wrong' on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_allow_broken_disabled.phpt b/src/tests/broken_configuration_php8/broken_conf_allow_broken_disabled.phpt
new file mode 100644
index 0000000..9dd0c66
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_allow_broken_disabled.phpt
@@ -0,0 +1,18 @@
1--TEST--
2Broken configuration with allow broken turned off
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf.ini
8sp.allow_broken_configuration=Off
9--FILE--
10<?php
11echo 1337;
12?>
13--EXPECT--
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration prefix for 'this is a broken line' on line 1 in Unknown on line 0
16
17Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
18Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_allow_broken_enabled.phpt b/src/tests/broken_configuration_php8/broken_conf_allow_broken_enabled.phpt
new file mode 100644
index 0000000..eccc8a8
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_allow_broken_enabled.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration with allow broken turned on
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf.ini
8sp.allow_broken_configuration=On
9--FILE--
10<?php
11echo 1337;
12?>
13--EXPECT--
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration prefix for 'this is a broken line' on line 1 in Unknown on line 0
161337
diff --git a/src/tests/broken_configuration_php8/broken_conf_config_regexp.phpt b/src/tests/broken_configuration_php8/broken_conf_config_regexp.phpt
new file mode 100644
index 0000000..76ef208
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_config_regexp.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_config_regexp.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Failed to compile '*.': %s on line 1. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] '.filename_r()' is expecting a valid regexp, and not '"*."' on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_config_regexp_no_closing_paren.phpt b/src/tests/broken_configuration_php8/broken_conf_config_regexp_no_closing_paren.phpt
new file mode 100644
index 0000000..5bdca06
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_config_regexp_no_closing_paren.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration - regexp without a closing parenthesis
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_config_regexp_no_closing_paren.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] There is an issue with the parsing of '"*."': it doesn't look like a valid string on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] '.filename_r()' is expecting a valid regexp, and not '"*."' on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_encryption_key.phpt b/src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_encryption_key.phpt
new file mode 100644
index 0000000..0447320
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_encryption_key.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - encrypted cookie without encryption key
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_cookie_encryption_without_encryption_key.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You're trying to use the cookie encryption featureon line 2 without having set the `.encryption_key` option in`sp.global`: please set it first in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_env_var.phpt b/src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_env_var.phpt
new file mode 100644
index 0000000..204430d
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_cookie_encryption_without_env_var.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - encrypted cookie with without cookie env var
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_cookie_encryption_without_env_var.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You're trying to use the cookie encryption featureon line 2 without having set the `.cookie_env_var` option in`sp.global`: please set it first in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_cookie_name_and_regexp.phpt b/src/tests/broken_configuration_php8/broken_conf_cookie_name_and_regexp.phpt
new file mode 100644
index 0000000..8648b4f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_cookie_name_and_regexp.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - encrypted cookie with name and regexp
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_cookie_name_and_regexp.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] name and name_r are mutually exclusive on line 2 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_enable_disable.phpt b/src/tests/broken_configuration_php8/broken_conf_enable_disable.phpt
new file mode 100644
index 0000000..54e4d32
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_enable_disable.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Global strict mode
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/borken_conf_enable_disable.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_eval.phpt b/src/tests/broken_configuration_php8/broken_conf_eval.phpt
new file mode 100644
index 0000000..1a6ad4d
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_eval.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration for eval
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_eval.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] There is an issue with the parsing of '"cos,sin': it doesn't look like a valid string on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_expecting_bool.phpt b/src/tests/broken_configuration_php8/broken_conf_expecting_bool.phpt
new file mode 100644
index 0000000..682a4f5
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_expecting_bool.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Bad boolean value in configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_expecting_bool.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Trailing chars '337);' at the end of '.enable(1337);' on line 5 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_cidr.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr.phpt
new file mode 100644
index 0000000..f66d8b6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_cidr.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] '42' isn't a valid ipv4 mask. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6.phpt
new file mode 100644
index 0000000..91bd4a2
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_cidr6.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] 'ZZZ' isn't a valid network mask. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_no_slash.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_no_slash.phpt
new file mode 100644
index 0000000..c6c8231
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_no_slash.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration, invalid cidr for ipv6 because there is no `/` in it
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_cidr6_no_slash.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] '2001:0db8:0000:0000:0000:ff00:0042:8329' isn't a valid network mask, it seems that you forgot a '/'. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_too_big.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_too_big.phpt
new file mode 100644
index 0000000..47d4a5d
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr6_too_big.phpt
@@ -0,0 +1,9 @@
1--TEST--
2Broken configuration, cidr for ipv6 is too big, that will `mod` to 25.
3(13337%128 = 25)
4--SKIPIF--
5<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_cidr6_too_big.ini
8--FILE--
9--EXPECT--
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_cidr_value.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr_value.phpt
new file mode 100644
index 0000000..dbe5414
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_cidr_value.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Broken configuration, invalid cidr value
3(13337%128 = 25)
4--SKIPIF--
5<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
6<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
7--INI--
8sp.configuration_file={PWD}/config/broken_conf_invalid_cidr_value.ini
9--FILE--
10--EXPECT--
11
12Fatal error: [snuffleupagus][0.0.0.0][error][log] A valid string as parameter is expected on line 1 in Unknown on line 0
13
14Fatal error: [snuffleupagus][0.0.0.0][config][log] " doesn't contain a valid cidr on line 1 in Unknown on line 0
15
16Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
17Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_filename.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_filename.phpt
new file mode 100644
index 0000000..cb78f85
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_filename.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration filename without absolute path
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_filename.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("sprintf").filename("wrong file name").drop();':'.filename' must be an absolute path or a phar archive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_log_media.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_log_media.phpt
new file mode 100644
index 0000000..68581b6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_log_media.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration filename with improper log media
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_log_media.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] .log_media() only supports 'syslog' or 'php', on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_invalid_type.phpt b/src/tests/broken_configuration_php8/broken_conf_invalid_type.phpt
new file mode 100644
index 0000000..188d610
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_invalid_type.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken conf with wrong type
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_invalid_type.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] There is an issue with the parsing of '"totally_wrong"_type")': it doesn't look like a valid string on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_key_value.phpt b/src/tests/broken_configuration_php8/broken_conf_key_value.phpt
new file mode 100644
index 0000000..1b51bd7
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_key_value.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_key_value.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").var("").value("").key("").drop();':`key` and `value` are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_line_empty_string.phpt b/src/tests/broken_configuration_php8/broken_conf_line_empty_string.phpt
new file mode 100644
index 0000000..2d370ac
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_line_empty_string.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Configuration line with an empty string
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_line_empty_string.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] A valid string as parameter is expected on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_line_no_closing.phpt b/src/tests/broken_configuration_php8/broken_conf_line_no_closing.phpt
new file mode 100644
index 0000000..d3c826f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_line_no_closing.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Configuration line without closing parenthese
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_line_no_closing.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] There is an issue with the parsing of '"123"': it doesn't look like a valid string on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_1.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_1.phpt
new file mode 100644
index 0000000..52cd962
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_1.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_1.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `]` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value ']' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_10.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_10.phpt
new file mode 100644
index 0000000..7817a19
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_10.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_10.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `]` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'asd[asd]asd' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_11.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_11.phpt
new file mode 100644
index 0000000..06099a5
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_11.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_11.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `::` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'asd::' for `param` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_12.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_12.phpt
new file mode 100644
index 0000000..df753df
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_12.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_12.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Empty value in `var` on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_13.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_13.phpt
new file mode 100644
index 0000000..80bc068
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_13.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_13.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `->` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'asd->asd' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_14.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_14.phpt
new file mode 100644
index 0000000..749c317
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_14.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_14.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid var name: $i+valid var name . in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '$i+valid var name ' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_15.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_15.phpt
new file mode 100644
index 0000000..97eab54
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_15.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_15.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid var name: $i$$!@#. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '$i$$!@#->qwe' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_16.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_16.phpt
new file mode 100644
index 0000000..c643144
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_16.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_16.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Missing a closing quote. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '"' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_2.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_2.phpt
new file mode 100644
index 0000000..8b769af
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_2.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_2.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `"` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '""asd' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_3.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_3.phpt
new file mode 100644
index 0000000..850a977
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_3.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_3.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `->` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '$qwe->::' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_4.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_4.phpt
new file mode 100644
index 0000000..5146590
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_4.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_4.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `"` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '"asd"asd[]' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_5.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_5.phpt
new file mode 100644
index 0000000..a7f8183
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_5.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_5.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `'` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value ''asd'asd[]' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_6.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_6.phpt
new file mode 100644
index 0000000..283cb41
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_6.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_6.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `'` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '''asd' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_7.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_7.phpt
new file mode 100644
index 0000000..223e599
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_7.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_7.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `->` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'asd-->' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_8.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_8.phpt
new file mode 100644
index 0000000..058b5dd
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_8.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_8.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `]` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'asd[asd]"asd"' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_local_var_9.phpt b/src/tests/broken_configuration_php8/broken_conf_local_var_9.phpt
new file mode 100644
index 0000000..c1eeae6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_local_var_9.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_local_var_9.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `]` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'asd[asd]'asd'' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_lots_of_quotes.phpt b/src/tests/broken_configuration_php8/broken_conf_lots_of_quotes.phpt
new file mode 100644
index 0000000..e599e62
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_lots_of_quotes.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Configuration line with too many quotes
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_lots_of_quotes.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] There is an issue with the parsing of '"this\"is a weird\"\"\"cookie\"name"");': it doesn't look like a valid string on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_missing_script.phpt b/src/tests/broken_configuration_php8/broken_conf_missing_script.phpt
new file mode 100644
index 0000000..2ddb70f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_missing_script.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Invalid configuration file for upload
3--SKIPIF--
4<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
5--INI--
6file_uploads=1
7sp.configuration_file={PWD}/config/broken_conf_missing_script.ini
8--FILE--
9<?php
10echo 1;
11?>
12--EXPECTF--
13
14Fatal error: [snuffleupagus][0.0.0.0][config][log] The `script` directive is mandatory in '.enable();' on line 1 in Unknown on line 0
15
16Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
17Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive.phpt
new file mode 100644
index 0000000..800cffa
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").param("id").value("42").value_r("^id$").drop();': '.r_value' and '.value' are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive10.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive10.phpt
new file mode 100644
index 0000000..c863bf9
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive10.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - enabled/disabled readonly
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive10.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive11.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive11.phpt
new file mode 100644
index 0000000..6bdb959
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive11.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - ret and var are mutually exclusives
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive11.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("strcmp").drop().ret("hip").var("hop");':`ret` and `var` are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive12.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive12.phpt
new file mode 100644
index 0000000..1855fca
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive12.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - ret and value are mutually exclusive
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive12.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("strcmp").drop().ret("hip").value("hop");':`ret` and `value` are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive2.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive2.phpt
new file mode 100644
index 0000000..286ea04
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive2.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive2.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").function_r("system").param("id").value("42").drop();': '.r_function' and '.function' are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive3.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive3.phpt
new file mode 100644
index 0000000..b377179
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive3.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive3.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").param("id").value("42").filename_r("^id$").filename("pouet.txt").drop();': '.r_filename' and '.filename' are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive4.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive4.phpt
new file mode 100644
index 0000000..5f22a47
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive4.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive4.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").param("id").value("42").param_r("^id$").drop();':'.r_param', '.param' and '.pos' are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive5.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive5.phpt
new file mode 100644
index 0000000..55d0eda
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive5.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive5.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").ret("0").drop().ret_r("^0$");': '.r_ret' and '.ret' are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive6.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive6.phpt
new file mode 100644
index 0000000..7dc6985
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive6.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive6.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").param("id").value("42").ret_r("^0$").drop();':`ret` and `param` are mutually exclusive on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive7.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive7.phpt
new file mode 100644
index 0000000..ff7f415
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive7.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive7.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.function("system").ret("0").drop().allow();': The rule must either be a `drop` or `allow` one on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive8.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive8.phpt
new file mode 100644
index 0000000..6ccd508
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive8.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive8.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration line: 'sp.disabled_functions.ret("0").drop();': must take a function name on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive9.phpt b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive9.phpt
new file mode 100644
index 0000000..e4a2d6f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_mutually_exclusive9.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - enabled/disabled unserialize
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_mutually_exclusive9.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_no_cookie_action.phpt b/src/tests/broken_configuration_php8/broken_conf_no_cookie_action.phpt
new file mode 100644
index 0000000..5fb3f0b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_no_cookie_action.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Bad config, invalid action.
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_cookie_action.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You must specify a at least one action to a cookie on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_no_cookie_name.phpt b/src/tests/broken_configuration_php8/broken_conf_no_cookie_name.phpt
new file mode 100644
index 0000000..1b2922b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_no_cookie_name.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - encrypted cookie with no name
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/config_encrypted_cookies_noname.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You must specify a cookie name/regexp on line 2 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_no_file_specified.phpt b/src/tests/broken_configuration_php8/broken_conf_no_file_specified.phpt
new file mode 100644
index 0000000..cb2d95f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_no_file_specified.phpt
@@ -0,0 +1,10 @@
1--TEST--
2Broken configuration - No configuration file specified
3--INI--
4--SKIPIF--
5<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
6--FILE--
7<?php echo "1\n"; ?>
8--EXPECT--
9Warning: [snuffleupagus][0.0.0.0][config][log] No configuration specificed via sp.configuration_file in Unknown on line 0
101
diff --git a/src/tests/broken_configuration_php8/broken_conf_nonexisting_script.phpt b/src/tests/broken_configuration_php8/broken_conf_nonexisting_script.phpt
new file mode 100644
index 0000000..21717a8
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_nonexisting_script.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Invalid configuration file for upload
3--SKIPIF--
4<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
5--INI--
6file_uploads=1
7sp.configuration_file={PWD}/config/broken_conf_nonexisting_script.ini
8--FILE--
9<?php
10echo 1;
11?>
12--EXPECTF--
13
14Fatal error: [snuffleupagus][0.0.0.0][config][log] The `script` (./non_existing_script.sh) doesn't exist on line 1 in Unknown on line 0
15
16Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
17Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_quotes.phpt b/src/tests/broken_configuration_php8/broken_conf_quotes.phpt
new file mode 100644
index 0000000..d437669
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_quotes.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration - missing quote
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_quotes.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You forgot to close a bracket. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value '_SERVER[PHP_SELF' for `var` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_readonly_exec.phpt b/src/tests/broken_configuration_php8/broken_conf_readonly_exec.phpt
new file mode 100644
index 0000000..7e74683
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_readonly_exec.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Invalid configuration file for readonly_exec
3--SKIPIF--
4<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
5--INI--
6file_uploads=1
7sp.configuration_file={PWD}/config/broken_conf_readonly_exec.ini
8--FILE--
9<?php
10echo 1;
11?>
12--EXPECTF--
13
14Fatal error: [snuffleupagus][0.0.0.0][config][log] Trailing chars '234);' at the end of '.enable(1234);' on line 1 in Unknown on line 0
15
16Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
17Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_samesite.phpt b/src/tests/broken_configuration_php8/broken_conf_samesite.phpt
new file mode 100644
index 0000000..c905fd8
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_samesite.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Bad config, invalid samesite type.
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_cookie_samesite.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] nop is an invalid value to samesite (expected Lax or Strict) on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_session_encryption.phpt b/src/tests/broken_configuration_php8/broken_conf_session_encryption.phpt
new file mode 100644
index 0000000..886eb13
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_session_encryption.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken config, session encryption
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_session_encryption.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Trailing chars 'nvalid value :/);' at the end of '.encrypt(invalid value :/);' on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_session_encryption_without_encryption_key.phpt b/src/tests/broken_configuration_php8/broken_conf_session_encryption_without_encryption_key.phpt
new file mode 100644
index 0000000..046dc7d
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_session_encryption_without_encryption_key.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - encrypted session without encryption key
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_session_encryption_without_encryption_key.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You're trying to use the session cookie encryption feature on line 2 without having set the `.secret_key` option in`sp.global`: please set it first in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_session_encryption_without_env_var.phpt b/src/tests/broken_configuration_php8/broken_conf_session_encryption_without_env_var.phpt
new file mode 100644
index 0000000..bb0f212
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_session_encryption_without_env_var.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken configuration - encrypted session without env var
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_session_encryption_without_env_var.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] You're trying to use the session cookie encryption feature on line 2 without having set the `.cookie_env_var` option in`sp.global`: please set it first in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_shown_in_phpinfo.phpt b/src/tests/broken_configuration_php8/broken_conf_shown_in_phpinfo.phpt
new file mode 100644
index 0000000..2503943
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_shown_in_phpinfo.phpt
@@ -0,0 +1,27 @@
1--TEST--
2Broken configuration
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_config_regexp.ini
8--FILE--
9<?php
10ob_start();
11phpinfo();
12$info = ob_get_clean();
13ob_get_clean();
14if (strstr($info, 'Valid config => no') !== FALSE) {
15 echo "win";
16} else {
17 echo "lose";
18}
19?>
20--EXPECTF--
21
22Fatal error: [snuffleupagus][0.0.0.0][config][log] Failed to compile '*.': %s on line 1. in Unknown on line 0
23
24Fatal error: [snuffleupagus][0.0.0.0][config][log] '.filename_r()' is expecting a valid regexp, and not '"*."' on line 1 in Unknown on line 0
25
26Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
27Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_truncated.phpt b/src/tests/broken_configuration_php8/broken_conf_truncated.phpt
new file mode 100644
index 0000000..059dcac
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_truncated.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Bad boolean value in configuration
3--SKIPIF--
4<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
5<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/config_broken_conf_truncated.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] A valid string as parameter is expected on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_unserialize.phpt b/src/tests/broken_configuration_php8/broken_conf_unserialize.phpt
new file mode 100644
index 0000000..327b622
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_unserialize.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Invalid configuration file for unserialize
3--SKIPIF--
4<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
5--INI--
6file_uploads=1
7sp.configuration_file={PWD}/config/broken_conf_unserialize.ini
8--FILE--
9<?php
10echo 1;
11?>
12--EXPECTF--
13
14Fatal error: [snuffleupagus][0.0.0.0][config][log] Trailing chars '234);' at the end of '.enable(1234);' on line 1 in Unknown on line 0
15
16Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
17Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_upload_validation.phpt b/src/tests/broken_configuration_php8/broken_conf_upload_validation.phpt
new file mode 100644
index 0000000..9edede6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_upload_validation.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Invalid configuration file for upload validation
3--SKIPIF--
4<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
5--INI--
6file_uploads=1
7sp.configuration_file={PWD}/config/borken_conf_upload_validation.ini
8--FILE--
9<?php
10echo 1;
11?>
12--EXPECTF--
13
14Fatal error: [snuffleupagus][0.0.0.0][error][log] A valid string as parameter is expected on line 1 in Unknown on line 0
15
16Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
17Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_weird_keyword.phpt b/src/tests/broken_configuration_php8/broken_conf_weird_keyword.phpt
new file mode 100644
index 0000000..75c2e0e
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_weird_keyword.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Bad config, unknown keyword
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_weird_keyword.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Trailing chars '.not_a_valid_keyword("test");' at the end of '.enable().not_a_valid_keyword("test");' on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_wrapper_whitelist.phpt b/src/tests/broken_configuration_php8/broken_conf_wrapper_whitelist.phpt
new file mode 100644
index 0000000..0011a6e
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_wrapper_whitelist.phpt
@@ -0,0 +1,18 @@
1--TEST--
2Broken configuration with invalid token for wrapper whitelist
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_wrapper_whitelist.ini
8sp.allow_broken_configuration=Off
9--FILE--
10<?php
11echo 1337;
12?>
13--EXPECT--
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Trailing chars '.invalid_param();' at the end of '.invalid_param();' on line 1 in Unknown on line 0
16
17Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
18Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_wrong_quotes.phpt b/src/tests/broken_configuration_php8/broken_conf_wrong_quotes.phpt
new file mode 100644
index 0000000..b073369
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_wrong_quotes.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Configuration line with too many quotes
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_wrong_quotes.ini
8--FILE--
9--EXPECT--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] There is an issue with the parsing of '"\)': it doesn't look like a valid string on line 1 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_conf_wrong_type.phpt b/src/tests/broken_configuration_php8/broken_conf_wrong_type.phpt
new file mode 100644
index 0000000..1f1cead
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_wrong_type.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Broken conf with wrong type
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_conf_wrong_type.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][error][log] .ret_type() is expecting a valid php type ('false', 'true', 'array'. 'object', 'long', 'double', 'null', 'resource', 'reference', 'undef') on line 5 in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
14Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_invalid_client_ip4.phpt b/src/tests/broken_configuration_php8/broken_invalid_client_ip4.phpt
new file mode 100644
index 0000000..a96b059
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_invalid_client_ip4.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Invalid client IP
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--ENV--
6return <<<EOF
7REMOTE_ADDR=xyz
8EOF;
9--INI--
10sp.configuration_file={PWD}/config/disabled_functions_cidr.ini
11--FILE--
12<?php
13strpos("1337", "1");
14?>
15--EXPECTF--
16Fatal error: [snuffleupagus][xyz][cidr_match][log] Weird ip (xyz) family in %a/broken_invalid_client_ip4.php on line 2 \ No newline at end of file
diff --git a/src/tests/broken_configuration_php8/broken_regexp.phpt b/src/tests/broken_configuration_php8/broken_regexp.phpt
new file mode 100644
index 0000000..877f801
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_regexp.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken regexp
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/broken_regexp.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Failed to compile '^$[': missing terminating ] for character class on line 1. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] '.value_r()' is expecting a valid regexp, and not '"^$["' on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/broken_unmatching_brackets.phpt b/src/tests/broken_configuration_php8/broken_unmatching_brackets.phpt
new file mode 100644
index 0000000..d143cbd
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_unmatching_brackets.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Broken configuration - unmatching brackets
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5<?php if (PHP_VERSION_ID < 80000) print "skip"; ?>
6--INI--
7sp.configuration_file={PWD}/config/config_unmatching_brackets.ini
8--FILE--
9--EXPECTF--
10
11Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid `]` position. in Unknown on line 0
12
13Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid value 'arr[b]]]]]' for `param` on line 1 in Unknown on line 0
14
15Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
16Could not startup.
diff --git a/src/tests/broken_configuration_php8/config/borken_conf_enable_disable.ini b/src/tests/broken_configuration_php8/config/borken_conf_enable_disable.ini
new file mode 100644
index 0000000..4e95294
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/borken_conf_enable_disable.ini
@@ -0,0 +1 @@
sp.global_strict.disable().enable();
diff --git a/src/tests/broken_configuration_php8/config/borken_conf_upload_validation.ini b/src/tests/broken_configuration_php8/config/borken_conf_upload_validation.ini
new file mode 100644
index 0000000..7c94185
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/borken_conf_upload_validation.ini
@@ -0,0 +1 @@
sp.upload_validation.script(
diff --git a/src/tests/broken_configuration_php8/config/broken_conf.ini b/src/tests/broken_configuration_php8/config/broken_conf.ini
new file mode 100644
index 0000000..0595320
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf.ini
@@ -0,0 +1 @@
this is a broken line
diff --git a/src/tests/broken_configuration_php8/config/broken_conf2.ini b/src/tests/broken_configuration_php8/config/broken_conf2.ini
new file mode 100644
index 0000000..fdb6b8f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf2.ini
@@ -0,0 +1 @@
sp.wrong
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_cookie_action.ini b/src/tests/broken_configuration_php8/config/broken_conf_cookie_action.ini
new file mode 100644
index 0000000..5f07c28
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_cookie_action.ini
@@ -0,0 +1 @@
sp.cookie.name("my_cookie_name");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_encryption_key.ini b/src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_encryption_key.ini
new file mode 100644
index 0000000..a100bd8
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_encryption_key.ini
@@ -0,0 +1,2 @@
1sp.global.cookie_env_var("MY_SUPER_ENV_VAR_YAY");
2sp.cookie.name("my_cookie_name").encrypt();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_env_var.ini b/src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_env_var.ini
new file mode 100644
index 0000000..54cb101
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_cookie_encryption_without_env_var.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("super secret encryption key");
2sp.cookie.name("my_cookie_name").encrypt();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_cookie_name_and_regexp.ini b/src/tests/broken_configuration_php8/config/broken_conf_cookie_name_and_regexp.ini
new file mode 100644
index 0000000..503889b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_cookie_name_and_regexp.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef").cookie_env_var("REMOTE_ADDR");
2sp.cookie.name("my_cookie_name").name_r("my_cookie_regexp").encrypt();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_cookie_samesite.ini b/src/tests/broken_configuration_php8/config/broken_conf_cookie_samesite.ini
new file mode 100644
index 0000000..acc4aa0
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_cookie_samesite.ini
@@ -0,0 +1 @@
sp.cookie.name("my_cookie_name").samesite("nop");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_eval.ini b/src/tests/broken_configuration_php8/config/broken_conf_eval.ini
new file mode 100644
index 0000000..80ef7e5
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_eval.ini
@@ -0,0 +1 @@
sp.eval_blacklist.list("cos,sin
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_expecting_bool.ini b/src/tests/broken_configuration_php8/config/broken_conf_expecting_bool.ini
new file mode 100644
index 0000000..51c28b2
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_expecting_bool.ini
@@ -0,0 +1,5 @@
1 # this is an example of broken conf
2
3
4 ; this is another comment
5sp.harden_random.enable(1337);
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr.ini
new file mode 100644
index 0000000..b1929c1
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").drop().cidr("127.0.0.1/42");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6.ini
new file mode 100644
index 0000000..5e91faf
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/ZZZ");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_no_slash.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_no_slash.ini
new file mode 100644
index 0000000..067209f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_no_slash.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_too_big.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_too_big.ini
new file mode 100644
index 0000000..f82b18b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr6_too_big.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").drop().cidr("2001:0db8:0000:0000:0000:ff00:0042:8329/13337");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr_value.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr_value.ini
new file mode 100644
index 0000000..06a56bd
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_cidr_value.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").drop().cidr("
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_filename.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_filename.ini
new file mode 100644
index 0000000..1be3b51
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_filename.ini
@@ -0,0 +1 @@
sp.disable_function.function("sprintf").filename("wrong file name").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_log_media.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_log_media.ini
new file mode 100644
index 0000000..9e7cea0
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_log_media.ini
@@ -0,0 +1 @@
sp.log_media("pouet");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_invalid_type.ini b/src/tests/broken_configuration_php8/config/broken_conf_invalid_type.ini
new file mode 100644
index 0000000..c52994e
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_invalid_type.ini
@@ -0,0 +1 @@
sp.disable_function.function("strpos").ret_type("totally_wrong"_type")
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_key_value.ini b/src/tests/broken_configuration_php8/config/broken_conf_key_value.ini
new file mode 100644
index 0000000..a0edaf2
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_key_value.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("").value("").key("").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_line_empty_string.ini b/src/tests/broken_configuration_php8/config/broken_conf_line_empty_string.ini
new file mode 100644
index 0000000..dfa5520
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_line_empty_string.ini
@@ -0,0 +1 @@
sp.cookie.name(
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_line_no_closing.ini b/src/tests/broken_configuration_php8/config/broken_conf_line_no_closing.ini
new file mode 100644
index 0000000..6a8c922
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_line_no_closing.ini
@@ -0,0 +1 @@
sp.cookie.name("123"
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_1.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_1.ini
new file mode 100644
index 0000000..ae5165c
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_1.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("]").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_10.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_10.ini
new file mode 100644
index 0000000..93dd07f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_10.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("asd[asd]asd").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_11.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_11.ini
new file mode 100644
index 0000000..028b1bd
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_11.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").param("asd::").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_12.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_12.ini
new file mode 100644
index 0000000..a151960
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_12.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_13.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_13.ini
new file mode 100644
index 0000000..e7c9778
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_13.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("asd->asd").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_14.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_14.ini
new file mode 100644
index 0000000..6c98ec3
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_14.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("$i+valid var name ").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_15.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_15.ini
new file mode 100644
index 0000000..a8dc5a4
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_15.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("$i$$!@#->qwe").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_16.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_16.ini
new file mode 100644
index 0000000..550719b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_16.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("\"").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_2.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_2.ini
new file mode 100644
index 0000000..145a3b5
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_2.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("\"\"asd").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_3.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_3.ini
new file mode 100644
index 0000000..5d89076
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_3.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("\$qwe->::").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_4.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_4.ini
new file mode 100644
index 0000000..3ec073b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_4.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("\"asd\"asd[]").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_5.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_5.ini
new file mode 100644
index 0000000..cd350b6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_5.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("'asd'asd[]").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_6.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_6.ini
new file mode 100644
index 0000000..02f4f1a
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_6.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("''asd").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_7.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_7.ini
new file mode 100644
index 0000000..abbd223
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_7.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("asd-->").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_8.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_8.ini
new file mode 100644
index 0000000..fd18487
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_8.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("asd[asd]\"asd\"").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_local_var_9.ini b/src/tests/broken_configuration_php8/config/broken_conf_local_var_9.ini
new file mode 100644
index 0000000..a311b86
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_local_var_9.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").var("asd[asd]\'asd\'").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_lots_of_quotes.ini b/src/tests/broken_configuration_php8/config/broken_conf_lots_of_quotes.ini
new file mode 100644
index 0000000..189a10d
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_lots_of_quotes.ini
@@ -0,0 +1 @@
sp.cookie.name("this\"is a weird\"\"\"cookie\"name"");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_missing_script.ini b/src/tests/broken_configuration_php8/config/broken_conf_missing_script.ini
new file mode 100644
index 0000000..a46f590
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_missing_script.ini
@@ -0,0 +1 @@
sp.upload_validation.enable();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive.ini
new file mode 100644
index 0000000..7ea483f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").param("id").value("42").value_r("^id$").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive10.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive10.ini
new file mode 100644
index 0000000..da8426e
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive10.ini
@@ -0,0 +1 @@
sp.readonly_exec.enable().disable();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive11.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive11.ini
new file mode 100644
index 0000000..cab163f
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive11.ini
@@ -0,0 +1 @@
sp.disable_function.function("strcmp").drop().ret("hip").var("hop");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive12.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive12.ini
new file mode 100644
index 0000000..fe140db
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive12.ini
@@ -0,0 +1 @@
sp.disable_function.function("strcmp").drop().ret("hip").value("hop");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive2.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive2.ini
new file mode 100644
index 0000000..3ff3ca7
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive2.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").function_r("system").param("id").value("42").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive3.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive3.ini
new file mode 100644
index 0000000..f4f7604
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive3.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").param("id").value("42").filename_r("^id$").filename("pouet.txt").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive4.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive4.ini
new file mode 100644
index 0000000..c38a727
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive4.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").param("id").value("42").param_r("^id$").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive5.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive5.ini
new file mode 100644
index 0000000..254b2a3
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive5.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").ret("0").drop().ret_r("^0$");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive6.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive6.ini
new file mode 100644
index 0000000..7c6712c
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive6.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").param("id").value("42").ret_r("^0$").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive7.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive7.ini
new file mode 100644
index 0000000..feb3486
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive7.ini
@@ -0,0 +1 @@
sp.disable_function.function("system").ret("0").drop().allow();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive8.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive8.ini
new file mode 100644
index 0000000..c9c9ea2
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive8.ini
@@ -0,0 +1 @@
sp.disable_function.ret("0").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive9.ini b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive9.ini
new file mode 100644
index 0000000..7bf6a62
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_mutually_exclusive9.ini
@@ -0,0 +1 @@
sp.unserialize_hmac.enable().disable();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_nonexisting_script.ini b/src/tests/broken_configuration_php8/config/broken_conf_nonexisting_script.ini
new file mode 100644
index 0000000..8327438
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_nonexisting_script.ini
@@ -0,0 +1 @@
sp.upload_validation.enable().script("./non_existing_script.sh");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_quotes.ini b/src/tests/broken_configuration_php8/config/broken_conf_quotes.ini
new file mode 100644
index 0000000..eac8739
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_quotes.ini
@@ -0,0 +1,3 @@
1sp.disable_function.function("system").filename("/static_pages/index.php").var("_SERVER[PHP_SELF").value_r("\"").drop().alias("XSS");
2sp.disable_function.filename("include/imageobject_im.class.php").function("exec").var("CONFIG[im_options]).value_r("[^a-z0-9]").drop();
3
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_readonly_exec.ini b/src/tests/broken_configuration_php8/config/broken_conf_readonly_exec.ini
new file mode 100644
index 0000000..9e11313
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_readonly_exec.ini
@@ -0,0 +1 @@
sp.readonly_exec.enable(1234);
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_session_encryption.ini b/src/tests/broken_configuration_php8/config/broken_conf_session_encryption.ini
new file mode 100644
index 0000000..66b7956
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_session_encryption.ini
@@ -0,0 +1 @@
sp.session.encrypt(invalid value :/);
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_encryption_key.ini b/src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_encryption_key.ini
new file mode 100644
index 0000000..2b6f674
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_encryption_key.ini
@@ -0,0 +1,2 @@
1sp.global.cookie_env_var("MY_SUPER_ENV_VAR_YAY");
2sp.session.encrypt();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_env_var.ini b/src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_env_var.ini
new file mode 100644
index 0000000..43caf4a
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_session_encryption_without_env_var.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("super secret key, shhhh");
2sp.session.encrypt();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_to_few_args.ini b/src/tests/broken_configuration_php8/config/broken_conf_to_few_args.ini
new file mode 100644
index 0000000..89e19be
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_to_few_args.ini
@@ -0,0 +1 @@
sp.harden_random.enable();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_unserialize.ini b/src/tests/broken_configuration_php8/config/broken_conf_unserialize.ini
new file mode 100644
index 0000000..9cdc9a6
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_unserialize.ini
@@ -0,0 +1 @@
sp.unserialize_hmac.enable(1234);
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_weird_keyword.ini b/src/tests/broken_configuration_php8/config/broken_conf_weird_keyword.ini
new file mode 100644
index 0000000..bf5e7f5
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_weird_keyword.ini
@@ -0,0 +1 @@
sp.harden_random.enable().not_a_valid_keyword("test");
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_wrapper_whitelist.ini b/src/tests/broken_configuration_php8/config/broken_conf_wrapper_whitelist.ini
new file mode 100644
index 0000000..b8e08a8
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_wrapper_whitelist.ini
@@ -0,0 +1 @@
sp.wrappers_whitelist.invalid_param();
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_wrong_quotes.ini b/src/tests/broken_configuration_php8/config/broken_conf_wrong_quotes.ini
new file mode 100644
index 0000000..ff41f93
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_wrong_quotes.ini
@@ -0,0 +1 @@
sp.cookie.name("\)
diff --git a/src/tests/broken_configuration_php8/config/broken_conf_wrong_type.ini b/src/tests/broken_configuration_php8/config/broken_conf_wrong_type.ini
new file mode 100644
index 0000000..b2943db
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_conf_wrong_type.ini
@@ -0,0 +1,5 @@
1sp.disable_function.function("strpos").ret_type("undef").drop().alias("Return value is undef");
2sp.disable_function.function("strpos").ret_type("null").drop().alias("Return value is null");
3sp.disable_function.function("strpos").ret_type("object").drop().alias("Return value is object");
4sp.disable_function.function("strpos").ret_type("reference").drop().alias("Return value is reference");
5sp.disable_function.function("strpos").ret_type("totally_wrong_type").drop().alias("Return value is FALSE");
diff --git a/src/tests/broken_configuration_php8/config/broken_config_regexp.ini b/src/tests/broken_configuration_php8/config/broken_config_regexp.ini
new file mode 100644
index 0000000..62bed11
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_config_regexp.ini
@@ -0,0 +1 @@
sp.disable_function.function_r("^system$").filename_r("*.").drop();
diff --git a/src/tests/broken_configuration_php8/config/broken_config_regexp_no_closing_paren.ini b/src/tests/broken_configuration_php8/config/broken_config_regexp_no_closing_paren.ini
new file mode 100644
index 0000000..93e150b
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_config_regexp_no_closing_paren.ini
@@ -0,0 +1 @@
sp.disable_function.function_r("^system$").drop().filename_r("*."
diff --git a/src/tests/broken_configuration_php8/config/broken_regexp.ini b/src/tests/broken_configuration_php8/config/broken_regexp.ini
new file mode 100644
index 0000000..8e4bf69
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/broken_regexp.ini
@@ -0,0 +1 @@
sp.disable_function.function("AwesomeClass::method3").param("a").drop().value_r("^$[");
diff --git a/src/tests/broken_configuration_php8/config/config_broken_conf_truncated.ini b/src/tests/broken_configuration_php8/config/config_broken_conf_truncated.ini
new file mode 100644
index 0000000..bf05dfb
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/config_broken_conf_truncated.ini
@@ -0,0 +1 @@
sp.disable_function.function("").param(no quote, omg!
diff --git a/src/tests/broken_configuration_php8/config/config_encrypted_cookies_noname.ini b/src/tests/broken_configuration_php8/config/config_encrypted_cookies_noname.ini
new file mode 100644
index 0000000..048e404
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/config_encrypted_cookies_noname.ini
@@ -0,0 +1,3 @@
1sp.global.secret_key("abcdef").cookie_env_var("REMOTE_ADDR");
2sp.cookie.name("").encrypt();
3sp.auto_cookie_secure.enable();
diff --git a/src/tests/broken_configuration_php8/config/config_encrypted_regexp_cookies_bad_regexp.ini b/src/tests/broken_configuration_php8/config/config_encrypted_regexp_cookies_bad_regexp.ini
new file mode 100644
index 0000000..4fe92fd
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/config_encrypted_regexp_cookies_bad_regexp.ini
@@ -0,0 +1,3 @@
1sp.global.secret_key("abcdef").cookie_env_var("REMOTE_ADDR");
2sp.cookie.name_r("^super_co[a-z+$").encrypt();
3sp.auto_cookie_secure.enable();
diff --git a/src/tests/broken_configuration_php8/config/config_unmatching_brackets.ini b/src/tests/broken_configuration_php8/config/config_unmatching_brackets.ini
new file mode 100644
index 0000000..45fa4fe
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/config_unmatching_brackets.ini
@@ -0,0 +1 @@
sp.disable_function.function("foo").param("arr[b]]]]]").value("aaa").alias("4").drop();
diff --git a/src/tests/broken_configuration_php8/config/disabled_functions_cidr.ini b/src/tests/broken_configuration_php8/config/disabled_functions_cidr.ini
new file mode 100644
index 0000000..f69ce07
--- /dev/null
+++ b/src/tests/broken_configuration_php8/config/disabled_functions_cidr.ini
@@ -0,0 +1,9 @@
1sp.disable_function.function("system").drop().cidr("2001:ab9:a::123/64");
2sp.disable_function.function("system").drop().cidr("192.168.0.1/16");
3sp.disable_function.function("system").drop().cidr("127.0.0.1/8");
4sp.disable_function.function("printf").drop().cidr("10.0.0.1/8");
5sp.disable_function.function("strpos").drop().cidr("127.0.0.2/4");
6sp.disable_function.function("strpos").drop().cidr("::ffff:192.0.2.128/128");
7sp.disable_function.function("strpos").drop().cidr("2001:ab9:a::123/64");
8sp.disable_function.function("strpos").drop().cidr("2001:0db8:f000:f000:f000:ff00:0042:8329/124");
9sp.disable_function.function("printf").drop().cidr("2002:0db8:0000:0000:0000:ff00:0042:8329/24");
diff --git a/src/tests/broken_configuration_php8/encrypt_regexp_cookies_bad_regexp.phpt b/src/tests/broken_configuration_php8/encrypt_regexp_cookies_bad_regexp.phpt
new file mode 100644
index 0000000..7a8c909
--- /dev/null
+++ b/src/tests/broken_configuration_php8/encrypt_regexp_cookies_bad_regexp.phpt
@@ -0,0 +1,22 @@
1--TEST--
2Cookie decryption in ipv4
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_encrypted_regexp_cookies_bad_regexp.ini
7error_reporting=1
8--COOKIE--
9super_cookie=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP3gV9YJZL/pUeNAjCKFW0U2ywmf1CwHzwd2pWM=;awful_cookie=awful_cookie_value;
10--ENV--
11return <<<EOF
12REMOTE_ADDR=127.0.0.1
13HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36
14EOF;
15--FILE--
16<?php var_dump($_COOKIE); ?>
17--EXPECT--
18Fatal error: [snuffleupagus][127.0.0.1][config][log] Invalid configuration file in Unknown on line 0
19
20Fatal error: [snuffleupagus][127.0.0.1][config][log] Failed to compile '^super_co[a-z+$': missing terminating ] for character class on line 2. in Unknown on line 0
21
22Fatal error: [snuffleupagus][127.0.0.1][config][log] '.name_r()' is expecting a valid regexp, and not '"^super_co[a-z+$"' on line 2 in Unknown on line 0