#!/bin/sh

# SUSv3 compliant uniq tests.
# Copyright 2005 by Rob Landley <rob@landley.net>
# Licensed under GPL v2, see file LICENSE for details.

# AUDIT: Full SUSv3 coverage (except internationalization).

. testing.sh

# testing "test name" "options" "expected result" "file input" "stdin"
#   file input will be file called "input"
#   test can create a file "actual" instead of writing to stdout

# Test exit status

testing "uniq (exit with error)" "uniq nonexistent 2> /dev/null || echo yes" \
	"yes\n" "" ""
testing "uniq (exit success)" "uniq /dev/null && echo yes" "yes\n" "" ""

# Test various data sources and destinations

testing "uniq (default to stdin)" "uniq" "one\ntwo\nthree\n" "" \
	"one\ntwo\ntwo\nthree\nthree\nthree\n"
testing "uniq - (specify stdin)" "uniq -" "one\ntwo\nthree\n" "" \
	"one\ntwo\ntwo\nthree\nthree\nthree\n"
testing "uniq input (specify file)" "uniq input" "one\ntwo\nthree\n" \
	"one\ntwo\ntwo\nthree\nthree\nthree\n" ""

testing "uniq input outfile (two files)" "uniq input actual > /dev/null" \
	"one\ntwo\nthree\n" "one\ntwo\ntwo\nthree\nthree\nthree\n" ""
testing "uniq (stdin) outfile" "uniq - actual" \
	"one\ntwo\nthree\n" "" "one\ntwo\ntwo\nthree\nthree\nthree\n"
# Note: SUSv3 doesn't seem to require support for "-" output, but we do anyway.
testing "uniq input - (specify stdout)" "uniq input -" \
	"one\ntwo\nthree\n" "one\ntwo\ntwo\nthree\nthree\nthree\n" ""


#-f skip fields
#-s skip chars
#-c occurrences
#-d dups only
#-u

# Test various command line options

# Leading whitespace is a minor technical violation of the spec,
# but since gnu does it...
testing "uniq -c (occurrence count)" "uniq -c | sed 's/^[ \t]*//'" \
	"1 one\n2 two\n3 three\n" "" \
	"one\ntwo\ntwo\nthree\nthree\nthree\n"
testing "uniq -d (dups only) " "uniq -d" "two\nthree\n" "" \
	"one\ntwo\ntwo\nthree\nthree\nthree\n"

testing "uniq -f -s (skip fields and chars)" "uniq -f2 -s 3" \
"cc	dd	ee8
aa	bb	cc9
" "" \
"cc	dd	ee8
bb	cc	dd8
aa	bb	cc9
"

# -d is "Suppress the writing fo lines that are not repeated in the input."
# -u is "Suppress the writing of lines that are repeated in the input."
# Therefore, together this means they should produce no output.
testing "uniq -u and -d produce no output" "uniq -d -u" "" "" \
	"one\ntwo\ntwo\nthree\nthree\nthree\n"

exit $FAILCOUNT
