#!/usr/bin/env roundup describe is_built before() { tmpdir=$(mktemp -d --tmpdir test-is_build.XXXXXXXXXXXX) stat=0 } after() { rm -rf -- "$tmpdir" } it_displays_help() { is_built -h >$tmpdir/stdout 2>$tmpdir/stderr [[ "$(sed 1q $tmpdir/stdout)" =~ Usage:.* ]] [[ -z "$(cat $tmpdir/stderr)" ]] } it_fails_with_0_args() { is_built >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat -gt 1 ]] [[ -z "$(cat $tmpdir/stdout)" ]] [[ -n "$(cat $tmpdir/stderr)" ]] } it_succeeds_with_1_arg() { is_built sh >$tmpdir/stdout 2>$tmpdir/stderr [[ -z "$(cat $tmpdir/stdout)" ]] [[ -z "$(cat $tmpdir/stderr)" ]] } it_returns_1_for_non_existent_package() { is_built phony-ne-package 100 >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat == 1 ]] [[ -z "$(cat $tmpdir/stdout)" ]] [[ -z "$(cat $tmpdir/stderr)" ]] } it_returns_1_for_future_packages() { # If emacs ever goes rapid release, we might need to change this :P is_built emacs 100 >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat == 1 ]] [[ -z "$(cat $tmpdir/stdout)" ]] [[ -z "$(cat $tmpdir/stderr)" ]] } it_returns_0_for_past_packages() { # If emacs ever goes rapid release, we might need to change this :P is_built emacs 1 >$tmpdir/stdout 2>$tmpdir/stderr [[ -z "$(cat $tmpdir/stdout)" ]] [[ -z "$(cat $tmpdir/stderr)" ]] }