diff --git a/src/spec-node/featuresCLI/utils.ts b/src/spec-node/featuresCLI/utils.ts index d72cb1705..b1ee66cfb 100644 --- a/src/spec-node/featuresCLI/utils.ts +++ b/src/spec-node/featuresCLI/utils.ts @@ -57,35 +57,27 @@ export interface LaunchResult { // dev-container-features-test-lib export const testLibraryScript = ` -#!/bin/bash SCRIPT_FOLDER="$(cd "$(dirname $0)" && pwd)" USERNAME=\${1:-root} +export TERM=\${TERM:-dumb} if [ -z $HOME ]; then HOME="/root" fi -FAILED=() - -echoStderr() -{ - echo "$@" 1>&2 -} +FAILED="" check() { LABEL=$1 shift - echo -e "\n" - echo -e "šŸ”„ Testing '$LABEL'" - echo -e '\\033[37m' + printf "\nšŸ”„ Testing '%s'%s" "\${LABEL}" "$(tput setaf 7)" if "$@"; then - echo -e "\n" - echo "āœ… Passed '$LABEL'!" + printf "\nāœ… Passed '%s'!" "\${LABEL}" return 0 else - echo -e "\n" - echoStderr "āŒ $LABEL check failed." - FAILED+=("$LABEL") + printf "\n" + printf "āŒ %s check failed." "\${LABEL}" >&2 + FAILED="\${FAILED}\n\${LABEL}" return 1 fi } @@ -93,34 +85,31 @@ check() { checkMultiple() { PASSED=0 LABEL="$1" - echo -e "\n" - echo -e "šŸ”„ Testing '$LABEL'." + printf "\nšŸ”„ Testing '%s'." "\${LABEL}" shift; MINIMUMPASSED=$1 shift; EXPRESSION="$1" while [ "$EXPRESSION" != "" ]; do - if $EXPRESSION; then ((PASSED+=1)); fi + if $EXPRESSION; then PASSED=$((PASSED+1)); fi shift; EXPRESSION=$1 done if [ $PASSED -ge $MINIMUMPASSED ]; then - echo -e "\n" - echo "āœ… Passed!" + printf "\nāœ… Passed!" return 0 else - echo -e "\n" - echoStderr "āŒ '$LABEL' check failed." - FAILED+=("$LABEL") + printf "\n" + printf "āŒ '%s' check failed." "\${LABEL}" >&2 + FAILED="\${FAILED}\n\${LABEL}" return 1 fi } reportResults() { - if [ \${#FAILED[@]} -ne 0 ]; then - echo -e "\n" - echoStderr -e "šŸ’„ Failed tests: \${FAILED[@]}" + if [ "\${FAILED}" ]; then + printf "\n" + printf "šŸ’„ Failed tests: %s" "\${FAILED}" >&2 exit 1 else - echo -e "\n" - echo -e "Test Passed!" + printf "\nTest Passed!" exit 0 fi }`;