#!/bin/sh set -ex cleanup () { unset -f nvm_download nvm_get_checksum_alg nvm_get_mirror } die () { echo "$@" ; cleanup ; exit 1; } set +e # TODO: fix \. ../../../nvm.sh set -e nvm_get_mirror() { echo "mirror-${1}-${2}" } set +ex # needed to capture error output OUTPUT="$(nvm_get_checksum 2>&1 >/dev/null)" EXPECTED_OUTPUT='supported flavors: node, iojs' EXIT_CODE="$(nvm_get_checksum >/dev/null 2>&1 ; echo $?)" set -ex [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected error output >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" [ "${EXIT_CODE}" = 2 ] || die "expected exit code 2, got ${EXIT_CODE}" nvm_download() { echo "ERROR_FAILED_MATCH no_match more fields" echo "${3} bar.tar.baz more fields" } nvm_get_checksum_alg() { echo 'sha-256' } OUTPUT="$(nvm_get_checksum node std foo bar tar.baz)" EXPECTED_OUTPUT="mirror-node-std/foo/SHASUMS256.txt" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" nvm_get_checksum_alg() { echo 'sha-1' } OUTPUT="$(nvm_get_checksum iojs std foo bar tar.baz)" EXPECTED_OUTPUT="mirror-iojs-std/foo/SHASUMS.txt" [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" cleanup