[Tests] set $_ before sourcing nvm.sh in fast tests

nvm.sh uses `NVM_SCRIPT_SOURCE="$_"` to detect its source location.
Adding `: nvm.sh` before each source line ensures `$_` is set correctly, preventing breakage when the previous command (e.g., `set -ex`) overwrites it.
This commit is contained in:
Jordan Harband
2026-01-26 21:41:57 -08:00
parent faa8585c6f
commit 1d29998546
162 changed files with 163 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -1,4 +1,5 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -1,4 +1,5 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -1,4 +1,5 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_install_source() {

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"

View File

@@ -12,6 +12,7 @@ cleanup() {
mv "${NVM_DIR}/alias/lts-backup" "${NVM_DIR}/alias/lts"
}
: nvm.sh
\. ../../../nvm.sh
if [ -n "${NVM_COLORS-}" ]; then
export TEMP_NVM_COLORS=NVM_COLORS

View File

@@ -13,6 +13,7 @@ cleanup() {
unset TEMP_NVM_COLORS
}
: nvm.sh
\. ../../../nvm.sh
# NVM_COLORS is not set
if [ -n ${NVM_COLORS} ]; then

View File

@@ -8,6 +8,7 @@ cleanup() {
unset -f nvm_remote_version
}
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"'

View File

@@ -6,6 +6,7 @@ cleanup () {
rm -rf ../../../alias/test
}
: nvm.sh
\. ../../../nvm.sh
OUTPUT="$(nvm_alias 2>&1)"

View File

@@ -9,6 +9,7 @@ cleanup() {
mv "${NVM_DIR}/alias/lts-backup" "${NVM_DIR}/alias/lts"
}
: nvm.sh
\. ../../../nvm.sh
MOCKS_DIR="${PWD}/mocks"

View File

@@ -8,6 +8,7 @@ cleanup () {
rm -rf ../../../alias/test-comment-first
}
: nvm.sh
\. ../../../nvm.sh
# Test: alias file with comment on separate line

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not return correct location"

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
TEST_PATH=/usr/bin:/usr/local/bin

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
TERM=dumb nvm clear-cache --help | grep 'Usage:' || die 'did not print help menu'

View File

@@ -8,6 +8,7 @@ cleanup() {
die() { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh

View File

@@ -5,6 +5,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -4,6 +4,7 @@ set -ex
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
set +x

View File

@@ -6,6 +6,7 @@ cleanup() {
die() { cleanup; echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
curl() {

View File

@@ -3,6 +3,7 @@
TEST_PWD=$(pwd)
TEST_DIR="$TEST_PWD/nvm_die_on_prefix_tmp"
: nvm.sh
\. ../../../nvm.sh
TEST_VERSION_DIR="${TEST_DIR}/version"

View File

@@ -6,6 +6,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -5,6 +5,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# bad flavor

View File

@@ -4,6 +4,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required"

View File

@@ -6,6 +6,7 @@ cleanup () {
unset -f nvm_has_system_node nvm_has_system_iojs
}
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_ensure_version_prefix 1)" = "_v1" ] || die '"nvm_ensure_version_prefix 1" did not return "v1"'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "$(nvm_extract_tarball 2>&1)" = "nvm_extract_tarball requires exactly 4 arguments" ] || die 'incorrect error message with no args'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -11,6 +11,7 @@ cleanup () {
rm -rf tmp_nvm_find_up
}
: nvm.sh
\. ../../../nvm.sh
setup

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
INPUT="0.1.2"

View File

@@ -11,6 +11,7 @@ cleanup() {
die () { cleanup; echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# Directory where mocked binaries used by nvm_get_arch for each OS/arch are

View File

@@ -15,6 +15,7 @@ die() {
exit 1
}
: nvm.sh
. ../../../nvm.sh
# Sets the PATH for these tests to include the symlinks to the mocked binaries

View File

@@ -5,6 +5,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# nvm_get_artifact_compression by default

View File

@@ -8,6 +8,7 @@ cleanup () {
die () { echo "$@" ; cleanup ; exit 1; }
set +e # TODO: fix
: nvm.sh
\. ../../../nvm.sh
set -e

View File

@@ -5,6 +5,7 @@ set -ex
die () { echo "$@" ; exit 1; }
set +e # TODO: fix
: nvm.sh
\. ../../../nvm.sh
set -e

View File

@@ -5,6 +5,7 @@ set -ex
die () { echo "$@" ; exit 1; }
set +e # TODO: fix
: nvm.sh
\. ../../../nvm.sh
set -e

View File

@@ -12,6 +12,7 @@ cleanup() {
unset TEMP_NVM_COLORS
}
: nvm.sh
\. ../../../nvm.sh
# NVM_COLORS is not set

View File

@@ -1,5 +1,6 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
FILE="${NVM_DIR}/default-packages"

View File

@@ -6,6 +6,7 @@
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# The awk command from nvm_get_default_packages

View File

@@ -7,6 +7,7 @@ cleanup() {
die () { cleanup; echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "$(nvm_get_download_slug 2>/dev/null ; echo $?)" = '1' ] || die 'invalid flavor did not fail with exit code 1'

View File

@@ -6,6 +6,7 @@ cleanup() {
unset -f nvm_has
}
: nvm.sh
\. ../../../nvm.sh
nvm_has() { return 1 ; }

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
expect () {

View File

@@ -8,6 +8,7 @@ unset NVM_NODEJS_ORG_MIRROR
unset NVM_IOJS_ORG_MIRROR
set +e # TODO: fix
: nvm.sh
\. ../../../nvm.sh
set -e

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly'

View File

@@ -3,6 +3,7 @@
cleanup () { unalias foo; unalias grep; }
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
alias foo='bar'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -5,6 +5,7 @@ cleanup () {
}
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -1,5 +1,6 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -40,6 +40,7 @@ test_archi() {
[ "$(cat "${NVM_DIR}/versions/node/${version}/bin/node")" = "node ${version}" ] || die "Unable to extract ${ext} file"
}
: nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -9,6 +9,7 @@ cleanup () {
die () { echo "$@" ; cleanup; exit 1;}
: nvm.sh
\. ../../../nvm.sh
nvm_binary_available() {

View File

@@ -4,6 +4,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm deactivate >/dev/null 2>&1

View File

@@ -11,6 +11,7 @@ cleanup () {
die () { >&2 echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
cleanup

View File

@@ -6,6 +6,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# Create a fake directory structure for the build

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "$(nvm_iojs_prefix)" = "iojs" ] || die '"nvm_iojs_prefix" did not return the string "iojs". why did this fail?!'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -3,6 +3,7 @@
cleanup () { unalias foo; unalias grep; }
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
alias foo='bar'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_is_iojs_version 'iojs-' || die '"nvm_is_iojs_version iojs- was not true'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_is_merged_node_version '4.0' || die '"nvm_is_merged_node_version 4.0 was not true'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
! nvm_is_natural_num || die 'no args is not false'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0"

View File

@@ -7,6 +7,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# Test: nvm_ls with pattern containing # should not cause sed error

View File

@@ -6,6 +6,7 @@ TEST_DIR="$TEST_PWD/nvm_ls_current_tmp"
cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; }
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
return_zero () { return 0; }

View File

@@ -6,6 +6,7 @@ cleanup() {
unset -f nvm_download
}
: nvm.sh
\. ../../../nvm.sh
MOCKS_DIR="$PWD/mocks"

View File

@@ -14,6 +14,7 @@ cleanup() {
rm -rf "$TEST_PATH"
}
: nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -6,6 +6,7 @@ cleanup() {
unset -f nvm_download
}
: nvm.sh
\. ../../../nvm.sh
MOCKS_DIR="$PWD/mocks"

View File

@@ -6,6 +6,7 @@ cleanup() {
unset -f nvm_download
}
: nvm.sh
\. ../../../nvm.sh
# sample output at the time the test was written

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
OUTPUT="$(nvm_make_alias 2>&1)"

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "$(nvm_node_prefix)" = "node" ] || die '"nvm_node_prefix" did not return the string "node". why did this fail?!'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -8,6 +8,7 @@ cleanup() {
die () { cleanup; echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
MOCKS_DIR="../Unit tests/mocks"

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0"

View File

@@ -7,6 +7,7 @@ cleanup () {
unset -f nvm_alias nvm_version
}
: nvm.sh
\. ../../../nvm.sh
NVM_ALIAS_DIR='path/to/the alias/dir'

View File

@@ -4,6 +4,7 @@ set -ex
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
# Testing valid input

View File

@@ -7,6 +7,7 @@ cleanup () {
unset -f nvm_print_implicit_alias nvm_version
}
: nvm.sh
\. ../../../nvm.sh
nvm_print_implicit_alias() {

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
EXPECTED_FIRST_MSG="nvm_print_implicit_alias must be specified with local or remote as the first argument."

View File

@@ -13,6 +13,7 @@ cleanup() {
unset -f nvm_ls_remote nvm_ls_remote_iojs
}
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -7,6 +7,7 @@ cleanup () {
}
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_has() { return 1; }

View File

@@ -6,6 +6,7 @@ cleanup() {
echo 'cleaned up'
}
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh

View File

@@ -6,6 +6,7 @@ cleanup() {
unset -f nvm_ls_remote nvm_ls_remote_iojs
}
: nvm.sh
\. ../../../nvm.sh
nvm_ls_remote() {

View File

@@ -6,6 +6,7 @@ cleanup() {
unset -f nvm_ls_remote nvm_ls_remote_iojs
}
: nvm.sh
\. ../../../nvm.sh
OUTPUT="$(nvm_remote_versions stable 2>&1)"

View File

@@ -5,6 +5,7 @@ tempfile=$(mktemp)
die () { echo "$@" ; cleanup; exit 1; }
cleanup() { rm -f "$tempfile"; }
: nvm.sh
\. ../../../nvm.sh
if [ -t 1 ] ; then

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_strip_iojs_prefix iojs)" = "_" ] || die '"nvm_strip_iojs_prefix iojs" did not return an empty string'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin:$NVM_DIR/versions/node/v0.12.0/bin:$NVM_DIR/versions/io.js/v1.0.0/bin

View File

@@ -9,6 +9,7 @@ cleanup() {
}
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
OLDPATH=$PATH

View File

@@ -8,6 +8,7 @@ cleanup () {
}
die () { echo "$@" ; cleanup; exit 1; }
: nvm.sh
\. ../../../nvm.sh
mkdir -p tmp

View File

@@ -3,6 +3,7 @@
cleanup() { unset -f nvm_ls_current nvm; }
die () { echo "$@" ; cleanup ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_ls_current() { echo foo; }

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
EXPECTED_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported."

View File

@@ -5,6 +5,7 @@ cleanup () {
unset -f nvm_ls_current nvm_ls
}
: nvm.sh
\. ../../../nvm.sh
nvm_ls_current() {

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
[ "$(nvm_version_dir)" = "$NVM_DIR/versions/node" ] || die '"nvm_version_dir" did not return new dir path'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true'

View File

@@ -2,6 +2,7 @@
die () { echo "$@" ; exit 1; }
: nvm.sh
\. ../../../nvm.sh
OUTPUT="$(nvm_version_path foo)"

View File

@@ -1,4 +1,5 @@
#!/bin/sh
: nvm.sh
\. ../../../nvm.sh
\. ../../common.sh