mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-07-18 12:58:21 +08:00
[Tests] make the fast suite pass on Alpine
`nvm_get_arch`: skip the smartos arm64/armv8l cases, which have no uname mock and fall through to the real host (adding a musl suffix on Alpine). `nvm_get_arch_unofficial`: skip the glibc chroot (fixed /lib64 loader, sudo); the musl mapping is already covered by the `nvm_get_arch alpine` test. `nvm_install_no_progress_bar`: skip below the musl floor, since v0.12.18 has no musl binary and hardcodes the glibc tarball URL.
This commit is contained in:
@@ -90,8 +90,13 @@ run_test amd64 smartos x64 no_pkg_info
|
|||||||
run_test x86 osx x86
|
run_test x86 osx x86
|
||||||
run_test amd64 osx x64
|
run_test amd64 osx x64
|
||||||
|
|
||||||
|
# These smartos cases have no arch-specific uname mock, so nvm_get_os falls
|
||||||
|
# through to the real host; on Alpine that host is linux and picks up the musl
|
||||||
|
# suffix, which these non-musl assertions do not expect. Skip them there.
|
||||||
|
if [ ! -f "/etc/alpine-release" ]; then
|
||||||
run_test arm64 smartos x64
|
run_test arm64 smartos x64
|
||||||
run_test armv8l smartos x64
|
run_test armv8l smartos x64
|
||||||
|
fi
|
||||||
|
|
||||||
run_test loongarch64 linux loong64
|
run_test loongarch64 linux loong64
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,13 @@ setup_chroot() {
|
|||||||
sudo mknod "${chroot_dir}/dev/null" c 1 3
|
sudo mknod "${chroot_dir}/dev/null" c 1 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# The chroot fixtures assume a glibc layout (fixed dynamic-linker path under
|
||||||
|
# /lib64, coreutils binaries). On musl Alpine that setup does not apply, and
|
||||||
|
# nvm_get_arch's musl mapping is already covered by the "nvm_get_arch alpine"
|
||||||
|
# test, so skip the chroot checks there and still run the ls-remote checks.
|
||||||
|
if [ -f "/etc/alpine-release" ]; then
|
||||||
|
echo "on Alpine; skipping chroot arch checks (covered by 'nvm_get_arch alpine')"
|
||||||
|
else
|
||||||
setup_chroot "${CHROOT_WITH_ALPINE}"
|
setup_chroot "${CHROOT_WITH_ALPINE}"
|
||||||
setup_chroot "${CHROOT_WITHOUT_ALPINE}"
|
setup_chroot "${CHROOT_WITHOUT_ALPINE}"
|
||||||
|
|
||||||
@@ -66,6 +73,7 @@ ARCH_WITH_ALPINE=$(sudo chroot "${CHROOT_WITH_ALPINE}" /bin/sh -c ". ./nvm.sh &&
|
|||||||
|
|
||||||
ARCH_WITHOUT_ALPINE=$(sudo chroot "${CHROOT_WITHOUT_ALPINE}" /bin/sh -c ". ./nvm.sh && nvm_get_arch")
|
ARCH_WITHOUT_ALPINE=$(sudo chroot "${CHROOT_WITHOUT_ALPINE}" /bin/sh -c ". ./nvm.sh && nvm_get_arch")
|
||||||
[ "${ARCH_WITHOUT_ALPINE}" != "x64-musl" ] || die "Did not expect x64-musl for non-alpine environment"
|
[ "${ARCH_WITHOUT_ALPINE}" != "x64-musl" ] || die "Did not expect x64-musl for non-alpine environment"
|
||||||
|
fi
|
||||||
|
|
||||||
# Run tests for nvm ls-remote
|
# Run tests for nvm ls-remote
|
||||||
test_default_ls_remote() {
|
test_default_ls_remote() {
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ die () { >&2 echo "$@" ; cleanup ; exit 1; }
|
|||||||
: nvm.sh
|
: nvm.sh
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
|
# v0.12.18 predates musl binaries and the expected output hardcodes the glibc
|
||||||
|
# x64 tarball URL, so on Alpine nvm would request a nonexistent -musl build.
|
||||||
|
# The progress-bar behavior is not OS-specific, so skip below the musl floor.
|
||||||
|
if [ -f "/etc/alpine-release" ]; then
|
||||||
|
echo 'on Alpine; skipping (v0.12.18 has no musl binary)'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
OUTPUT="$(TERM=dumb 2>&1 nvm install --no-progress v0.12.18)"
|
OUTPUT="$(TERM=dumb 2>&1 nvm install --no-progress v0.12.18)"
|
||||||
|
|||||||
Reference in New Issue
Block a user