diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2013-06-01 15:54:05 -0600 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2013-06-05 20:01:05 -0600 |
commit | c129ad75fceba7eb980874bb15954a1889d1f33a (patch) | |
tree | 363642b588f24cc7eee97a332bff054964c109d4 | |
parent | e25ea3cdf25c061de02507f11265730ca74ab7e7 (diff) |
Add tests for librechroot's help system, make them pass.
They didn't pass because on several errors it printed to stdout, not stderr
-rwxr-xr-x | src/chroot-tools/librechroot | 5 | ||||
-rw-r--r-- | test/librechroot-test.sh | 40 |
2 files changed, 43 insertions, 2 deletions
diff --git a/src/chroot-tools/librechroot b/src/chroot-tools/librechroot index 80c7f4f..ca76569 100755 --- a/src/chroot-tools/librechroot +++ b/src/chroot-tools/librechroot @@ -133,13 +133,13 @@ main() { } ;; C|M) archroot_args+=(-$arg "$OPTARG");; - *) usage; return 1;; + *) usage >/dev/stderr; return 1;; esac done shift $(($OPTIND - 1)) if [[ $# < 1 ]]; then error "Must specify a command" - usage + usage >/dev/stderr return 1 fi mode=$1 @@ -243,6 +243,7 @@ main() { ;; *) error "Unrecognized command: \`$mode'" + usage >/dev/stderr return 1 ;; esac diff --git a/test/librechroot-test.sh b/test/librechroot-test.sh index d8f7299..c9fa130 100644 --- a/test/librechroot-test.sh +++ b/test/librechroot-test.sh @@ -6,6 +6,7 @@ before() { tmpdir=$(mktemp -d --tmpdir test-librechroot.XXXXXXXXXXXX) mkdir -p "$XDG_CONFIG_HOME"/libretools echo "CHROOTDIR='$tmpdir'" > "$XDG_CONFIG_HOME"/libretools/chroot.conf + stat=0 } after() { @@ -15,3 +16,42 @@ after() { it_creates_repo_for_new_chroots() { sudo librechroot run test -r /repo/repo.db } + +it_displays_help_as_normal_user() { + librechroot help >$tmpdir/stdout 2>$tmpdir/stderr + + [[ "$(sed 1q $tmpdir/stdout)" =~ Usage:.* ]] + [[ -z "$(cat $tmpdir/stderr)" ]] +} + +it_otherwise_fails_as_normal_user() { + librechroot run true >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? + + [[ $stat != 0 ]] + [[ -z "$(cat $tmpdir/stdout)" ]] + [[ -n "$(cat $tmpdir/stderr)" ]] +} + +it_displays_help_and_fails_with_0_args() { + librechroot >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? + + [[ $stat != 0 ]] + [[ -z "$(cat $tmpdir/stdout)" ]] + [[ "$(sed 1q $tmpdir/stderr)" =~ Usage:.* ]] +} + +it_fails_for_unknown_commands() { + sudo librechroot phony >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? + + [[ $stat != 0 ]] + [[ -z "$(cat $tmpdir/stdout)" ]] + [[ -n "$(cat $tmpdir/stderr)" ]] +} + +it_fails_for_unknown_flags() { + sudo librechroot -q >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? + + [[ $stat != 0 ]] + [[ -z "$(cat $tmpdir/stdout)" ]] + [[ -n "$(cat $tmpdir/stderr)" ]] +} |