#!/bin/sh

# Tests for busybox applet itself.
# Copyright 2005 by Rob Landley <rob@landley.net>
# Licensed under GPL v2, see file LICENSE for details.

if [ ${#COMMAND} -eq 0 ]; then COMMAND=busybox; fi
. testing.sh

# We'll assume "cat" is built in, because we need some other command to test.

HELPDUMP=`$COMMAND`

# The gratuitous "\n"s are due to a shell idiosyncrasy: environment variables
# seem to strip trailing whitespace, which makes cmp and diff unhappy.

ln -s `which "$COMMAND"` busybox-suffix
ln -s `which "$COMMAND"` unknown

testing "busybox --help busybox" "--help busybox" "$HELPDUMP\n\n" "" ""

for i in busybox busybox-suffix
do
	# The gratuitous "\n"s are due to a shell idiosyncrasy:
	# environment variables seem to strip trailing whitespace.

	testing "$i" "" "$HELPDUMP\n\n" "" ""

	testing "$i cat" "cat" "moo" "" "moo"

	testing "$i unknown" "unknown 2>&1" \
		"unknown: applet not found\n" "" ""

	testing "$i --help" "--help 2>&1" "$HELPDUMP\n\n" "" ""

	testing "$i --help cat" "--help cat 2>&1 | grep prints" \
		"Concatenates FILE(s) and prints them to stdout.\n" "" ""

	testing "$i --help unknown" "--help unknown 2>&1" \
		"unknown: applet not found\n" "" ""

	COMMAND=./busybox-suffix
done

COMMAND="./unknown"
testing "busybox as unknown name" "2>&1" "unknown: applet not found\n" "" ""

rm -f busybox-suffix unknown

exit $FAILCOUNT
