Compare commits

..

No commits in common. "0d5338166694e558ce315172f4ca93c20c0ded26" and "c31a867c463bbe2251bd3b996a611f8cdc3007eb" have entirely different histories.

11 changed files with 47 additions and 75 deletions

View File

@ -19,24 +19,13 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
exclude: include:
- shell: sh - shell: bash
suite: install_script suite: install_script
- shell: dash # shell:
suite: install_script # - bash
- shell: zsh # suite:
suite: install_script # - install_script
- shell: ksh
suite: install_script
suite:
- install_script
- sourcing
shell:
- sh
- bash
- dash
- zsh
# - ksh
steps: steps:
- name: Harden Runner - name: Harden Runner
@ -48,13 +37,7 @@ jobs:
raw.githubusercontent.com:443 raw.githubusercontent.com:443
nodejs.org:443 nodejs.org:443
iojs.org:443 iojs.org:443
azure.archive.ubuntu.com:80
packages.microsoft.com:443
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: sudo apt-get update; sudo apt-get install ${{ matrix.shell }}
if: matrix.shell == 'zsh' || matrix.shell == 'ksh'
# zsh (https://github.com/actions/runner-images/issues/264) and ksh are not in the ubuntu image
shell: bash
- run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }} - run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }}
- run: curl --version - run: curl --version
- run: wget --version - run: wget --version
@ -65,7 +48,6 @@ jobs:
skip-ls-check: true skip-ls-check: true
shell-command: echo installed shell-command: echo installed
- run: npm ls urchin - run: npm ls urchin
- run: npx which urchin
- run: env - run: env
- run: make TERM=xterm-256color TEST_SUITE="${{ matrix.suite }}" SHELL="${{ matrix.shell }}" URCHIN="$(npx which urchin)" test-${{ matrix.shell }} - run: make TERM=xterm-256color TEST_SUITE="${{ matrix.suite }}" SHELL="${{ matrix.shell }}" URCHIN="$(npx which urchin)" test-${{ matrix.shell }}

View File

@ -87,6 +87,11 @@ env:
- SHELL=bash TEST_SUITE=fast - SHELL=bash TEST_SUITE=fast
- SHELL=zsh TEST_SUITE=fast - SHELL=zsh TEST_SUITE=fast
# - SHELL=ksh TEST_SUITE=fast # - SHELL=ksh TEST_SUITE=fast
- SHELL=sh TEST_SUITE=sourcing
- SHELL=dash TEST_SUITE=sourcing
- SHELL=bash TEST_SUITE=sourcing
- SHELL=zsh TEST_SUITE=sourcing
# - SHELL=ksh TEST_SUITE=sourcing
- SHELL=sh TEST_SUITE=slow - SHELL=sh TEST_SUITE=slow
- SHELL=dash TEST_SUITE=slow - SHELL=dash TEST_SUITE=slow
- SHELL=bash TEST_SUITE=slow - SHELL=bash TEST_SUITE=slow

View File

@ -43,7 +43,7 @@ $(SHELL_TARGETS):
@shell='$@'; shell=$${shell##*-}; \ @shell='$@'; shell=$${shell##*-}; \
which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \ which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \
printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \ printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \
[ -z "$$TRAVIS_BUILD_DIR" ] && [ -z "$$GITHUB_ACTIONS" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \ [ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(set | awk -F'=' '$$1 ~ "^NVM_" { print $$1 }'); do unset $$v; done && unset v; \
for suite in $(TEST_SUITE); do \ for suite in $(TEST_SUITE); do \
echo "Running test suite: $$suite"; \ echo "Running test suite: $$suite"; \
$(URCHIN) -f -s $$shell test/$$suite || exit; \ $(URCHIN) -f -s $$shell test/$$suite || exit; \

25
nvm.sh
View File

@ -4559,7 +4559,7 @@ nvm_auto() {
case "${NVM_MODE}" in case "${NVM_MODE}" in
none) return 0 ;; none) return 0 ;;
use) use | install)
local VERSION local VERSION
local NVM_CURRENT local NVM_CURRENT
NVM_CURRENT="$(nvm_ls_current)" NVM_CURRENT="$(nvm_ls_current)"
@ -4567,28 +4567,25 @@ nvm_auto() {
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
if [ -n "${VERSION}" ]; then if [ -n "${VERSION}" ]; then
if [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then if [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
nvm use --silent "${VERSION}" >/dev/null if [ "_${NVM_MODE}" = '_install' ]; then
nvm install "${VERSION}" >/dev/null
else
nvm use --silent "${VERSION}" >/dev/null
fi
else else
return 0 return 0
fi fi
elif nvm_rc_version >/dev/null 2>&1; then elif nvm_rc_version >/dev/null 2>&1; then
nvm use --silent >/dev/null if [ "_${NVM_MODE}" = '_install' ]; then
nvm install >/dev/null
else
nvm use --silent >/dev/null
fi
fi fi
else else
nvm use --silent "${NVM_CURRENT}" >/dev/null nvm use --silent "${NVM_CURRENT}" >/dev/null
fi fi
;; ;;
install)
local VERSION
VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)"
if [ -n "${VERSION}" ] && [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
nvm install "${VERSION}" >/dev/null
elif nvm_rc_version >/dev/null 2>&1; then
nvm install >/dev/null
else
return 0
fi
;;
*) *)
nvm_err 'Invalid auto mode supplied.' nvm_err 'Invalid auto mode supplied.'
return 1 return 1

