From ca51803abbe0b5605f936f5676d9c1a528713033 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 23 Oct 2017 23:40:06 +0200 Subject: Add a test for unmatched brackets --- src/sp_config_utils.c | 5 ++--- src/tests/broken_unmatching_brackets.phpt | 9 +++++++++ src/tests/config/config_unmatching_brackets.ini | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 src/tests/broken_unmatching_brackets.phpt create mode 100644 src/tests/config/config_unmatching_brackets.ini (limited to 'src') diff --git a/src/sp_config_utils.c b/src/sp_config_utils.c index f562ffd..62fb7c1 100644 --- a/src/sp_config_utils.c +++ b/src/sp_config_utils.c @@ -2,9 +2,7 @@ size_t sp_line_no; -static int validate_str(const char *value); - -static sp_pure int validate_str(const char *value) { +static int validate_str(const char *value) { int balance = 0; // ghetto [] validation if (!strchr(value, '[')) { @@ -18,6 +16,7 @@ static sp_pure int validate_str(const char *value) { balance--; } if (balance < 0) { + sp_log_err("config", "The string '%s' contains unbalanced brackets.", value); return -1; } } diff --git a/src/tests/broken_unmatching_brackets.phpt b/src/tests/broken_unmatching_brackets.phpt new file mode 100644 index 0000000..14b9414 --- /dev/null +++ b/src/tests/broken_unmatching_brackets.phpt @@ -0,0 +1,9 @@ +--TEST-- +Broken configuration - unmatching brackets +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/config_unmatching_brackets.ini +--FILE-- +--EXPECTF-- +[snuffleupagus][0.0.0.0][config][error] The string 'arr[b]]]]]' contains unbalanced brackets. diff --git a/src/tests/config/config_unmatching_brackets.ini b/src/tests/config/config_unmatching_brackets.ini new file mode 100644 index 0000000..45fa4fe --- /dev/null +++ b/src/tests/config/config_unmatching_brackets.ini @@ -0,0 +1 @@ +sp.disable_function.function("foo").param("arr[b]]]]]").value("aaa").alias("4").drop(); -- cgit v1.3