#!/usr/bin/env roundup describe librerelease . ./test-common.sh before() { common_before install -Dm644 /dev/stdin "$XDG_CONFIG_HOME/libretools/libretools.conf" <<-eot WORKDIR=${tmpdir@Q}/workdir REPODEST=ssh://repo@repo.parabola.nu:1863/~/staging/$LIBREUSER/staging/ eot install -Dm644 /dev/stdin "$XDG_CONFIG_HOME/pacman/makepkg.conf" <<-eot PKGEXT=.pkg.tar.gz PKGDEST=${tmpdir@Q}/workdir/pkgdest GPGKEY=YOURKEY eot mkdir -p "$tmpdir/workdir/pkgdest" } it_displays_usage_text() { rm -rf "$XDG_CONFIG_HOME" LC_ALL=C librerelease -h >"$tmpdir/stdout" 2>"$tmpdir/stderr" [[ "$(sed 1q "$tmpdir/stdout")" =~ Usage:.* ]] empty "$tmpdir/stderr" } it_lists_all_files() { WORKDIR="$tmpdir/workdir" mkdir -p "$WORKDIR/staging/repo1" "$WORKDIR/staging/repo2/sub" touch \ "$WORKDIR/staging/repo1/file1" \ "$WORKDIR/staging/repo1/file2" \ "$WORKDIR/staging/repo2/file with spaces" \ "$WORKDIR/staging/repo2/sub/subfolder" unset WORKDIR LC_ALL=C librerelease -l &>"$tmpdir/list" cat > "$tmpdir/list-correct" <<-eot -> repo1 file1 file2 -> repo2 file with spaces sub/subfolder eot diff "$tmpdir/list-correct" "$tmpdir/list" } it_fails_if_gpgkey_not_set() { echo 'unset GPGKEY' >> "$XDG_CONFIG_HOME"/pacman/makepkg.conf WORKDIR="$tmpdir/workdir" mkdir -p "$WORKDIR/staging/repo1" "$WORKDIR/staging/repo2/sub" touch \ "$WORKDIR/staging/repo1/file1" \ "$WORKDIR/staging/repo1/file2" \ "$WORKDIR/staging/repo2/file with spaces" \ "$WORKDIR/staging/repo2/sub/subfolder" unset WORKDIR LC_ALL=C librerelease -l >"$tmpdir/stdout" 2>"$tmpdir/stderr" || status=$? [[ $status != 0 ]] empty "$tmpdir/stdout" grep GPGKEY "$tmpdir/stderr" }