From 4f223793c0da55e2931e94236bc04faa1f70928f Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Mon, 14 Sep 2020 19:37:01 +0430 Subject: [PATCH] Shell: Add some tests for 'match' --- Shell/Tests/match.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Shell/Tests/match.sh diff --git a/Shell/Tests/match.sh b/Shell/Tests/match.sh new file mode 100644 index 0000000000..0b2640e9cc --- /dev/null +++ b/Shell/Tests/match.sh @@ -0,0 +1,53 @@ +#!/bin/Shell + +result=no +match hello { + he* { result=yes } + * { result=fail } +}; + +test "$result" = yes || echo invalid result $result for normal string match, single option && exit 1 + +result=no +match hello { + he* | f* { result=yes } + * { result=fail } +}; + +test "$result" = yes || echo invalid result $result for normal string match, multiple options && exit 1 + +result=no +match (well hello friends) { + (* *) { result=fail } + (* * *) { result=yes } + * { result=fail } +}; + +test "$result" = yes || echo invalid result $result for list match && exit 1 + +result=no +match yes as v { + () { result=fail } + (*) { result=yes } + * { result=$v } +}; + +test "$result" = yes || echo invalid result $result for match with name && exit 1 + +result=no +# $(...) is a list, $(echo) should be an empty list, not an empty string +match $(echo) { + * { result=fail } + () { result=yes } +}; + +test "$result" = yes || echo invalid result $result for list subst match && exit 1 + +result=no +# "$(...)" is a string, "$(echo)" should be an empty string, not an empty list +match "$(echo)" { + * { result=yes } + () { result=fail } +}; + +test "$result" = yes || echo invalid result $result for string subst match && exit 1