summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sp_config_keywords.c2
-rw-r--r--src/tests/broken_configuration/broken_conf_enable_disable2.phpt15
-rw-r--r--src/tests/broken_configuration/config/broken_conf_enable_disable2.ini2
-rw-r--r--src/tests/broken_configuration_php8/broken_conf_enable_disable2.phpt14
4 files changed, 32 insertions, 1 deletions
diff --git a/src/sp_config_keywords.c b/src/sp_config_keywords.c
index b627122..a177a5e 100644
--- a/src/sp_config_keywords.c
+++ b/src/sp_config_keywords.c
@@ -1,7 +1,7 @@
1#include "php_snuffleupagus.h" 1#include "php_snuffleupagus.h"
2 2
3#define SP_SET_ENABLE_DISABLE(enable, disable, varname) \ 3#define SP_SET_ENABLE_DISABLE(enable, disable, varname) \
4 if (enable && disable) { \ 4 if (((varname) || enable) && disable) { \
5 sp_log_err("config", "A rule can't be enabled and disabled on line %zu", sp_line_no); \ 5 sp_log_err("config", "A rule can't be enabled and disabled on line %zu", sp_line_no); \
6 return -1; \ 6 return -1; \
7 } \ 7 } \
diff --git a/src/tests/broken_configuration/broken_conf_enable_disable2.phpt b/src/tests/broken_configuration/broken_conf_enable_disable2.phpt
new file mode 100644
index 0000000..0d6fb8c
--- /dev/null
+++ b/src/tests/broken_configuration/broken_conf_enable_disable2.phpt
@@ -0,0 +1,15 @@
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}/../broken_configuration/config/broken_conf_enable_disable2.ini
8--FILE--
9--EXPECTF--
10PHP Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 2 in Unknown on line 0
11
12Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 2 in Unknown on line 0
13
14Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0
15Could not startup.
diff --git a/src/tests/broken_configuration/config/broken_conf_enable_disable2.ini b/src/tests/broken_configuration/config/broken_conf_enable_disable2.ini
new file mode 100644
index 0000000..39d97cc
--- /dev/null
+++ b/src/tests/broken_configuration/config/broken_conf_enable_disable2.ini
@@ -0,0 +1,2 @@
1sp.global_strict.enable();
2sp.global_strict.disable();
diff --git a/src/tests/broken_configuration_php8/broken_conf_enable_disable2.phpt b/src/tests/broken_configuration_php8/broken_conf_enable_disable2.phpt
new file mode 100644
index 0000000..efe5538
--- /dev/null
+++ b/src/tests/broken_configuration_php8/broken_conf_enable_disable2.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}/../broken_configuration/config/broken_conf_enable_disable2.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 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.