diff options
author | Max Siling <root@goldstein.rs> | 2024-07-17 21:50:59 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@localhost> | 2024-07-17 21:50:59 +0000 |
commit | 68567206f244f26f4830030c172d63c3dc9a13a1 (patch) | |
tree | f20bc33a4ed34d9724c9962d91e1320a98cb8b1c /tests | |
parent | ef0de7c79f3b32f66db447220d26eae7e7c07b19 (diff) | |
parent | 3a36c8bb9004a259bb29e8b86d3217002b9a53ea (diff) |
Merge "tests/functional/repl.sh: actually fail test on wrong stdout" into main
Diffstat (limited to 'tests')
-rw-r--r-- | tests/functional/repl.sh | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/tests/functional/repl.sh b/tests/functional/repl.sh index 3765fb492..cd56b4d92 100644 --- a/tests/functional/repl.sh +++ b/tests/functional/repl.sh @@ -62,21 +62,31 @@ stripColors () { testReplResponseGeneral () { local grepMode="$1"; shift local commands="$1"; shift - local expectedResponse="$1"; shift - local response="$(nix repl "$@" <<< "$commands" | stripColors)" - echo "$response" | grepQuiet "$grepMode" -s "$expectedResponse" \ - || fail "repl command set: + # Expected response can contain newlines. + # grep can't handle multiline patterns, so replace newlines with TEST_NEWLINE + # in both expectedResponse and response. + # awk ORS always adds a trailing record separator, so we strip it with sed. + local expectedResponse="$(printf '%s' "$1" | awk 1 ORS=TEST_NEWLINE | sed 's/TEST_NEWLINE$//')"; shift + # We don't need to strip trailing record separator here, since extra data is ok. + local response="$(nix repl "$@" <<< "$commands" 2>&1 | stripColors | awk 1 ORS=TEST_NEWLINE)" + printf '%s' "$response" | grepQuiet "$grepMode" -s "$expectedResponse" \ + || fail "$(echo "repl command set: $commands does not respond with: +--- $expectedResponse +--- but with: +--- $response -" +--- + +" | sed 's/TEST_NEWLINE/\n/g')" } testReplResponse () { @@ -179,7 +189,7 @@ testReplResponseNoRegex ' let x = { y = { a = 1; }; inherit x; }; in x ' \ '{ - x = { ... }; + x = «repeated»; y = { ... }; } ' @@ -231,6 +241,6 @@ testReplResponseNoRegex ' ' \ '{ x = «repeated»; - y = { a = 1 }; + y = { a = 1; }; } ' |