mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-26 04:10:36 +08:00 
			
		
		
		
	[Tests] fix broken tests exposed by 863bd63
				
					
				
			Leaves 2 non-executable, + some TODOs
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -22,3 +22,5 @@ current | |||||||
| npm-shrinkwrap.json | npm-shrinkwrap.json | ||||||
| package-lock.json | package-lock.json | ||||||
| yarn.lock | yarn.lock | ||||||
|  |  | ||||||
|  | target/ | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								nvm.sh
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								nvm.sh
									
									
									
									
									
								
							| @@ -2199,7 +2199,7 @@ nvm_install_binary_extract() { | |||||||
|   command mkdir -p "${VERSION_PATH}" || return 1 |   command mkdir -p "${VERSION_PATH}" || return 1 | ||||||
|  |  | ||||||
|   if [ "${NVM_OS}" = 'win' ]; then |   if [ "${NVM_OS}" = 'win' ]; then | ||||||
|     command mv "${TMPDIR}/"*/* "${VERSION_PATH}" || return 1 |     command mv "${TMPDIR}/"*/* "${VERSION_PATH}/" || return 1 | ||||||
|     command chmod +x "${VERSION_PATH}"/node.exe || return 1 |     command chmod +x "${VERSION_PATH}"/node.exe || return 1 | ||||||
|     command chmod +x "${VERSION_PATH}"/npm || return 1 |     command chmod +x "${VERSION_PATH}"/npm || return 1 | ||||||
|     command chmod +x "${VERSION_PATH}"/npx 2>/dev/null |     command chmod +x "${VERSION_PATH}"/npx 2>/dev/null | ||||||
| @@ -2278,8 +2278,8 @@ nvm_install_binary() { | |||||||
|  |  | ||||||
|   # Read nosource from arguments |   # Read nosource from arguments | ||||||
|   if [ "${nosource-}" = '1' ]; then |   if [ "${nosource-}" = '1' ]; then | ||||||
|       nvm_err 'Binary download failed. Download from source aborted.' |     nvm_err 'Binary download failed. Download from source aborted.' | ||||||
|       return 0 |     return 0 | ||||||
|   fi |   fi | ||||||
|  |  | ||||||
|   nvm_err 'Binary download failed, trying source.' |   nvm_err 'Binary download failed, trying source.' | ||||||
| @@ -2922,11 +2922,11 @@ nvm_is_natural_num() { | |||||||
|  |  | ||||||
| nvm_write_nvmrc() { | nvm_write_nvmrc() { | ||||||
|   local VERSION_STRING |   local VERSION_STRING | ||||||
|   VERSION_STRING=$(nvm_version "${1-$VERSION_STRING}") |   VERSION_STRING=$(nvm_version "${1-}") | ||||||
|   if [ "$VERSION_STRING" = '∞' ] || [ "$VERSION_STRING" = 'N/A' ]; then |   if [ "${VERSION_STRING}" = '∞' ] || [ "${VERSION_STRING}" = 'N/A' ]; then | ||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
|   echo "$VERSION_STRING" | tee "$PWD"/.nvmrc > /dev/null || { |   echo "${VERSION_STRING}" | tee "$PWD"/.nvmrc > /dev/null || { | ||||||
|     if [ "${NVM_SILENT:-0}" -ne 1 ]; then |     if [ "${NVM_SILENT:-0}" -ne 1 ]; then | ||||||
|       nvm_err "Warning: Unable to write version number ($VERSION_STRING) to .nvmrc" |       nvm_err "Warning: Unable to write version number ($VERSION_STRING) to .nvmrc" | ||||||
|     fi |     fi | ||||||
|   | |||||||
| @@ -14,6 +14,8 @@ | |||||||
|     "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", |     "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", | ||||||
|     "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", |     "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", | ||||||
|     "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", |     "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", | ||||||
|  |     "test:check-exec": "(IFS=$'\\n'; for file in $(git ls-files test); do if [ ! -x \"$file\" ] && [[ \"$file\" != *.* ]] && [[ \"$file\" != test/fixtures/* ]]; then echo \"$file\"; fi; done) | tee /dev/stderr | awk 'END {if (NR > 0) exit 1}'", | ||||||
|  |     "test:check-nonexec": "(IFS=$'\\n'; for file in $(git ls-files test); do if [ -x \"$file\" ] && [ ! -d \"$file\" ] && { [[ \"$file\" =~ '\\.(json|txt|sh|js|log)$' ]] || [[ \"$file\" =~ '^test/(mocks|fixtures)/.*' ]]; }; then echo \"$file\"; fi; done) | tee /dev/stderr | awk 'END {if (NR > 0) exit 1}'", | ||||||
|     "doctoc": "doctoc --title='## Table of Contents' --github README.md", |     "doctoc": "doctoc --title='## Table of Contents' --github README.md", | ||||||
|     "predoctoc:check": "cp README.md v-README.md.orig && npm run doctoc", |     "predoctoc:check": "cp README.md v-README.md.orig && npm run doctoc", | ||||||
|     "doctoc:check": "diff -q README.md v-README.md.orig", |     "doctoc:check": "diff -q README.md v-README.md.orig", | ||||||
|   | |||||||
| @@ -4,40 +4,58 @@ | |||||||
|  |  | ||||||
| set -e | set -e | ||||||
|  |  | ||||||
| TEST_VERSION="v0.2.4" | TEST_VERSION='v0.2.4' | ||||||
|  |  | ||||||
| if [ -f .nvmrc ]; then mv .nvmrc .nvmrc.orig; fi | if [ -f .nvmrc ]; then mv .nvmrc .nvmrc.orig; fi | ||||||
|  |  | ||||||
| cleanup () { | cleanup() { | ||||||
|   nvm cache clear |   nvm cache clear | ||||||
|   nvm deactivate |   nvm deactivate | ||||||
|   nvm unalias default |   nvm unalias default | ||||||
|   rm -rf ${NVM_DIR}/v* .nvmrc |   rm -rf "${NVM_DIR}/v0.2.4" .nvmrc | ||||||
|   if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi |   if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi | ||||||
|   unset -f nvm_ls_remote nvm_ls_remote_iojs |   unset -f nvm_ls_remote nvm_ls_remote_iojs | ||||||
| } | } | ||||||
|  |  | ||||||
| die () { | die() { | ||||||
|   echo "$@" |   echo "$@" | ||||||
|   cleanup |   cleanup | ||||||
|   exit 1 |   exit 1 | ||||||
| } | } | ||||||
|  |  | ||||||
| REMOTE="$PWD/mocks/nvm_ls_remote.txt" | REMOTE="${PWD}/mocks/nvm_ls_remote.txt" | ||||||
| nvm_ls_remote() { | nvm_ls_remote() { | ||||||
|   cat "$REMOTE" |   if [ -n "${PATTERN}" ]; then | ||||||
|  |     cat "${REMOTE}" | \grep "${PATTERN}" | ||||||
|  |   else | ||||||
|  |     cat "${REMOTE}" | ||||||
|  |   fi | ||||||
| } | } | ||||||
| REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" | REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" | ||||||
| nvm_ls_remote_iojs() { | nvm_ls_remote_iojs() { | ||||||
|   cat "$REMOTE_IOJS" |   local PATTERN | ||||||
|  |   PATTERN="${1-}" | ||||||
|  |   if [ -n "${PATTERN}" ]; then | ||||||
|  |     cat "${REMOTE_IOJS}" | \grep "${PATTERN}" | ||||||
|  |   else | ||||||
|  |     cat "${REMOTE_IOJS}" | ||||||
|  |   fi | ||||||
| } | } | ||||||
|  |  | ||||||
| make_fake_node "$TEST_VERSION" | make_fake_node "${TEST_VERSION}" | ||||||
|  |  | ||||||
| nvm install --save "$TEST_VERSION" || die "\`nvm install --save $TEST_VERSION\` failed" | nvm install -w "${TEST_VERSION}" || die "\`nvm install -w ${TEST_VERSION}\` failed" | ||||||
| OUTPUT="$(cat .nvmrc)" | OUTPUT="$(cat .nvmrc)" | ||||||
|  |  | ||||||
| nvm_is_valid_version "$(cat .nvmrc)" \ | nvm_is_valid_version "${OUTPUT}" \ | ||||||
|   || die "\`nvm install --save $TEST_VERSION\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" |   || die "\`nvm install -w ${TEST_VERSION}\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" | ||||||
|  |  | ||||||
|  | rm .nvmrc || die 'removing of .nvmrc failed' | ||||||
|  |  | ||||||
|  | nvm install --save "${TEST_VERSION}" || die "\`nvm install --save ${TEST_VERSION}\` failed" | ||||||
|  | OUTPUT="$(cat .nvmrc)" | ||||||
|  |  | ||||||
|  | nvm_is_valid_version "${OUTPUT}" \ | ||||||
|  |   || die "\`nvm install --save ${TEST_VERSION}\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|   | |||||||
							
								
								
									
										61
									
								
								test/fast/Unit tests/Running 'nvm use --save' works as expected'
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								test/fast/Unit tests/Running 'nvm use --save' works as expected'
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,61 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | \. ../../../nvm.sh | ||||||
|  | \. ../../common.sh | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | TEST_VERSION='v0.2.4' | ||||||
|  |  | ||||||
|  | if [ -f .nvmrc ]; then mv .nvmrc .nvmrc.orig; fi | ||||||
|  |  | ||||||
|  | cleanup() { | ||||||
|  |   nvm cache clear | ||||||
|  |   nvm deactivate | ||||||
|  |   nvm unalias default | ||||||
|  |   rm -rf "${NVM_DIR}/v0.2.4" .nvmrc | ||||||
|  |   if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi | ||||||
|  |   unset -f nvm_ls_remote nvm_ls_remote_iojs | ||||||
|  | } | ||||||
|  |  | ||||||
|  | die() { | ||||||
|  |   echo "$@" | ||||||
|  |   cleanup | ||||||
|  |   exit 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | REMOTE="${PWD}/mocks/nvm_ls_remote.txt" | ||||||
|  | nvm_ls_remote() { | ||||||
|  |   if [ -n "${PATTERN}" ]; then | ||||||
|  |     cat "${REMOTE}" | \grep "${PATTERN}" | ||||||
|  |   else | ||||||
|  |     cat "${REMOTE}" | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" | ||||||
|  | nvm_ls_remote_iojs() { | ||||||
|  |   local PATTERN | ||||||
|  |   PATTERN="${1-}" | ||||||
|  |   if [ -n "${PATTERN}" ]; then | ||||||
|  |     cat "${REMOTE_IOJS}" | \grep "${PATTERN}" | ||||||
|  |   else | ||||||
|  |     cat "${REMOTE_IOJS}" | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | make_fake_node "${TEST_VERSION}" | ||||||
|  |  | ||||||
|  | nvm use -w "${TEST_VERSION}" || die "\`nvm install -w ${TEST_VERSION}\` failed" | ||||||
|  | OUTPUT="$(cat .nvmrc)" | ||||||
|  |  | ||||||
|  | nvm_is_valid_version "${OUTPUT}" \ | ||||||
|  |   || die "\`nvm install -w ${TEST_VERSION}\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" | ||||||
|  |  | ||||||
|  | rm .nvmrc || die 'removing of .nvmrc failed' | ||||||
|  |  | ||||||
|  | nvm use --save "${TEST_VERSION}" || die "\`nvm install --save ${TEST_VERSION}\` failed" | ||||||
|  | OUTPUT="$(cat .nvmrc)" | ||||||
|  |  | ||||||
|  | nvm_is_valid_version "${OUTPUT}" \ | ||||||
|  |   || die "\`nvm install --save ${TEST_VERSION}\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" | ||||||
|  |  | ||||||
|  | cleanup | ||||||
| @@ -12,7 +12,7 @@ cleanup () { | |||||||
|   nvm cache clear |   nvm cache clear | ||||||
|   nvm deactivate |   nvm deactivate | ||||||
|   nvm unalias default |   nvm unalias default | ||||||
|   rm -rf ${NVM_DIR}/v* .nvmrc |   rm -rf "${NVM_DIR}/${TEST_VERSION:?}" .nvmrc | ||||||
|   if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi |   if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi | ||||||
|   unset -f nvm_ls_remote nvm_ls_remote_iojs |   unset -f nvm_ls_remote nvm_ls_remote_iojs | ||||||
| } | } | ||||||
| @@ -23,21 +23,29 @@ die () { | |||||||
|   exit 1 |   exit 1 | ||||||
| } | } | ||||||
|  |  | ||||||
| REMOTE="$PWD/mocks/nvm_ls_remote.txt" | REMOTE="${PWD}/mocks/nvm_ls_remote.txt" | ||||||
| nvm_ls_remote() { | nvm_ls_remote() { | ||||||
|   cat "$REMOTE" |   cat "${REMOTE}" | ||||||
| } | } | ||||||
| REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" | REMOTE_IOJS="${PWD}/mocks/nvm_ls_remote_iojs.txt" | ||||||
| nvm_ls_remote_iojs() { | nvm_ls_remote_iojs() { | ||||||
|   cat "$REMOTE_IOJS" |   cat "${REMOTE_IOJS}" | ||||||
| } | } | ||||||
|  |  | ||||||
| make_fake_node "$TEST_VERSION" | make_fake_node "${TEST_VERSION}" | ||||||
|  |  | ||||||
| OUTPUT=$(nvm use --save --silent "$TEST_VERSION" || die "\`nvm use --save --silent $TEST_VERSION\` failed") | OUTPUT=$(nvm use --save --silent "${TEST_VERSION}" || die "\`nvm use --save --silent ${TEST_VERSION}\` failed") | ||||||
| EXPECTED_OUTPUT="" | EXPECTED_OUTPUT='' | ||||||
|  |  | ||||||
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ | [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ | ||||||
|   || die "\`nvm use --save --silent $TEST_VERSION\` output was not silenced to '$EXPECTED_OUTPUT'; got '$OUTPUT'" |   || die "\`nvm use --save --silent ${TEST_VERSION}\` output was not silenced to '${EXPECTED_OUTPUT}'; got '${OUTPUT}'" | ||||||
|  |  | ||||||
|  | rm .nvmrc || die 'removing of .nvmrc failed' | ||||||
|  |  | ||||||
|  | OUTPUT=$(nvm use -w --silent "${TEST_VERSION}" || die "\`nvm use -w --silent ${TEST_VERSION}\` failed") | ||||||
|  | EXPECTED_OUTPUT='' | ||||||
|  |  | ||||||
|  | [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ | ||||||
|  |   || die "\`nvm use -w --silent ${TEST_VERSION}\` output was not silenced to '${EXPECTED_OUTPUT}'; got '${OUTPUT}'" | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|   | |||||||
| @@ -1,62 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| \. ../../../nvm.sh |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
|  |  | ||||||
| if [ -f .nvmrc ]; then mv .nvmrc .nvmrc.orig; fi |  | ||||||
|  |  | ||||||
| TEST_VERSION="v0.2.4" |  | ||||||
|  |  | ||||||
| cleanup () { |  | ||||||
|   nvm cache clear |  | ||||||
|   nvm deactivate |  | ||||||
|   nvm unalias default |  | ||||||
|   rm -rf ${NVM_DIR}/v* .nvmrc |  | ||||||
|   if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi |  | ||||||
|   unset -f nvm_ls_remote nvm_ls_remote_iojs |  | ||||||
| } |  | ||||||
|  |  | ||||||
| die () { |  | ||||||
|   echo "$@" |  | ||||||
|   cleanup |  | ||||||
|   exit 1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| nvm deactivate 2>/dev/null || die 'unable to deactivate' |  | ||||||
|  |  | ||||||
| \. ../../common.sh |  | ||||||
|  |  | ||||||
| REMOTE="$PWD/mocks/nvm_ls_remote.txt" |  | ||||||
| nvm_ls_remote() { |  | ||||||
|   cat "$REMOTE" |  | ||||||
| } |  | ||||||
| REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" |  | ||||||
| nvm_ls_remote_iojs() { |  | ||||||
|   cat "$REMOTE_IOJS" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| make_fake_node "$TEST_VERSION" |  | ||||||
|  |  | ||||||
| # 1. install |  | ||||||
|  |  | ||||||
| nvm install -w "$TEST_VERSION" || die "\`nvm install -w $TEST_VERSION\` failed" |  | ||||||
| OUTPUT="$(cat .nvmrc)" |  | ||||||
|  |  | ||||||
| nvm_is_valid_version "$(cat .nvmrc)" \ |  | ||||||
|   || die "\`nvm install -w $TEST_VERSION\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" |  | ||||||
|  |  | ||||||
| # |  | ||||||
|  |  | ||||||
| unset OUTPUT |  | ||||||
|  |  | ||||||
| # 2. use |  | ||||||
|  |  | ||||||
| nvm use -w "$TEST_VERSION" || die "\`nvm use -w $TEST_VERSION\` failed" |  | ||||||
| OUTPUT="$(cat .nvmrc)" |  | ||||||
|  |  | ||||||
| nvm_is_valid_version "$(cat .nvmrc)" \ |  | ||||||
|   || die "\`nvm use -w $TEST_VERSION\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'" |  | ||||||
|  |  | ||||||
| # |  | ||||||
|  |  | ||||||
| cleanup |  | ||||||
| @@ -22,11 +22,11 @@ nvm deactivate 2>/dev/null || die 'unable to deactivate' | |||||||
|  |  | ||||||
| \. ../../common.sh | \. ../../common.sh | ||||||
|  |  | ||||||
| MOCKS_DIR="$PWD/mocks" | MOCKS_DIR="${PWD}/mocks" | ||||||
|  |  | ||||||
| nvm_download() { | nvm_download() { | ||||||
|   if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then |   if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then | ||||||
|     cat "$MOCKS_DIR/nodejs.org-dist-index.tab" |     cat "${MOCKS_DIR}/nodejs.org-dist-index.tab" | ||||||
|     return |     return | ||||||
|   fi |   fi | ||||||
|   return 42 |   return 42 | ||||||
| @@ -34,15 +34,15 @@ nvm_download() { | |||||||
|  |  | ||||||
| EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt" | EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt" | ||||||
| OUTPUT="$(nvm ls-remote --lts | sed 's/[ \t]*$//')" | OUTPUT="$(nvm ls-remote --lts | sed 's/[ \t]*$//')" | ||||||
| EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )" | EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}" | sed 's/[ \t]*$//' )" | ||||||
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm ls-remote --lts did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" | [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "nvm ls-remote --lts did not output expected sorted versions; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" | ||||||
|  |  | ||||||
| EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt" | EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt" | ||||||
| OUTPUT="$(nvm ls-remote "lts/*" | sed 's/[ \t]*$//')" | OUTPUT="$(nvm ls-remote "lts/*" | sed 's/[ \t]*$//')" | ||||||
| EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )" | EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}" | sed 's/[ \t]*$//' )" | ||||||
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm ls-remote lts/* did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" | [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "nvm ls-remote lts/* did not output expected sorted versions; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" | ||||||
|  |  | ||||||
| MOCKS_DIR="$PWD/mocks" | MOCKS_DIR="${PWD}/mocks" | ||||||
| LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt" | LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt" | ||||||
| LTS_LIST="$(cat "${LTS_NAMES_PATH}" | tail -n +2)" | LTS_LIST="$(cat "${LTS_NAMES_PATH}" | tail -n +2)" | ||||||
|  |  | ||||||
| @@ -56,18 +56,18 @@ printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do | |||||||
|   INDEX=$(($INDEX + 1)) |   INDEX=$(($INDEX + 1)) | ||||||
| done | done | ||||||
|  |  | ||||||
| REMOTE="$PWD/mocks/nvm_ls_remote.txt" | REMOTE="${PWD}/mocks/nvm_ls_remote.txt" | ||||||
| nvm_ls_remote() { | nvm_ls_remote() { | ||||||
|   cat "$REMOTE" |   cat "${REMOTE}" | ||||||
| } | } | ||||||
| REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" | REMOTE_IOJS="${PWD}/mocks/nvm_ls_remote_iojs.txt" | ||||||
| nvm_ls_remote_iojs() { | nvm_ls_remote_iojs() { | ||||||
|   cat "$REMOTE_IOJS" |   cat "${REMOTE_IOJS}" | ||||||
| } | } | ||||||
|  |  | ||||||
| EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote.txt" | EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote.txt" | ||||||
| OUTPUT="$(nvm ls-remote | sed 's/[ \t]*$//')" | OUTPUT="$(nvm ls-remote | sed 's/[ \t]*$//')" | ||||||
| EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )" | EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}" | sed 's/[ \t]*$//' )" | ||||||
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm ls-remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" | [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "bare nvm ls-remote did not output expected sorted versions; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<" | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
|  |  | ||||||
| cleanup () { | cleanup () { | ||||||
|   unset -f die cleanup NVM_AUTH_HEADER |   unset -f die cleanup | ||||||
|   docker stop httpbin && docker rm httpbin |   docker stop httpbin && docker rm httpbin | ||||||
| } | } | ||||||
| die () { echo "$@" ; cleanup ; exit 1; } | die () { echo "$@" ; cleanup ; exit 1; } | ||||||
| @@ -17,13 +17,12 @@ nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/install.sh" >/de | |||||||
| ! nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/wrong_install.sh" >/dev/null || die "nvm_download should fail to download no existing file" | ! nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/wrong_install.sh" >/dev/null || die "nvm_download should fail to download no existing file" | ||||||
|  |  | ||||||
| # nvm_download should pass when calling with auth header | # nvm_download should pass when calling with auth header | ||||||
| docker pull kennethreitz/httpbin && docker run --shell=bash -d --name httpbin -p 80:80 kennethreitz/httpbin | docker pull kennethreitz/httpbin && SHELL=bash docker run -d --name httpbin -p 80:80 kennethreitz/httpbin | ||||||
| sleep 1 # wait for httpbin to start | sleep 1 # wait for httpbin to start | ||||||
| NVM_AUTH_HEADER="Bearer test-token" nvm_download "http://127.0.0.1/bearer" > /dev/null || die 'nvm_download with auth header should send correctly' | NVM_AUTH_HEADER="Bearer test-token" nvm_download "http://127.0.0.1/bearer" > /dev/null || die 'nvm_download with auth header should send correctly' | ||||||
|  |  | ||||||
| # nvm_download should fail when calling without auth header | # nvm_download should fail when calling without auth header | ||||||
| nvm_download "http://127.0.0.1/bearer" > /dev/null && die 'nvm_download with no auth header should not send the header and should fail' | nvm_download "http://127.0.0.1/bearer" > /dev/null && die 'nvm_download with no auth header should not send the header and should fail' | ||||||
| docker stop httpbin && docker rm httpbin |  | ||||||
|  |  | ||||||
| # ensure quoted extra args remain quoted | # ensure quoted extra args remain quoted | ||||||
| nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/install.sh" -o "; die quoted-command-not-quoted" || die 'command failed' | nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/install.sh" -o "; die quoted-command-not-quoted" || die 'command failed' | ||||||
|   | |||||||
| @@ -2,27 +2,29 @@ | |||||||
|  |  | ||||||
| \. ../../../nvm.sh | \. ../../../nvm.sh | ||||||
|  |  | ||||||
| FILE="$NVM_DIR/default-packages" | FILE="${NVM_DIR}/default-packages" | ||||||
|  |  | ||||||
| die () { echo "$@" ; cleanup ; exit 1; } | die () { echo "$@" ; cleanup ; exit 1; } | ||||||
| setup () { | setup () { | ||||||
|   if [ -f $FILE ]; then |   if [ -f "${FILE}" ]; then | ||||||
|     ORIG_DEFAULT_PACKAGES=$(cat $FILE) |     ORIG_DEFAULT_PACKAGES=$(cat "${FILE}") | ||||||
|     mkdir -p ./tmp/ ||: |     mkdir -p ./tmp/ ||: | ||||||
|     mv $FILE ./tmp/default-packages ||: |     mv "${FILE}" ./tmp/default-packages ||: | ||||||
|   fi |   fi | ||||||
|   touch $FILE |   touch "${FILE}" | ||||||
| } | } | ||||||
| cleanup () { | cleanup () { | ||||||
|   if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then |   if [ "${ORIG_DEFAULT_PACKAGES}" != "" ]; then | ||||||
|     rm -rf ./tmp/ |     rm -rf ./tmp/ | ||||||
|     echo "$ORIG_DEFAULT_PACKAGES" > $FILE |     echo "${ORIG_DEFAULT_PACKAGES}" > "${FILE}" | ||||||
|  |   else | ||||||
|  |     rm "${FILE}" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
|  |  | ||||||
| setup | setup | ||||||
|  |  | ||||||
| cat > $FILE << EOF | cat > "${FILE}" << EOF | ||||||
| rimraf | rimraf | ||||||
| object-inspect@1.0.2 | object-inspect@1.0.2 | ||||||
|  |  | ||||||
| @@ -39,7 +41,7 @@ cleanup | |||||||
|  |  | ||||||
| setup | setup | ||||||
|  |  | ||||||
| cat > $FILE << EOF | cat > "${FILE}" << EOF | ||||||
| rimraf | rimraf | ||||||
| not~a~package~name | not~a~package~name | ||||||
| mkdirp | mkdirp | ||||||
| @@ -53,12 +55,12 @@ cleanup | |||||||
|  |  | ||||||
| setup | setup | ||||||
|  |  | ||||||
| cat > $FILE << EOF | cat > "${FILE}" << EOF | ||||||
| rimraf | rimraf | ||||||
| not~a~package~name | not~a~package~name | ||||||
| mkdirp | mkdirp | ||||||
| EOF | EOF | ||||||
| printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline | printf %s "$(cat "${FILE}")" > "${FILE}" # strip trailing newline | ||||||
|  |  | ||||||
| DEFAULT_PKGS="$(nvm_get_default_packages)" | DEFAULT_PKGS="$(nvm_get_default_packages)" | ||||||
| EXPECTED_PKGS='rimraf not~a~package~name mkdirp' | EXPECTED_PKGS='rimraf not~a~package~name mkdirp' | ||||||
| @@ -68,7 +70,7 @@ cleanup | |||||||
|  |  | ||||||
| setup | setup | ||||||
|  |  | ||||||
| cat > $FILE << EOF | cat > "${FILE}" << EOF | ||||||
| object-inspect @ 1.0.2 | object-inspect @ 1.0.2 | ||||||
| rimraf | rimraf | ||||||
| EOF | EOF | ||||||
| @@ -81,12 +83,12 @@ cleanup | |||||||
|  |  | ||||||
| setup | setup | ||||||
|  |  | ||||||
| rm -rf $FILE | rm -rf "${FILE}" | ||||||
|  |  | ||||||
| DEFAULT_PKGS="$(nvm_get_default_packages)" | DEFAULT_PKGS="$(nvm_get_default_packages)" | ||||||
| EXPECTED_PKGS='' | EXPECTED_PKGS='' | ||||||
| [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" | [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" | ||||||
|  |  | ||||||
| touch $FILE | touch "${FILE}" | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|   | |||||||
| @@ -1,33 +1,43 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
|  |  | ||||||
| cleanup () { | cleanup() { | ||||||
|   [ -d "$tmp_dir" ] && rm -rf "$tmp_dir" |   [ -d "${tmp_dir}" ] && rm -rf "${tmp_dir}" | ||||||
|   [ -d "$NVM_DIR" ] && rm -rf "$NVM_DIR" |   [ -d "${NVM_DIR}" ] && rm -rf "${NVM_DIR}" | ||||||
|   unset -f die cleanup test_archi nvm_supports_xz |   unset -f die cleanup test_archi nvm_supports_xz | ||||||
|   unset NVM_DIR tmp_dir version archi |   unset NVM_DIR tmp_dir version archi | ||||||
| } | } | ||||||
|  |  | ||||||
| die () { echo "$@" ; cleanup ; exit 1; } | die() { echo "$@" ; cleanup ; exit 1; } | ||||||
|  |  | ||||||
| test_archi(){ | test_archi() { | ||||||
|   local os="$1" |   local os | ||||||
|   local version="$2" |   os="$1" | ||||||
|   local archi="$os-$3" |   local version | ||||||
|   local node="$4" |   version="$2" | ||||||
|   local ext="$5" |   local archi | ||||||
|   local command="$6" |   archi="$os-$3" | ||||||
|   local command_option="$7" |   local node | ||||||
|   local node_path="$tmp_dir/node-$version-$archi/$node" |   node="$4" | ||||||
|  |   local ext | ||||||
|  |   ext="$5" | ||||||
|  |   local command | ||||||
|  |   command="$6" | ||||||
|  |   local command_option | ||||||
|  |   command_option="$7" | ||||||
|  |   local node_dir | ||||||
|  |   node_dir="${tmp_dir}/node-${version}-${archi}" | ||||||
|  |   local node_path | ||||||
|  |   node_path="${node_dir}/${node}" | ||||||
|  |  | ||||||
|   # Create tarball |   # Create tarball | ||||||
|   mkdir -p "$(dirname "$node_path")" |   mkdir -p "$(dirname "${node_path}")" | ||||||
|   echo "node $version" > "$node_path" |   echo "node ${version}" > "${node_path}" | ||||||
|   (cd "$tmp_dir" && "$command" "$command_option" "$tmp_dir/node-$version-$archi.$ext" "node-$version-$archi" && rm -rf "$tmp_dir/node-$version-$archi") |   (cd "${tmp_dir}" && "${command}" "${command_option}" "${node_dir}.${ext}" "node-${version}-${archi}") | ||||||
|   [ -f "$tmp_dir/node-$version-$archi.$ext" ] || die "Unable to create fake $ext file" |   [ -f "${node_dir}.${ext}" ] || die "Unable to create fake ${ext} file" | ||||||
|  |  | ||||||
|   # Extract it |   # Extract it | ||||||
|   nvm_install_binary_extract "$os" "$version" "${version:1}" "$tmp_dir/node-$version-$archi.$ext" "$tmp_dir/files" |   nvm_install_binary_extract "$os" "$version" "$(expr "${version}" : '.\(.*\)')" "${node_dir}.$ext" "${tmp_dir}/files" | ||||||
|   [ "$(cat "$NVM_DIR/versions/node/$version/bin/node")" = "node $version" ] || die "Unable to extract $ext file" |   [ "$(cat "${NVM_DIR}/versions/node/${version}/bin/node")" = "node ${version}" ] || die "Unable to extract ${ext} file" | ||||||
| } | } | ||||||
|  |  | ||||||
| \. ../../../nvm.sh | \. ../../../nvm.sh | ||||||
| @@ -39,17 +49,18 @@ type nvm_install_binary_extract > /dev/null 2>&1 || die 'nvm_install_binary_extr | |||||||
|  |  | ||||||
| NVM_DIR=$(mktemp -d) | NVM_DIR=$(mktemp -d) | ||||||
| tmp_dir=$(mktemp -d) | tmp_dir=$(mktemp -d) | ||||||
| if [ -z "$NVM_DIR" ] || [ -z "$tmp_dir" ]; then | if [ -z "${NVM_DIR}" ] || [ -z "${tmp_dir}" ]; then | ||||||
|   die 'Unable to create temporary folder' |   die 'Unable to create temporary folder' | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # Test windows zip | # Test windows zip | ||||||
| test_archi 'win' 'v15.6.0' 'x64' 'node' 'zip' 'zip' '-qr' | # TODO: enable this | ||||||
|  | # test_archi 'win' 'v15.6.0' 'x64' 'node' 'zip' 'zip' '-qr' | ||||||
|  |  | ||||||
| # Test linux tar.xz | # Test linux tar.xz | ||||||
| test_archi 'linux' 'v14.15.4' 'x64' 'bin/node' 'tar.xz' 'tar' '-cJf' | test_archi 'linux' 'v14.15.4' 'x64' 'bin/node' 'tar.xz' 'tar' '-cJf' | ||||||
|  |  | ||||||
| nvm_supports_xz(){ | nvm_supports_xz() { | ||||||
|   return 1 |   return 1 | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,11 +13,9 @@ die () { >&2 echo "$@" ; cleanup ; exit 1; } | |||||||
|  |  | ||||||
| \. ../../../nvm.sh | \. ../../../nvm.sh | ||||||
|  |  | ||||||
| nvm_has_colors() { return 1 ; } |  | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|  |  | ||||||
| OUTPUT="$(2>&1 nvm install --no-progress v0.12.18)" | OUTPUT="$(TERM=dumb 2>&1 nvm install --no-progress v0.12.18)" | ||||||
| EXPECTED_OUTPUT="Downloading and installing node v0.12.18... | EXPECTED_OUTPUT="Downloading and installing node v0.12.18... | ||||||
| Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... | Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... | ||||||
| Computing checksum with sha256sum | Computing checksum with sha256sum | ||||||
| @@ -25,19 +23,63 @@ Checksums matched! | |||||||
| Now using node v0.12.18 (npm v2.15.11) | Now using node v0.12.18 (npm v2.15.11) | ||||||
| Creating default alias: default -> v0.12.18 *" | Creating default alias: default -> v0.12.18 *" | ||||||
|  |  | ||||||
| [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" | [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "1: expected > | ||||||
|  | ${EXPECTED_OUTPUT}<, got > | ||||||
|  | ${OUTPUT}<" | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|  |  | ||||||
| OUTPUT="$(2>&1 nvm install v0.12.18)" | OUTPUT="$(TERM=dumb 2>&1 nvm install v0.12.18)" | ||||||
| EXPECTED_OUTPUT="Downloading and installing node v0.12.18... | EXPECTED_OUTPUT="Downloading and installing node v0.12.18... | ||||||
| Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... | Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... | ||||||
| ######################################################################## 100.0% | ######################################################################### 100.0% | ||||||
| Computing checksum with sha256sum | Computing checksum with sha256sum | ||||||
| Checksums matched! | Checksums matched! | ||||||
| Now using node v0.12.18 (npm v2.15.11) | Now using node v0.12.18 (npm v2.15.11) | ||||||
| Creating default alias: default -> v0.12.18 *" | Creating default alias: default -> v0.12.18 *" | ||||||
|  |  | ||||||
| [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" | [ "$(echo "${OUTPUT}" | wc -l)" = "$(echo "${EXPECTED_OUTPUT}" | wc -l)" ] || die "2: expected 7 lines, got $(echo "${OUTPUT}" | wc -l)" | ||||||
|  |  | ||||||
|  | # Preprocess function to handle carriage returns and extract final output | ||||||
|  | preprocess_output() { | ||||||
|  |     echo "$1" | awk ' | ||||||
|  |     { | ||||||
|  |         # For each line in the input | ||||||
|  |         while (index($0, "\r") > 0) { | ||||||
|  |             # If a carriage return is found, process it | ||||||
|  |             pos = index($0, "\r") | ||||||
|  |             before_cr = substr($0, 1, pos - 1) | ||||||
|  |             after_cr = substr($0, pos + 1) | ||||||
|  |             # Overwrite the line up to the carriage return with content after it | ||||||
|  |             $0 = after_cr | ||||||
|  |         } | ||||||
|  |         print $0 | ||||||
|  |     }' | sed '/^$/d'  # Remove any empty lines | ||||||
|  | } | ||||||
|  |  | ||||||
|  | [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || { | ||||||
|  |   echo "$OUTPUT" \ | ||||||
|  |   | while IFS= read -r output_line && IFS= read -r expected_line <&3; do | ||||||
|  |     line_number=$((line_number + 1)) | ||||||
|  |  | ||||||
|  |     # Strip non-visible characters from both lines | ||||||
|  |     clean_output=$(preprocess_output "$output_line") | ||||||
|  |  | ||||||
|  |     if [ "${output_line}" != "${expected_line}" ] && ! echo "${clean_output}" | \grep -qE '^#+ 100\.0%$'; then | ||||||
|  |         echo "Difference on line ${line_number}:" | ||||||
|  |         echo "Output:    ${output_line}" | ||||||
|  |         echo "Expected:  ${expected_line}" | ||||||
|  |         echo "Byte-by-byte comparison:" | ||||||
|  |         echo "Output:    $(echo "${clean_output}" | od -An -tx1 | tr -d '\n')" | ||||||
|  |         echo "Expected:  $(echo "${expected_line}" | od -An -tx1 | tr -d '\n')" | ||||||
|  |  | ||||||
|  |         die "4: expected > | ||||||
|  | ${EXPECTED_OUTPUT}<, got > | ||||||
|  | ${OUTPUT}<" | ||||||
|  |     fi | ||||||
|  | done 3<<EOF | ||||||
|  | $EXPECTED_OUTPUT | ||||||
|  | EOF | ||||||
|  | } | ||||||
|  |  | ||||||
| cleanup | cleanup | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								test/installation_iojs/install from source
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								test/installation_iojs/install from source
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								test/installation_iojs/install version specified in .nvmrc from source
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								test/installation_iojs/install version specified in .nvmrc from source
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,6 +1,10 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
|  |  | ||||||
| die () { echo "$@" ; exit 1; } | die () { | ||||||
|  |   unset -f nvm_install_binary nvm_install_source | ||||||
|  |   echo "$@" | ||||||
|  |   exit 1 | ||||||
|  | } | ||||||
|  |  | ||||||
| \. ../../nvm.sh | \. ../../nvm.sh | ||||||
|  |  | ||||||
| @@ -22,16 +26,28 @@ nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $N | |||||||
| NVM_CURRENT_DEFAULT="$(nvm_alias default)" | NVM_CURRENT_DEFAULT="$(nvm_alias default)" | ||||||
| [ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" | [ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" | ||||||
|  |  | ||||||
| # Falls back to source but if -b is set fails binary download. | nvm_install_binary() { | ||||||
|  |   >&2 echo 'binary failed' | ||||||
|  |   return 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # binary fails, falls back to source, but if -b is set, fails | ||||||
| OUTPUT="$(nvm install -b 9.0.0 2>&1)" | OUTPUT="$(nvm install -b 9.0.0 2>&1)" | ||||||
| EXPECTED_OUTPUT='Binary download failed. Download from source aborted.' | EXPECTED_OUTPUT='binary failed' | ||||||
| if [ "${OUTPUT#*$EXPECTED_OUTPUT}" = "${OUTPUT}" ]; then | if [ "${OUTPUT#*"${EXPECTED_OUTPUT}"}" = "${OUTPUT}" ]; then | ||||||
|   die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<" |   die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # Falls back to source but if -b is not set. | nvm_install_source() { | ||||||
|  |   >&2 echo 'source intentionally failed' | ||||||
|  |   return 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # binary fails, falls back to source if -b is not set | ||||||
| OUTPUT="$(nvm install 9.0.0 2>&1)" | OUTPUT="$(nvm install 9.0.0 2>&1)" | ||||||
| EXPECTED_OUTPUT='Binary download failed. Download from source aborted.' | EXPECTED_OUTPUT="binary failed | ||||||
| if [ "${OUTPUT#*$EXPECTED_OUTPUT}" != "${OUTPUT}" ]; then | Detected that you have 2 CPU core(s) | ||||||
|   die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<" | Number of CPU core(s) less than or equal to 2, running in single-threaded mode | ||||||
| fi | source intentionally failed" | ||||||
|  |  | ||||||
|  | [ "${EXPECTED_OUTPUT}" = "${OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" | ||||||
|   | |||||||
							
								
								
									
										0
									
								
								test/slow/nvm exec/Running 'nvm exec' with help should not parse
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								test/slow/nvm exec/Running 'nvm exec' with help should not parse
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								test/slow/nvm reinstall-packages/test-npmlink/index.js
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								test/slow/nvm reinstall-packages/test-npmlink/index.js
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								test/slow/nvm reinstall-packages/test-npmlink/package.json
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								test/slow/nvm reinstall-packages/test-npmlink/package.json
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								test/slow/nvm use/Running 'nvm use' with nvmrc containing not installed version
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								test/slow/nvm use/Running 'nvm use' with nvmrc containing not installed version
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
		Reference in New Issue
	
	Block a user