mirror of
https://github.com/zdharma-continuum/zinit.git
synced 2026-09-09 23:26:31 -04:00
fix: failing zunit tests & bootstrap script
Signed-off-by: Vladislav Doster <mvdoster@gmail.com>
This commit is contained in:
parent
515688bc97
commit
d618467ff0
13
.github/workflows/tests.yaml
vendored
13
.github/workflows/tests.yaml
vendored
|
|
@ -28,7 +28,7 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: ['macos-12','ubuntu-20.04','ubuntu-22.04']
|
||||
os: ['macos-latest','ubuntu-latest']
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
|
|
@ -44,18 +44,17 @@ jobs:
|
|||
- name: "install musl"
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get clean && sudo apt-get update && sudo apt-get install \
|
||||
sudo apt-get update \
|
||||
&& sudo apt-get install \
|
||||
build-essential curl file gcc gcc-multilib glibc-source \
|
||||
libc6 libc6-dev \
|
||||
musl musl-dev musl-tools unzip zsh
|
||||
|
||||
- name: "install dependencies"
|
||||
id: install-deps
|
||||
run: brew install ncurses svn unzip zsh xz
|
||||
|
||||
- name: "install revolver"
|
||||
id: install-revolver
|
||||
run: brew install molovo/revolver/revolver
|
||||
run: |
|
||||
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||
brew install --force --overwrite gnu-sed coreutils unzip xz zsh
|
||||
|
||||
- name: "install zunit"
|
||||
id: install-zunit
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -20,5 +20,5 @@ test/
|
|||
txt/
|
||||
zmodules/
|
||||
tests/_output/
|
||||
tests/_support/zunit/
|
||||
tests/_support/tmp*
|
||||
.idea
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
allow_risky: false
|
||||
directories:
|
||||
tests: tests
|
||||
output: tests/_output
|
||||
support: tests/_support
|
||||
fail_fast: true
|
||||
verbose: true
|
||||
tests: tests
|
||||
fail_fast: false
|
||||
verbose: false
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
_annex_test_function() {
|
||||
run zinit load zdharma-continuum/${1}
|
||||
is_annex() {
|
||||
local annex="zinit-annex-${1}"
|
||||
run zinit load zdharma-continuum/${annex}
|
||||
assert ${state} equals 0
|
||||
zinit cd zdharma-continuum/${1}
|
||||
assert ${PWD}/${${1}//zinit-annex/z-a}.plugin.zsh is_file
|
||||
assert ${PWD}/${${1}//zinit-annex/z-a}.plugin.zsh is_readable
|
||||
zinit cd zdharma-continuum/${annex}
|
||||
assert ${PWD}/${${annex}//zinit-annex/z-a}.plugin.zsh is_file
|
||||
assert ${PWD}/${${annex}//zinit-annex/z-a}.plugin.zsh is_readable
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,49 +1,67 @@
|
|||
#!/usr/bin/env zsh
|
||||
setopt NO_GLOBAL_RCS NO_GLOBAL_EXPORT NO_RCS
|
||||
|
||||
# Log functions [[[
|
||||
function error(){ print -P "%F{red}ZUNIT[ERROR]: $1%f" && return 1; }
|
||||
function info() { print -P "%F{blue}ZUNIT[INFO]%f: %F{cyan}$1%f"; }
|
||||
function warn() { print -P "%F{yellow}ZUNIT[WARN]: $1%f"; }
|
||||
function error(){ print -P "%F{red}[ERROR]%f: ${1}" && return 1; }
|
||||
function info() { print -P "%F{green}[INFO]%f:%F{cyan} ${1} %f"; }
|
||||
function warn() { print -P "%F{yellow}[WARN]%f: ${1}"; }
|
||||
# ]]]
|
||||
# Create Zunit test environment [[[
|
||||
GIT_REPO=$(git rev-parse --show-toplevel)
|
||||
typeset -gAH ZINIT;
|
||||
ZINIT[HOME_DIR]="$GIT_REPO/tests/_support/zunit"; ZINIT[BIN_DIR]=$ZINIT[HOME_DIR]/zinit.git;
|
||||
ZINIT[COMPLETIONS_DIR]=$ZINIT[HOME_DIR]/completions; ZINIT[SNIPPETS_DIR]=$ZINIT[HOME_DIR]/snippets;
|
||||
ZINIT[ZCOMPDUMP_PATH]=$ZINIT[HOME_DIR]/zcompdump; ZINIT[PLUGINS_DIR]=$ZINIT[HOME_DIR]/plugins;
|
||||
|
||||
_mktemp_cmd='mktemp'
|
||||
if (( ${+commands[gmktemp]} )); then
|
||||
_mktemp_cmd='gmktemp'
|
||||
fi
|
||||
TMP_ZUNIT=$(${_mktemp_cmd} --directory --tmpdir="${GIT_REPO}/tests/_support")
|
||||
if [[ ! -d ${TMP_ZUNIT} ]]; then
|
||||
error "zunit temp dir not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
typeset -gAH ZINIT;
|
||||
ZINIT[HOME_DIR]=${TMP_ZUNIT};
|
||||
ZINIT[BIN_DIR]=$ZINIT[HOME_DIR]/zinit.git;
|
||||
ZINIT[COMPLETIONS_DIR]=$ZINIT[HOME_DIR]/completions;
|
||||
ZINIT[PLUGINS_DIR]=$ZINIT[HOME_DIR]/plugins;
|
||||
ZINIT[SNIPPETS_DIR]=$ZINIT[HOME_DIR]/snippets;
|
||||
ZINIT[ZCOMPDUMP_PATH]=$ZINIT[HOME_DIR]/zcompdump;
|
||||
ZPFX=$ZINIT[HOME_DIR]/polaris;
|
||||
|
||||
rm -rf $ZINIT[HOME_DIR]
|
||||
mkdir -p $ZINIT[HOME_DIR]
|
||||
git diff > $ZINIT[HOME_DIR]/unstaged.diff
|
||||
info 'creating test env' \
|
||||
&& git clone \
|
||||
--dissociate \
|
||||
--local \
|
||||
--no-hardlinks \
|
||||
--reference "$GIT_REPO" \
|
||||
"$GIT_REPO" \
|
||||
"$GIT_REPO"/tests/_support/zunit/zinit.git \
|
||||
|| error 'failed to create zinit copy for test env' \
|
||||
&& [[ -s $ZINIT[HOME_DIR]/unstaged.diff ]] \
|
||||
&& git -C $ZINIT[BIN_DIR] apply $ZINIT[HOME_DIR]/unstaged.diff \
|
||||
&& info 'installing zinit' \
|
||||
&& command chmod g-rwX $ZINIT[HOME_DIR] \
|
||||
&& zcompile $ZINIT[BIN_DIR]/zinit.zsh \
|
||||
&& info 'successfully created zunit env' \
|
||||
|| error 'failed to create zunit env'
|
||||
command git diff > ${ZINIT[HOME_DIR]}/unstaged.diff
|
||||
info 'creating test env'
|
||||
git clone \
|
||||
--dissociate \
|
||||
--local \
|
||||
--no-hardlinks \
|
||||
--reference "${GIT_REPO}" \
|
||||
"${GIT_REPO}" \
|
||||
"${ZINIT[BIN_DIR]}"
|
||||
if (( $? != 0 )); then
|
||||
error "Unable to copy ${GIT_REPO} to ${TMP_ZUNIT}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source $ZINIT[BIN_DIR]/zinit.zsh \
|
||||
&& autoload -Uz _zinit \
|
||||
&& (( ${+_comps} )) \
|
||||
&& _comps[zinit]=_zinit
|
||||
if [[ -s $ZINIT[HOME_DIR]/unstaged.diff ]]; then
|
||||
(
|
||||
git -C $ZINIT[BIN_DIR] apply $ZINIT[HOME_DIR]/unstaged.diff && \
|
||||
chmod g-rwX "${ZINIT[HOME_DIR]}" && \
|
||||
zcompile "${ZINIT[BIN_DIR]}/zinit.zsh"
|
||||
)
|
||||
fi
|
||||
(( $? != 0 )) && { error "Unable to copy ${GIT_REPO} to ${TMP_ZUNIT}" >&2; exit 1 }
|
||||
|
||||
{
|
||||
source $ZINIT[BIN_DIR]/zinit.zsh && \
|
||||
autoload -Uz _zinit && \
|
||||
(( ${+_comps} )) && \
|
||||
_comps[zinit]=_zinit
|
||||
}
|
||||
(( $? != 0 )) && { error "Unable to copy ${GIT_REPO} to ${TMP_ZUNIT}" >&2; exit 1 }
|
||||
# ]]]
|
||||
# Install Annexes [[[
|
||||
info 'installing test dependencies'
|
||||
# ver'fix/improve-lbin-logic' \
|
||||
zinit depth'1' light-mode for \
|
||||
zdharma-continuum/zinit-annex-binary-symlink \
|
||||
zdharma-continuum/zinit-annex-{'bin-gem-node','default-ice'}
|
||||
zinit depth'1' light-mode for zdharma-continuum/zinit-annex-{'binary-symlink','default-ice'}
|
||||
# ]]]
|
||||
|
||||
# vim:ft=zsh:sw=2:sts=2:et:foldmarker=[[[,]]]:foldmethod=marker
|
||||
|
|
|
|||
|
|
@ -1,63 +1,41 @@
|
|||
#!/usr/bin/env zunit
|
||||
|
||||
@setup {
|
||||
load $PWD/tests/_support/annex_test_assertions
|
||||
load "${PWD}/tests/_support/annex_test_assertions"
|
||||
}
|
||||
|
||||
# TEST: zinit-annex-bin-gem-node
|
||||
@test 'zinit-annex-bin-gem-node' {
|
||||
local annex="zinit-annex-bin-gem-node"
|
||||
_annex_test_function $annex
|
||||
is_annex "bin-gem-node"
|
||||
}
|
||||
# TEST: zinit-annex-binary-symlink
|
||||
@test 'zinit-annex-binary-symlink' {
|
||||
local annex="zinit-annex-binary-symlink"
|
||||
_annex_test_function $annex
|
||||
is_annex "binary-symlink"
|
||||
}
|
||||
# TEST: zinit-annex-man
|
||||
@test 'zinit-annex-man' {
|
||||
local annex="zinit-annex-man"
|
||||
_annex_test_function $annex
|
||||
is_annex "man"
|
||||
}
|
||||
# TEST: zinit-annex-meta-plugins
|
||||
@test 'zinit-annex-meta-plugins' {
|
||||
local annex="zinit-annex-test"
|
||||
_annex_test_function $annex
|
||||
is_annex "meta-plugins"
|
||||
}
|
||||
# TEST: zinit-annex-patch-dl
|
||||
@test 'zinit-annex-patch-dl' {
|
||||
local annex="zinit-annex-patch-dl"
|
||||
_annex_test_function $annex
|
||||
is_annex "patch-dl"
|
||||
}
|
||||
# TEST: zinit-annex-pull
|
||||
@test 'zinit-annex-pull' {
|
||||
local annex="zinit-annex-pull"
|
||||
_annex_test_function $annex
|
||||
is_annex 'pull'
|
||||
}
|
||||
# TEST: zinit-annex-readurl
|
||||
@test 'zinit-annex-readurl' {
|
||||
local annex="zinit-annex-readurl"
|
||||
_annex_test_function $annex
|
||||
is_annex 'readurl'
|
||||
}
|
||||
# TEST: zinit-annex-rust
|
||||
@test 'zinit-annex-rust' {
|
||||
local annex="zinit-annex-rust"
|
||||
_annex_test_function $annex
|
||||
is_annex 'rust'
|
||||
}
|
||||
# TEST: zinit-annex-submods
|
||||
@test 'zinit-annex-submods' {
|
||||
local annex="zinit-annex-submods"
|
||||
_annex_test_function $annex
|
||||
is_annex 'submods'
|
||||
}
|
||||
# TEST: zinit-annex-test
|
||||
@test 'zinit-annex-test' {
|
||||
local annex="zinit-annex-test"
|
||||
_annex_test_function $annex
|
||||
is_annex 'test'
|
||||
}
|
||||
# TEST: zinit-annex-unscope
|
||||
@test 'zinit-annex-unscope' {
|
||||
local annex="zinit-annex-test"
|
||||
_annex_test_function $annex
|
||||
is_annex 'unscope'
|
||||
}
|
||||
|
||||
# vim:ft=zsh:sw=2:sts=2:et:foldmarker=TEST,}:foldmethod=marker
|
||||
# vim:ft=zsh:sw=2:sts=2:et:foldmarker={,}:foldmethod=marker
|
||||
|
|
|
|||
145
tests/gh-r.zunit
145
tests/gh-r.zunit
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/env zunit
|
||||
|
||||
@setup {
|
||||
zinit default-ice as'null' from"gh-r" lbin'!' nocompile nocompletions
|
||||
ZBIN=$ZPFX/bin
|
||||
zinit default-ice --quiet from'gh-r' nocompile lbin'!'
|
||||
ZBIN="${ZPFX}/bin"
|
||||
}
|
||||
|
||||
@test 'act' { # Run your GitHub Actions locally
|
||||
|
|
@ -31,11 +31,12 @@
|
|||
local assh="$ZBIN/assh"; assert "$assh" is_executable
|
||||
$assh --version; assert $state equals 0
|
||||
}
|
||||
# @test 'atmos' { # Universal Tool for DevOps and Cloud Automation (works with terraform, helm, helmfile, etc)
|
||||
# run zinit for lbin'!* -> atmos' @cloudposse/atmos; assert $state equals 0
|
||||
# local atmos="$ZBIN/atmos"; assert "$atmos" is_executable
|
||||
# $atmos version; assert $state equals 0
|
||||
# }
|
||||
@test 'atmos' { # Universal Tool for DevOps and Cloud Automation (works with terraform, helm, helmfile, etc)
|
||||
skip 'null'
|
||||
# run zinit for lbin'!* -> atmos' @cloudposse/atmos; assert $state equals 0
|
||||
# local atmos="$ZBIN/atmos"; assert "$atmos" is_executable
|
||||
# $atmos version; assert $state equals 0
|
||||
}
|
||||
@test 'atuin' { # Magical shell history
|
||||
run zinit for @ellie/atuin; assert $state equals 0
|
||||
local atuin="$ZBIN/atuin"; assert "$atuin" is_executable
|
||||
|
|
@ -63,26 +64,23 @@
|
|||
$bazel --version; assert $state equals 0
|
||||
}
|
||||
# TODO: gh-r does not find older assets anymore (possible bug from https://github.com/zdharma-continuum/zinit/pull/373)
|
||||
# @test 'bit' { # A tool for composable software development
|
||||
# run zinit lbin'!* -> bit' for @teambit/bit; assert $state equals 0
|
||||
# local bit="$ZBIN/bit"; assert "$bit" is_executable
|
||||
# $bit --version; assert $state equals 0
|
||||
# }
|
||||
@test 'bit' { # A tool for composable software development
|
||||
skip 'skip bit test due to gh-r version bug'
|
||||
run zinit lbin'!bit* -> bit' for @teambit/bit; assert $state equals 0
|
||||
local bit="$ZBIN/bit"; assert "$bit" is_executable
|
||||
$bit --version; assert $state equals 0
|
||||
}
|
||||
@test 'blast' { # Blast is a simple tool for API load testing and batch jobs
|
||||
[[ $OSTYPE =~ 'darwin*' ]] && skip 'Blast test skipped on Darwin'
|
||||
run zinit for @dave/blast; assert $state equals 0
|
||||
local blast="$ZBIN/blast"; assert "$blast" is_executable
|
||||
$blast --dry; assert $state equals 0
|
||||
$blast --dry=1; assert $state equals 0
|
||||
}
|
||||
@test 'boilr' { # boilerplate template manager that generates files or directories from template repositories
|
||||
run zinit for @tmrts/boilr
|
||||
assert $state equals 0
|
||||
[[ $OSTYPE =~ 'darwin*' ]] \
|
||||
&& assert "$output" contains 'darwin' \
|
||||
&& pass
|
||||
local boilr="$ZBIN/boilr"
|
||||
assert "$boilr" is_executable
|
||||
$boilr --help
|
||||
assert $state equals 0
|
||||
run zinit for @tmrts/boilr; assert $state equals 0
|
||||
local boilr="$ZBIN/boilr"; assert "$boilr" is_executable
|
||||
[[ $OSTYPE =~ 'darwin*' ]] && assert "$output" contains "darwin_amd64" && pass
|
||||
$boilr --help; assert $state equals 0
|
||||
}
|
||||
@test 'bottom' { # Yet another cross-platform graphical process/system monitor
|
||||
run zinit lbin'!**/btm' for ClementTsang/bottom; assert $state equals 0
|
||||
|
|
@ -110,28 +108,23 @@
|
|||
$checkmake --version; assert $state equals 0
|
||||
}
|
||||
@test 'cog' { # Containers for machine learning
|
||||
run zinit lbin'!cog* -> cog' for replicate/cog; assert $state equals 0
|
||||
run zinit lbin'!cog* -> cog' for @replicate/cog; assert $state equals 0
|
||||
local cog="$ZBIN/cog"; assert "$cog" is_executable
|
||||
$cog --version; assert $state equals 0
|
||||
}
|
||||
@test 'compress' { # Optimized Go Compression Packages
|
||||
run zinit bpick'*.tar.gz' lbin'!s2c;s2d;s2sx;' for klauspost/compress; assert $state equals 0
|
||||
run zinit bpick'*.tar.gz' lbin'!s2c;s2d;s2sx;' for @klauspost/compress; assert $state equals 0
|
||||
local compress="$ZBIN/s2c"; assert "$compress" is_executable
|
||||
$compress --help; assert $state equals 0
|
||||
}
|
||||
@test 'create-go-app' { # Create a new production-ready project with backend, frontend and deploy automation by running one CLI command
|
||||
run zinit lbin'!**/cgapp' for create-go-app/cli
|
||||
assert $state equals 0
|
||||
[[ $OSTYPE =~ 'darwin*' && $(uname -p) == 'arm' ]] \
|
||||
&& assert "$output" contains 'macOS' \
|
||||
&& pass
|
||||
local cgapp="$ZBIN/cgapp"
|
||||
assert "$cgapp" is_executable
|
||||
$cgapp --version
|
||||
assert $state equals 0
|
||||
run zinit for id-as'cgapp' @create-go-app/cli; assert $state equals 0
|
||||
local cgapp="$ZBIN/cgapp"; assert "$cgapp" is_executable
|
||||
[[ $OSTYPE =~ 'darwin*' ]] && assert "$output" contains "macOS_$(uname -m)" && pass
|
||||
$cgapp --version; assert $state equals 0
|
||||
}
|
||||
@test 'csview' { # Pretty csv viewer for cli with cjk/emoji support.
|
||||
run zinit for wfxr/csview; assert $state equals 0
|
||||
@test 'csview' { # Pretty csv viewer for cli with cjk/emoji support
|
||||
run zinit for @wfxr/csview; assert $state equals 0
|
||||
local csview="$ZBIN/csview"; assert "$csview" is_executable
|
||||
$csview --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -146,8 +139,7 @@
|
|||
$dive --version; assert $state equals 0
|
||||
}
|
||||
@test 'docker-buildx' { # A monitor of resources
|
||||
run zinit for as'completions' atclone'./buildx* completion zsh > _buildx' lbin'!buildx-* -> buildx' @docker/buildx
|
||||
assert $state equals 0
|
||||
run zinit for lbin'!* -> buildx' @docker/buildx; assert $state equals 0
|
||||
local buildx="$ZBIN/buildx"; assert "$buildx" is_executable
|
||||
$buildx version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -157,7 +149,7 @@
|
|||
$dc --version; assert $state equals 0
|
||||
}
|
||||
@test 'docker-credential-helpers' { # A monitor of resources
|
||||
[[ $OSTYPE =~ 'linux*' ]] && skip 'docker-credential-helpers test skipped on Linux'
|
||||
[[ $OSTYPE =~ 'linux*' ]] && skip 'skipped on Linux'
|
||||
run zinit for lbin'!* -> docker-credential-desktop' @docker/docker-credential-helpers; assert $state equals 0
|
||||
local credential_desktop="$ZBIN/docker-credential-desktop"; assert "$credential_desktop" is_executable
|
||||
$credential_desktop version; assert $state equals 0
|
||||
|
|
@ -193,7 +185,7 @@
|
|||
$etcd --version; assert $state equals 0
|
||||
}
|
||||
@test 'exa' { # A modern replacement for ls
|
||||
run zinit lbin'!**/exa' for ogham/exa; assert $state equals 0
|
||||
run zinit lbin'!**/exa' for @ogham/exa; assert $state equals 0
|
||||
local exa="$ZBIN/exa"; assert "$exa" is_executable
|
||||
$exa --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -218,7 +210,7 @@
|
|||
$fzf --version; assert $state equals 0
|
||||
}
|
||||
@test 'gaper' { # Builds and restarts a Go project when it crashes or some watched file changes
|
||||
if [[ ! $OSTYPE =~ 'linux.*' ]]; then skip 'maxcnunes/gaper only tested for Linux/GNU'; fi
|
||||
if [[ ! $OSTYPE =~ 'linux.*' ]]; then skip 'null'; fi
|
||||
run zinit lbin'!**/gaper' for @maxcnunes/gaper; assert $state equals 0
|
||||
local gaper="$ZBIN/gaper"; assert "$gaper" is_executable
|
||||
$gaper --version; assert $state equals 0
|
||||
|
|
@ -239,7 +231,7 @@
|
|||
$git_sizer --version; assert $state equals 0
|
||||
}
|
||||
@test 'gh-cli' { # GitHub’s official command line tool
|
||||
run zinit lbin'!**/gh' for cli/cli; assert $state equals 0
|
||||
run zinit lbin'!**/gh' for @cli/cli; assert $state equals 0
|
||||
local gh_cli="$ZBIN/gh"; assert "$gh_cli" is_executable
|
||||
$gh_cli --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -331,7 +323,7 @@
|
|||
$gron --version; assert $state equals 0
|
||||
}
|
||||
@test 'hadolint' { # Dockerfile linter, validate inline bash, written in Haskell
|
||||
run zinit lbin'!* -> hadolint' for @hadolint/hadolint; assert $state equals 0
|
||||
run zinit ver'v2.12.1-beta' lbin'!hadolint* -> hadolint' for @hadolint/hadolint; assert $state equals 0
|
||||
local hadolint="$ZBIN/hadolint"; assert "$hadolint" is_executable
|
||||
$hadolint --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -362,7 +354,7 @@
|
|||
local hoofli="$ZBIN/hoofli"; assert "$hoofli" is_executable
|
||||
$hoofli -h; assert $state equals 0
|
||||
}
|
||||
@test 'hors' { # instant coding answers via the command line (howdoi in rust)
|
||||
@test 'hors' { # instant coding answers via the command line
|
||||
if [[ $OSTYPE =~ 'linux.*' ]]; then skip 'WindSoilder/hors only tested for macOS'; fi
|
||||
run zinit for @WindSoilder/hors; assert $state equals 0
|
||||
local hors="$ZBIN/hors"; assert "$hors" is_executable
|
||||
|
|
@ -379,7 +371,7 @@
|
|||
$igo version; assert $state equals 0
|
||||
}
|
||||
@test 'insect' { # High precision scientific calculator with support for physical units
|
||||
run zinit lbin'!* -> insect' for @sharkdp/insect; assert $state equals 0
|
||||
run zinit ver'v5.7.0' lbin'!* -> insect' for @sharkdp/insect; assert $state equals 0
|
||||
local insect="$ZBIN/insect"; assert "$insect" is_executable
|
||||
$insect help; assert $state equals 0
|
||||
}
|
||||
|
|
@ -394,18 +386,18 @@
|
|||
$jq --version; assert $state equals 0
|
||||
}
|
||||
@test 'just' { # Just a command runner
|
||||
run zinit for casey/just; assert $state equals 0
|
||||
run zinit for @casey/just; assert $state equals 0
|
||||
local just="$ZBIN/just"; assert "$just" is_executable
|
||||
$just --version; assert $state equals 0
|
||||
}
|
||||
@test 'keepassxc' { # a cross-platform community-driven port of the Windows application 'Keepass Password Safe'
|
||||
if [[ $OSTYPE =~ 'linux.*' ]]; then skip 'keepassxc test only ran on macOS'; fi
|
||||
@test 'keepassxc' { # a cross-platform community-driven port of the Windows application Keepass Password Safe
|
||||
[[ $OSTYPE =~ 'linux.*' ]] && skip 'null'
|
||||
run zinit for @keepassxreboot/keepassxc; assert $state equals 0
|
||||
local keepassxc="$ZBIN/keepassxc"; assert "$keepassxc" is_executable
|
||||
$keepassxc -v; assert $state equals 0
|
||||
}
|
||||
@test 'ko' { # Build and deploy Go applications on Kubernetes
|
||||
run zinit for ko-build/ko; assert $state equals 0
|
||||
run zinit for @ko-build/ko; assert $state equals 0
|
||||
local ko="$ZBIN/ko"; assert "$ko" is_executable
|
||||
$ko version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -420,7 +412,7 @@ $kopia --version; assert $state equals 0
|
|||
$krew version; assert $state equals 0
|
||||
}
|
||||
@test 'lazygit' { # simple terminal UI for git commands
|
||||
run zinit for jesseduffield/lazygit; assert $state equals 0
|
||||
run zinit for @jesseduffield/lazygit; assert $state equals 0
|
||||
local lazygit="$ZBIN/lazygit"; assert "$lazygit" is_executable
|
||||
$lazygit --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -435,13 +427,13 @@ $kopia --version; assert $state equals 0
|
|||
$lsd --version; assert $state equals 0
|
||||
}
|
||||
@test 'lnav' { # advanced log file viewer
|
||||
run zinit for tstack/lnav; assert $state equals 0
|
||||
run zinit for @tstack/lnav; assert $state equals 0
|
||||
local lnav="$ZBIN/lnav"; assert "$lnav" is_executable
|
||||
$lnav --version; assert $state equals 0
|
||||
}
|
||||
@test 'lstf' { # The aggregated TCP flows printer in Linux
|
||||
if [[ ! $OSTYPE =~ 'linux.*' ]]; then skip 'lstf test only ran on Linux'; fi
|
||||
run zinit for yuuki/lstf; assert $state equals 0
|
||||
[[ ! $OSTYPE =~ 'linux.*' ]] && skip 'null'
|
||||
run zinit for @yuuki/lstf; assert $state equals 0
|
||||
local lstf="$ZBIN/lstf"; assert "$lstf" is_executable
|
||||
$lstf --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -451,18 +443,18 @@ $kopia --version; assert $state equals 0
|
|||
$mage -version; assert $state equals 0
|
||||
}
|
||||
@test 'mas' { # Mac App Store command line interface
|
||||
if [[ ! $OSTYPE =~ 'darwin.*' ]]; then skip 'mas test only ran on macOS'; fi
|
||||
[[ ! $OSTYPE =~ 'darwin.*' ]] && skip 'null'
|
||||
run zinit lbin'!**/bin/mas' for @mas-cli/mas; assert $state equals 0
|
||||
local mas="$ZBIN/mas"; assert "$mas" is_executable
|
||||
$mas version; assert $state equals 0
|
||||
}
|
||||
@test 'mdbook' { # Create book from markdown files. Like Gitbook but implemented in Rust
|
||||
run zinit for rust-lang/mdBook; assert $state equals 0
|
||||
run zinit for @rust-lang/mdBook; assert $state equals 0
|
||||
local mdbook="$ZBIN/mdbook"; assert "$mdbook" is_executable
|
||||
$mdbook --version; assert $state equals 0
|
||||
}
|
||||
@test 'micro' { # A modern and intuitive terminal-based text editor
|
||||
run zinit for zyedidia/micro; assert $state equals 0
|
||||
run zinit for @zyedidia/micro; assert $state equals 0
|
||||
local micro="$ZBIN/micro"; assert "$micro" is_executable
|
||||
$micro --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -472,7 +464,7 @@ $kopia --version; assert $state equals 0
|
|||
$mkcert --version; assert $state equals 0
|
||||
}
|
||||
@test 'mmake' { # A Make/rake-like dev tool using Go
|
||||
run zinit for ver'v1.3.0' lbin'!* -> mmake' @tj/mmake; assert $state equals 0
|
||||
run zinit for ver'v1.4.0' @tj/mmake; assert $state equals 0
|
||||
local mmake="$ZBIN/mmake"; assert "$mmake" is_executable
|
||||
$mmake --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -497,23 +489,24 @@ $kopia --version; assert $state equals 0
|
|||
$moonwalk --version; assert $state equals 0
|
||||
}
|
||||
@test 'navi' { # Declarative, asynchronous routing for React
|
||||
run zinit for denisidoro/navi && assert $state equals 0
|
||||
run zinit for @denisidoro/navi && assert $state equals 0
|
||||
local navi="$ZBIN/navi" && assert "$navi" is_executable
|
||||
$navi --version && assert $state equals 0
|
||||
}
|
||||
# @test 'neovim::appimage' { # Vim-fork focused on extensibility and usability
|
||||
# run zinit bpick'*appimage*' id-as'neovim/appimage' for neovim/neovim
|
||||
# assert $state equals 0; assert $output contains 'nvim.appimage'
|
||||
# assert "$ZINIT[PLUGINS_DIR]/neovim---appimage/nvim.appimage" is_file
|
||||
# }
|
||||
# @test 'neovim::binary' { # Vim-fork focused on extensibility and usability
|
||||
# [[ $OSTYPE =~ 'darwin*' ]] && skip 'Neovim realease binary broken for macOS as of May 3rd, 2022'
|
||||
# run zinit lbin'!**/nvim' id-as'neovim/binary' for neovim/neovim; assert $state equals 0; assert $output does_not_contain 'appimage'
|
||||
# local nvim="$ZBIN/nvim"; assert "$nvim" is_executable
|
||||
# $nvim --version; assert $state equals 0
|
||||
# }
|
||||
@test 'neovim::appimage' { # Vim-fork focused on extensibility and usability
|
||||
skip 'null'
|
||||
run zinit bpick'*appimage*' id-as'neovim/appimage' for neovim/neovim
|
||||
assert $state equals 0; assert $output contains 'nvim.appimage'
|
||||
assert "$ZINIT[PLUGINS_DIR]/neovim---appimage/nvim.appimage" is_file
|
||||
}
|
||||
@test 'neovim::binary' { # Vim-fork focused on extensibility and usability
|
||||
skip 'null'
|
||||
run zinit lbin'!**/nvim' id-as'neovim/binary' for neovim/neovim; assert $state equals 0; assert $output does_not_contain 'appimage'
|
||||
local nvim="$ZBIN/nvim"; assert "$nvim" is_executable
|
||||
$nvim --version; assert $state equals 0
|
||||
}
|
||||
@test 'onefetch' { # Git repository summary on your terminal
|
||||
run zinit for o2sh/onefetch; assert $state equals 0
|
||||
run zinit for @o2sh/onefetch; assert $state equals 0
|
||||
local onefetch="$ZBIN/onefetch"; assert "$onefetch" is_executable
|
||||
$onefetch --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -590,7 +583,7 @@ $kopia --version; assert $state equals 0
|
|||
$sd --version; assert $state equals 0
|
||||
}
|
||||
@test 'shellcheck' { # a static analysis tool for shell scripts
|
||||
run zinit for koalaman/shellcheck; assert $state equals 0
|
||||
run zinit for @koalaman/shellcheck; assert $state equals 0
|
||||
local shellcheck="$ZBIN/shellcheck"; assert "$shellcheck" is_executable
|
||||
$shellcheck --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -615,7 +608,7 @@ $kopia --version; assert $state equals 0
|
|||
$tealdeer --version; assert $state equals 0
|
||||
}
|
||||
@test 'tokei' { # Count your code, quickly.
|
||||
run zinit for @XAMPPRocky/tokei; assert $state equals 0
|
||||
run zinit lbin'!*tokei -> tokei' ver'v12.1.1' for @XAMPPRocky/tokei; assert $state equals 0
|
||||
local tokei="$ZBIN/tokei"; assert "$tokei" is_executable
|
||||
$tokei --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -630,7 +623,7 @@ $kopia --version; assert $state equals 0
|
|||
$tre --version; assert $state equals 0
|
||||
}
|
||||
@test 'tv' { # A cross-platform CLI csv pretty printer that uses column styling to maximize viewer enjoyment
|
||||
run zinit for uzimaru0000/tv; assert $state equals 0
|
||||
run zinit for @uzimaru0000/tv; assert $state equals 0
|
||||
local tv="$ZBIN/tv"; assert "$tv" is_executable
|
||||
$tv --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -640,8 +633,8 @@ $kopia --version; assert $state equals 0
|
|||
run $up -h; assert $output contains "up is the Ultimate Plumber"
|
||||
}
|
||||
@test 'volta-cli' { # JS Toolchains as Code
|
||||
! [[ $OSTYPE =~ 'darwin*' ]] && skip 'Volta-cli test skipped on Linux'
|
||||
run zinit for volta-cli/volta; assert $state equals 0
|
||||
[[ "$OSTYPE" =~ 'linux*' ]] && skip 'Volta CLI skipped on Linux'
|
||||
run zinit for @volta-cli/volta; assert $state equals 0
|
||||
local volta="$ZBIN/volta"; assert "$volta" is_executable
|
||||
run $volta --version; assert $state equals 0
|
||||
}
|
||||
|
|
@ -666,8 +659,8 @@ $kopia --version; assert $state equals 0
|
|||
run $xh --version; assert $state equals 0
|
||||
}
|
||||
@test 'yabai' { # A tiling window manager for macOS based on binary space partitioning
|
||||
! [[ $OSTYPE =~ 'darwin*' ]] && skip 'Yabai test skipped on Linux'
|
||||
run zinit for koekeishiya/yabai; assert $state equals 0
|
||||
[[ $OSTYPE =~ 'linux*' ]] && skip 'Yabai skipped on Linux'
|
||||
run zinit for @koekeishiya/yabai; assert $state equals 0
|
||||
local yabai="$ZBIN/yabai"; assert "$yabai" is_executable
|
||||
$yabai --version; assert $state equals 0
|
||||
}
|
||||
|
|
|
|||
30
tests/ices.zunit
Normal file → Executable file
30
tests/ices.zunit
Normal file → Executable file
|
|
@ -2,23 +2,14 @@
|
|||
|
||||
@setup {
|
||||
ZPLUGINS=$ZINIT[PLUGINS_DIR]
|
||||
|
||||
function _zunit_assert_not_exists() {
|
||||
local pathname=$1 filepath
|
||||
|
||||
# If filepath is relative, prepend the test directory
|
||||
if [[ "${pathname:0:1}" != "/" ]]; then
|
||||
filepath="$testdir/${pathname}"
|
||||
else
|
||||
filepath="$pathname"
|
||||
function _zunit_assert_not_exists(){
|
||||
local file_path=$1
|
||||
if [[ "${file_path:0:1}" != "/" ]]; then # relative path - prepend the test directory
|
||||
filepath="${testdir}/${file_path}"
|
||||
fi
|
||||
|
||||
[[ ! -e "$filepath" ]] && return 0
|
||||
|
||||
echo "'$pathname' does exist"
|
||||
exit 1
|
||||
[[ ! -e "$file_path" ]] && return 0
|
||||
exit "found '${file_path}'"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@test 'mv' {
|
||||
|
|
@ -28,7 +19,6 @@
|
|||
assert "$ZPLUGINS/test---mv/mv.md" is_file
|
||||
assert "$ZPLUGINS/test---mv/readme.md" not_exists
|
||||
}
|
||||
|
||||
@test 'cp' {
|
||||
run zinit as"null" id-as"test/cp" cp"readme.md -> cp.md" for zdharma-continuum/null
|
||||
assert $state equals 0
|
||||
|
|
@ -36,7 +26,6 @@
|
|||
assert "$ZPLUGINS/test---cp/cp.md" is_readable
|
||||
assert "$ZPLUGINS/test---cp/readme.md" is_file
|
||||
}
|
||||
|
||||
@test 'atclone' {
|
||||
run zinit as"null" id-as"test/atclone" atclone"mv readme.md atclone.md" for zdharma-continuum/null
|
||||
assert $state equals 0
|
||||
|
|
@ -44,24 +33,23 @@
|
|||
assert "$ZPLUGINS/test---atclone/atclone.md" is_readable
|
||||
assert "$ZPLUGINS/test---atclone/readme.md" not_exists
|
||||
}
|
||||
|
||||
@test 'make' {
|
||||
run zinit as"null" id-as"test/make" atclone"printf 'all:\n\ttouch whatever\n' > Makefile" make"" for zdharma-continuum/null
|
||||
assert $state equals 0
|
||||
assert "$ZPLUGINS/test---make/whatever" is_file
|
||||
}
|
||||
|
||||
@test 'completions' {
|
||||
run zinit as"null" id-as"test/completions" atclone"touch _whatever" completions for zdharma-continuum/null
|
||||
assert $state equals 0
|
||||
assert "$ZPLUGINS/test---completions/_whatever" is_file
|
||||
assert "$ZINIT[COMPLETIONS_DIR]/_whatever" is_file
|
||||
}
|
||||
|
||||
# If both are given, the completions wins
|
||||
@test 'completions-overwrite' {
|
||||
# if both are given, the completions wins
|
||||
run zinit as"null" id-as"test/completions-overwrite" atclone"touch _whatever2" nocompletions completions for zdharma-continuum/null
|
||||
assert $state equals 0
|
||||
assert "$ZPLUGINS/test---completions-overwrite/_whatever2" is_file
|
||||
assert "$ZINIT[COMPLETIONS_DIR]/_whatever2" is_file
|
||||
}
|
||||
|
||||
# vim:ft=zsh:sw=2:sts=2:et:foldmarker=\ {,}:foldmethod=marker
|
||||
|
|
|
|||
Loading…
Reference in a new issue