diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 00ac65ef88..c28fc8a9a4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,12 +58,11 @@ jobs: - run: sudo ${{ matrix.shell }} --version 2> /dev/null || dpkg -s ${{ matrix.shell }} 2> /dev/null || which ${{ matrix.shell }} - run: curl --version - run: wget --version - - uses: ljharb/actions/node/run@main + - uses: ljharb/actions/node/install@main name: 'npm install && version checks' with: node-version: 'lts/*' skip-ls-check: true - shell-command: echo installed - run: npm ls urchin - run: npx which urchin - run: env diff --git a/test/fast/Unit tests/nvm_get_arch b/test/fast/Unit tests/nvm_get_arch index 537a739fc8..c45cae01c8 100755 --- a/test/fast/Unit tests/nvm_get_arch +++ b/test/fast/Unit tests/nvm_get_arch @@ -2,11 +2,11 @@ # Save the PATH as it was when the test started to restore it when it # finishes -ORIG_PATH=$PATH +ORIG_PATH="${PATH}" cleanup() { # Restore the PATH as it was when the test started - export PATH=ORIG_PATH + export PATH="${ORIG_PATH}" } die () { cleanup; echo "$@" ; exit 1; } @@ -15,20 +15,23 @@ die () { cleanup; echo "$@" ; exit 1; } # Directory where mocked binaries used by nvm_get_arch for each OS/arch are # located -MOCKS_DIR=`pwd`/../../mocks +MOCKS_DIR="$(pwd)/../../mocks" # Sets the PATH for these tests to include the symlinks to the mocked # binaries -export PATH=.:${PATH} +export PATH=".:${PATH}" # Setups mock binaries for a given OS and arch that mimic # the output of the real binaries used by nvm_get_arch to guess # the architecture of a given system. setup_mock_arch() { - local OS=$1 - local ARCH=$2 - local OPT=$3 - - if [ "_$OS" = "_solaris" ] || [ "_$OS" = "_smartos" ]; then + local OS + OS=$1 + local ARCH + ARCH=$2 + local OPT + OPT=$3 + + if [ "_${OS}" = '_solaris' ] || [ "_${OS}" = '_smartos' ]; then ln -sf "${MOCKS_DIR}/isainfo_${ARCH}" ./isainfo if [ "_$OPT" != "_no_pkg_info" ]; then ln -sf "${MOCKS_DIR}/pkg_info_${ARCH}" ./pkg_info @@ -42,10 +45,12 @@ setup_mock_arch() { # Cleans up the setup done by setup_mock_arch. cleanup_mock_arch() { - local OS=$1 - local ARCH=$2 + local OS + OS=$1 + local ARCH + ARCH=$2 - if [ "_$OS" = "_solaris" ] || [ "_$OS" = "_smartos" ]; then + if [ "_${OS}" = '_solaris' ] || [ "_${OS}" = '_smartos' ]; then rm -f ./isainfo rm -f ./pkg_info fi @@ -57,17 +62,22 @@ cleanup_mock_arch() { # expected output $EXPECTED_OUTPUT with the actual output. Does nothing # and exits cleanly if they match, dies otherwise. run_test() { - local ARCH=$1 - local OS=$2 - local EXPECTED_OUTPUT=$3 - local OPT=$4 - - setup_mock_arch $OS $ARCH $OPT - local OUTPUT="$(nvm_get_arch)" - cleanup_mock_arch $OS $ARCH - [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || - die "nvm_get_arch for OS \"$OS\" and arch \"$ARCH\" with OPT \"$OPT\" did - not return \"$EXPECTED_OUTPUT\"; got \"$OUTPUT\"" + local ARCH + ARCH=$1 + local OS + OS=$2 + local EXPECTED_OUTPUT + EXPECTED_OUTPUT=$3 + local OPT + OPT=$4 + + setup_mock_arch "${OS}" "${ARCH}" "${OPT}" + local OUTPUT + OUTPUT="$(nvm_get_arch)" + cleanup_mock_arch "${OS}" "${ARCH}" + [ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || + die "nvm_get_arch for OS \"${OS}\" and arch \"${ARCH}\" with OPT \"${OPT}\" did + not return \"${EXPECTED_OUTPUT}\"; got \"${OUTPUT}\"" } run_test x86 smartos x86