nvm/test/fast/Unit tests/nvm_install_binary_extract
Jordan Harband ff7634577b
[Tests] fix broken tests exposed by 863bd63
Leaves 2 non-executable, + some TODOs
2024-08-27 12:46:40 -07:00

71 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
cleanup() {
[ -d "${tmp_dir}" ] && rm -rf "${tmp_dir}"
[ -d "${NVM_DIR}" ] && rm -rf "${NVM_DIR}"
unset -f die cleanup test_archi nvm_supports_xz
unset NVM_DIR tmp_dir version archi
}
die() { echo "$@" ; cleanup ; exit 1; }
test_archi() {
local os
os="$1"
local version
version="$2"
local archi
archi="$os-$3"
local 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
mkdir -p "$(dirname "${node_path}")"
echo "node ${version}" > "${node_path}"
(cd "${tmp_dir}" && "${command}" "${command_option}" "${node_dir}.${ext}" "node-${version}-${archi}")
[ -f "${node_dir}.${ext}" ] || die "Unable to create fake ${ext} file"
# Extract it
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"
}
\. ../../../nvm.sh
set -ex
# nvm_install_binary_extract is available
type nvm_install_binary_extract > /dev/null 2>&1 || die 'nvm_install_binary_extract is not available'
NVM_DIR=$(mktemp -d)
tmp_dir=$(mktemp -d)
if [ -z "${NVM_DIR}" ] || [ -z "${tmp_dir}" ]; then
die 'Unable to create temporary folder'
fi
# Test windows zip
# TODO: enable this
# test_archi 'win' 'v15.6.0' 'x64' 'node' 'zip' 'zip' '-qr'
# Test linux tar.xz
test_archi 'linux' 'v14.15.4' 'x64' 'bin/node' 'tar.xz' 'tar' '-cJf'
nvm_supports_xz() {
return 1
}
# Test linux tar.gz
test_archi 'linux' 'v12.9.0' 'x64' 'bin/node' 'tar.gz' 'tar' '-czf'
cleanup