View File

@ -27,15 +27,15 @@ setup () {
mkdir -p "$npm_config_prefix/lib" mkdir -p "$npm_config_prefix/lib"
} }
setup setup
npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package' npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package'
message=$(nvm_check_global_modules) message=$(nvm_check_global_modules)
[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed; got:\n${message}" [ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed; got:\n${message}"
if [ -n "${ORIGINAL_NVM_DIR}" ] && [ -z "${GITHUB_ACTIONS}" ]; then if [ -n "${ORIGINAL_NVM_DIR}" ]; then
# Admit we're using NVM, just for this one test # Admit we're using NVM, just for this one test
# TODO: fix this for GHA
message=$(NVM_DIR="${ORIGINAL_NVM_DIR}" nvm_check_global_modules) message=$(NVM_DIR="${ORIGINAL_NVM_DIR}" nvm_check_global_modules)
[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm is managed by nvm; got:\n${message}" [ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm is managed by nvm; got:\n${message}"
fi fi

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
die () { echo "$*" ; echo "|${NVM_DIR}|"; exit 1; } die () { echo "$@" ; exit 1; }
echo '0.10.1' > ../../alias/default || die "couldn't create default alias" echo '0.10.1' > ../../alias/default || die "couldn't create default alias"
@ -9,12 +9,12 @@ echo '0.10.1' > ../../alias/default || die "couldn't create default alias"
NVM_TARGET=0.10.3 NVM_TARGET=0.10.3
NVM_DEFAULT="$(nvm_resolve_local_alias default)" NVM_DEFAULT="$(nvm_resolve_local_alias default)"
[ "_${NVM_DEFAULT}" != "_${NVM_TARGET}" ] || die "default ${NVM_DEFAULT} is the same as target ${NVM_TARGET}" [ "_$NVM_DEFAULT" != "_$NVM_TARGET" ] || die "default $NVM_DEFAULT is the same as target $NVM_TARGET"
nvm use "${NVM_TARGET}" || die "nvm use ${NVM_TARGET} failed" nvm use $NVM_TARGET || die "nvm use $NVM_TARGET failed"
\. ../../nvm.sh || die 'sourcing returned nonzero exit code' \. ../../nvm.sh || die 'sourcing returned nonzero exit code'
NVM_CURRENT="$(nvm current)" NVM_CURRENT="$(nvm current)"
[ "_${NVM_CURRENT#v}" = "_${NVM_TARGET}" ] || die "node version not retained after sourcing" [ "_${NVM_CURRENT#v}" = "_$NVM_TARGET" ] || die "node version not retained after sourcing"

View File

@ -8,21 +8,21 @@ die () { echo "$@" ; exit 1; }
# despite being unloaded in setup, the inherited PATH still contains # despite being unloaded in setup, the inherited PATH still contains
# an nvm-installed node version. We have to reset NVM_DIR after the unload. # an nvm-installed node version. We have to reset NVM_DIR after the unload.
\. ../../nvm.sh || die 'sourcing returned nonzero exit code' \. ../../nvm.sh || die 'sourcing returned nonzero exit code'
NVM_DIR_CACHED="${NVM_DIR}" NVM_DIR_CACHED="$NVM_DIR"
nvm unload || die 'unloading returned nonzero exit code' nvm unload || die 'unloading returned nonzero exit code'
NVM_DIR="${NVM_DIR_CACHED}" NVM_DIR="$NVM_DIR_CACHED"
echo '0.10.1' > "${NVM_DIR}/alias/default" || die 'creation of default alias failed' echo '0.10.1' > ../../alias/default || die 'creation of default alias failed'
# Now to begin the real test # Now to begin the real test
\. ../../nvm.sh || die 'sourcing returned nonzero exit code' \. ../../nvm.sh || die 'sourcing returned nonzero exit code'
NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)" NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)"
NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)" NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)"
[ "_${NVM_LS_CURRENT}" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '${NVM_LS_CURRENT_NOT_GREPPED}'" [ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT_NOT_GREPPED'"
# NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)" # NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)"
NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)"
[ "_${NVM_ALIAS_DEFAULT}" = "_default -> 0.10.1 (-> v0.10.1)" ] \ [ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \
|| die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '${NVM_ALIAS_DEFAULT}'" || die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'"

View File

@ -1,7 +1,6 @@
#!/bin/sh #!/bin/sh
die () { echo "$*" ; echo "|${NVM_DIR}|"; exit 1; } die () { echo "$@" ; exit 1; }
supports_source_options () { supports_source_options () {
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
} }
@ -11,23 +10,18 @@ if ! supports_source_options; then
exit 0; exit 0;
fi fi
echo '0.10.2' > .nvmrc || die 'creation of .nvmrc failed' echo '0.10.2' > ../../.nvmrc || die 'creation of .nvmrc failed'
export NVM_DIR="${PWD}/../.."
rm ../../alias/default
\. ../../nvm.sh --install \. ../../nvm.sh --install
EXIT_CODE="$?" EXIT_CODE="$(echo $?)"
echo 'sourcing complete.' echo 'sourcing complete.'
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)"
[ "_$(nvm_rc_version | \grep -o -e 'with version .*$')" = "_with version <0.10.2>" ] || die "nvm_rc_version $(nvm_rc_version)" [ "_$(nvm_rc_version | \grep -o -e 'with version .*$')" = "_with version <0.10.2>" ] || die "nvm_rc_version $(nvm_rc_version)"
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: \n$(nvm_ls)" [ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE"
[ "_${EXIT_CODE}" = '_0' ] || die "sourcing returned nonzero exit code: ${EXIT_CODE}"
NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)" NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)"
[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got >${NVM_LS_CURRENT}<\n$(nvm_ls)" [ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT' `nvm ls`"
rm .nvmrc

View File

@ -2,7 +2,6 @@
\. ../common.sh \. ../common.sh
die () { echo "$@" ; exit 1; } die () { echo "$@" ; exit 1; }
supports_source_options () { supports_source_options () {
[ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ]
} }
@ -12,26 +11,22 @@ if ! supports_source_options; then
exit 0; exit 0;
fi fi
rm .nvmrc
export NVM_DIR="${PWD}/../.."
echo '0.10.2' > ../../alias/default || die 'creation of default alias failed' echo '0.10.2' > ../../alias/default || die 'creation of default alias failed'
echo 'sourcing nvm with --install...' echo 'sourcing nvm with --install...'
\. ../../nvm.sh --install \. ../../nvm.sh --install
EXIT_CODE="$?" EXIT_CODE="$(echo $?)"
echo 'sourcing complete.' echo 'sourcing complete.'
[ "$(nvm_alias default)" = '0.10.2' ] || die "nvm_alias default did not return '0.10.2', got >$(nvm_alias default)<" nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)"
nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: \n$(nvm_ls)" [ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE"
[ "_$EXIT_CODE" = '_0' ] || die "sourcing returned nonzero exit code: ${EXIT_CODE}"
NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)" NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)"
[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', >${NVM_LS_CURRENT}<\n$(nvm_ls)" [ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT'"
NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)"
[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \ [ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \
|| die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got >${NVM_ALIAS_DEFAULT}<\n$(nvm_ls)" || die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got '$NVM_ALIAS_DEFAULT'"

View File

@ -4,5 +4,4 @@ rm -rf ../../alias
rm -rf ../../v0.10.1 rm -rf ../../v0.10.1
rm -rf ../../v0.10.2 rm -rf ../../v0.10.2
rm -rf ../../v0.10.3 rm -rf ../../v0.10.3
rm -rf ../../versions/node/v4.1.0
rm -f ../../.nvmrc rm -f ../../.nvmrc