From 186eb8838dd43df3c3bf7b9d301101a9177398ca Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 7 Jul 2016 15:38:34 -0700 Subject: [PATCH] =?UTF-8?q?[Tests]=20make=20=E2=80=9Cnvm=20use=20iojs?= =?UTF-8?q?=E2=80=9D=20test=20actually=20test=20that=20thing.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/common.sh | 46 +++++++++++++++++++ ..."nvm use iojs\" uses latest io.js version" | 43 +++++++++-------- 2 files changed, 67 insertions(+), 22 deletions(-) diff --git a/test/common.sh b/test/common.sh index f87cc5c..033817c 100644 --- a/test/common.sh +++ b/test/common.sh @@ -17,3 +17,49 @@ strip_colors() { echo "$line" | LC_ALL=C command sed 's/\[[ -?]*[@-~]//g' done } + +make_echo() { + echo "#!/bin/sh" > "$1" + echo "echo \"${2}\"" > "$1" + chmod a+x "$1" +} + +make_fake_node() { + local VERSION + VERSION="${1-}" + [ -n "${VERSION}" ] || return 1 + + local BIN_PATH + BIN_PATH="$(nvm_version_path "${VERSION}")/bin" + mkdir -p "${BIN_PATH}" || { + echo >&2 'unable to make bin dir' + return 2 + } + + make_echo "${BIN_PATH}/node" "${VERSION}" || { + echo >&2 'unable to make fake node bin' + return 3 + } +} + +make_fake_iojs() { + local VERSION + VERSION="${1-}" + [ -n "${VERSION}" ] || return 1 + + local BIN_PATH + BIN_PATH="$(nvm_version_path "iojs-${VERSION}")/bin" + mkdir -p "${BIN_PATH}" || { + echo >&2 'unable to make bin dir' + return 2 + } + + make_echo "${BIN_PATH}/node" "${VERSION}" || { + echo >&2 'unable to make fake node bin' + return 3 + } + make_echo "${BIN_PATH}/iojs" "${VERSION}" || { + echo >&2 'unable to make fake iojs bin' + return 3 + } +} diff --git "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" index edee505..1a44d93 100755 --- "a/test/fast/Running \"nvm use iojs\" uses latest io.js version" +++ "b/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -1,38 +1,37 @@ #!/bin/sh +set -ex + +. ../common.sh + die () { echo $@ ; cleanup ; exit 1; } +VERSION="v3.99.0" + cleanup() { - rm -rf ../../alias/foo + unset -f make_echo cleanup + rm -rf "$(nvm_version_path "iojs-${VERSION}")" } +set +ex # TODO . ../../nvm.sh +set -ex -echo 'foo' > ../../alias/foo +nvm deactivate || die "unable to deactivate; current: >$(nvm current)<" -OUTPUT="$(nvm use foo 2>&1)" -EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +make_fake_iojs "${VERSION}" || die "unable to make_fake_iojs ${VERSION}" -EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE" +IOJS_VERSION="$(nvm_version iojs)" +[ -n "${IOJS_VERSION}" ] || die 'expected an io.js version; got none' -OUTPUT="$(nvm use --silent foo 2>&1)" -EXPECTED_OUTPUT='' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +EXPECTED_OUTPUT="$(nvm_add_iojs_prefix ${VERSION})" +[ "${IOJS_VERSION}" = "${EXPECTED_OUTPUT}" ] || die "iojs version was not >${EXPECTED_OUTPUT}; got >${IOJS_VERSION}<" -OUTPUT="$(nvm use foo --silent 2>&1)" -EXPECTED_OUTPUT='' -[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ - || die "'nvm use foo --silent' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" +nvm use --delete-prefix iojs || die '`nvm use iojs` failed' -EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE" +CURRENT="$(nvm current)" +echo "current: ${CURRENT}" -EXIT_CODE="$(nvm use foo --silent 2>/dev/null ; echo $?)" -[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use foo --silent'; got $EXIT_CODE" - -cleanup; +[ "${CURRENT}" = "${IOJS_VERSION}" ] || die "expected >${IOJS_VERSION}<; got >${CURRENT}<" +cleanup