#!/usr/bin/env roundup describe librestage before() { tmpdir=$(mktemp -d --tmpdir test-librestage.XXXXXXXXXXXX) stat=0 mkdir -p $XDG_CONFIG_HOME/libretools echo "WORKDIR='$tmpdir/workdir'" >$XDG_CONFIG_HOME/libretools/libretools.conf export HOME=$XDG_CONFIG_HOME echo 'PKGEXT=.pkg.tar.gz' > $HOME/.makepkg.conf echo "PKGDEST='$tmpdir/workdir/pkgdest'" >> $HOME/.makepkg.conf mkdir -p "$tmpdir/workdir/pkgdest" } after() { rm -rf -- "$tmpdir" "$XDG_CONFIG_HOME" } it_displays_usage_text() { rm -rf "$XDG_CONFIG_HOME" librestage -h >$tmpdir/stdout 2>$tmpdir/stderr [[ "$(sed 1q "$tmpdir/stdout")" =~ Usage:.* ]] [[ -z "$(cat "$tmpdir/stderr")" ]] } it_fails_with_0_args() { librestage >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat != 0 ]] [[ -z "$(cat "$tmpdir/stdout")" ]] [[ -n "$(cat "$tmpdir/stderr")" ]] } it_fails_with_invalid_args() { librestage -q >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat != 0 ]] [[ -z "$(cat "$tmpdir/stdout")" ]] [[ -n "$(cat "$tmpdir/stderr")" ]] } # This was an actual bug I hit with md/emacs-mdmua a long time ago; solution was # to use $(get_full_version) it_stages_split_packages_with_different_versions() { cp librestage.d/PKGBUILD-split "$tmpdir/PKGBUILD" cd "$tmpdir" makepkg librestage '~lukeshu' # peak at the PKGBUILD to get this info [[ -f $tmpdir/workdir/staging/~lukeshu/md-0.81-4-any.pkg.tar.gz ]] [[ -f $tmpdir/workdir/staging/~lukeshu/emacs-mdmua-0.72-4-any.pkg.tar.gz ]] } it_stages_packages_to_multiple_repos() { cp librestage.d/PKGBUILD-hello "$tmpdir/PKGBUILD" cd "$tmpdir" makepkg librestage repo1 repo2 repo3 [[ -f $tmpdir/workdir/staging/repo1/libretools-hello-1.0-1-any.pkg.tar.gz ]] [[ -f $tmpdir/workdir/staging/repo2/libretools-hello-1.0-1-any.pkg.tar.gz ]] [[ -f $tmpdir/workdir/staging/repo3/libretools-hello-1.0-1-any.pkg.tar.gz ]] }