mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-04-03 19:44:52 +08:00
When `nosource=1` (the `-b` flag) and binary download fails, the function returned 0 (success) instead of a non-zero exit code, masking the installation failure.
Bug introduced in 4fdef427e4 / #2439.
35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
cleanup () {
|
|
nvm cache clear
|
|
nvm deactivate
|
|
rm -rf ${NVM_DIR}/v*
|
|
nvm unalias default
|
|
}
|
|
|
|
die () { echo "$@" ; cleanup; exit 1;}
|
|
|
|
: nvm.sh
|
|
\. ../../../nvm.sh
|
|
|
|
nvm_binary_available() {
|
|
return 1
|
|
}
|
|
|
|
# Unit test to check if the function errors out when the flag is set
|
|
OUTPUT="$(nvm_install_binary node std 8.0.0 1 2>&1)"
|
|
EXPECTED_OUTPUT='Binary download failed. Download from source aborted.'
|
|
if [ "${OUTPUT#*$EXPECTED_OUTPUT}" = "${OUTPUT}" ]; then
|
|
die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<"
|
|
fi
|
|
|
|
EXIT_CODE="$(nvm_install_binary node std 8.0.0 1 2>/dev/null; echo $?)"
|
|
[ "${EXIT_CODE}" = "2" ] || die "Expected exit code 2 when nosource=1 and binary fails, got ${EXIT_CODE}"
|
|
|
|
# Unit test to check if the function errors out when the flag is set
|
|
OUTPUT="$(nvm_install_binary node std 8.0.0 0 2>&1)"
|
|
EXPECTED_OUTPUT='Binary download failed. Download from source aborted.'
|
|
if [ "${OUTPUT#*$EXPECTED_OUTPUT}" != "${OUTPUT}" ]; then
|
|
die "No source binary flag is not active and should have downloaded from source. Instead it returned >${OUTPUT}<"
|
|
fi
|