Duplicate a few of the existing test cases, using the [ spelling, and
also ensure that the presence of a matching ] as a separate and last
argument is enforced.

Signed-off-by: Rasmus Villemoes <[email protected]>
---
 test/hush/if.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/test/hush/if.c b/test/hush/if.c
index ea615b246a9..148e9a53e90 100644
--- a/test/hush/if.c
+++ b/test/hush/if.c
@@ -315,3 +315,34 @@ static int hush_test_if_z_operator(struct unit_test_state 
*uts)
        return 0;
 }
 HUSH_TEST(hush_test_if_z_operator, 0);
+
+static int hush_test_lbracket_alias(struct unit_test_state *uts)
+{
+       char if_formatted[128];
+       const char *missing_rbracket_error = "[: missing terminating ]";
+
+       sprintf(if_formatted, if_format, "[ aaa = aaa ]");
+       ut_assertok(run_command(if_formatted, 0));
+
+       sprintf(if_formatted, if_format, "[ aaa = bbb ]");
+       ut_asserteq(1, run_command(if_formatted, 0));
+
+       sprintf(if_formatted, if_format, "[ aaa = aaa");
+       ut_asserteq(1, run_command(if_formatted, 0));
+       ut_assert_nextline(missing_rbracket_error);
+
+       sprintf(if_formatted, if_format, "[ aaa = bbb");
+       ut_asserteq(1, run_command(if_formatted, 0));
+       ut_assert_nextline(missing_rbracket_error);
+
+       sprintf(if_formatted, if_format, "[ aaa = aaa]");
+       ut_asserteq(1, run_command(if_formatted, 0));
+       ut_assert_nextline(missing_rbracket_error);
+
+       sprintf(if_formatted, if_format, "[ aaa = bbb]");
+       ut_asserteq(1, run_command(if_formatted, 0));
+       ut_assert_nextline(missing_rbracket_error);
+
+       return 0;
+}
+HUSH_TEST(hush_test_lbracket_alias, UTF_CONSOLE);
-- 
2.53.0

Reply via email to