18462SApril.Chin@Sun.COM#
28462SApril.Chin@Sun.COM# CDDL HEADER START
38462SApril.Chin@Sun.COM#
48462SApril.Chin@Sun.COM# The contents of this file are subject to the terms of the
58462SApril.Chin@Sun.COM# Common Development and Distribution License (the "License").
68462SApril.Chin@Sun.COM# You may not use this file except in compliance with the License.
78462SApril.Chin@Sun.COM#
88462SApril.Chin@Sun.COM# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
98462SApril.Chin@Sun.COM# or http://www.opensolaris.org/os/licensing.
108462SApril.Chin@Sun.COM# See the License for the specific language governing permissions
118462SApril.Chin@Sun.COM# and limitations under the License.
128462SApril.Chin@Sun.COM#
138462SApril.Chin@Sun.COM# When distributing Covered Code, include this CDDL HEADER in each
148462SApril.Chin@Sun.COM# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
158462SApril.Chin@Sun.COM# If applicable, add the following below this CDDL HEADER, with the
168462SApril.Chin@Sun.COM# fields enclosed by brackets "[]" replaced with your own identifying
178462SApril.Chin@Sun.COM# information: Portions Copyright [yyyy] [name of copyright owner]
188462SApril.Chin@Sun.COM#
198462SApril.Chin@Sun.COM# CDDL HEADER END
208462SApril.Chin@Sun.COM#
218462SApril.Chin@Sun.COM
228462SApril.Chin@Sun.COM#
23*12068SRoger.Faulkner@Oracle.COM# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
248462SApril.Chin@Sun.COM#
258462SApril.Chin@Sun.COM
268462SApril.Chin@Sun.COM#
278462SApril.Chin@Sun.COM# Test whether the ksh93/libcmd sum builtin is compatible to
288462SApril.Chin@Sun.COM# Solaris/SystemV /usr/bin/sum
298462SApril.Chin@Sun.COM#
308462SApril.Chin@Sun.COM
3110898Sroland.mainz@nrubsig.org# test setup
328462SApril.Chin@Sun.COMfunction err_exit
338462SApril.Chin@Sun.COM{
348462SApril.Chin@Sun.COM	print -u2 -n "\t"
358462SApril.Chin@Sun.COM	print -u2 -r ${Command}[$1]: "${@:2}"
36*12068SRoger.Faulkner@Oracle.COM	(( Errors < 127 && Errors++ ))
378462SApril.Chin@Sun.COM}
388462SApril.Chin@Sun.COMalias err_exit='err_exit $LINENO'
398462SApril.Chin@Sun.COM
4010898Sroland.mainz@nrubsig.orgset -o nounset
418462SApril.Chin@Sun.COMCommand=${0##*/}
428462SApril.Chin@Sun.COMinteger Errors=0
438462SApril.Chin@Sun.COM
4410898Sroland.mainz@nrubsig.org
458462SApril.Chin@Sun.COMtypeset x
468462SApril.Chin@Sun.COM
478462SApril.Chin@Sun.COMbuiltin sum || err_exit "sum builtin not found"
488462SApril.Chin@Sun.COM
498462SApril.Chin@Sun.COM# Basic tests
508462SApril.Chin@Sun.COMx="$(print 'hello' | /usr/bin/sum)" || err_exit "/usr/bin/sum pipe failed."
518462SApril.Chin@Sun.COM[[ "$x" == "542 1" ]] || err_exit "print 'hello' | /usr/bin/sum did not return 542 1, got $x"
528462SApril.Chin@Sun.COMx="$(print 'hello' | sum)" || err_exit "sum builtin pipe failed."
538462SApril.Chin@Sun.COM[[ "$x" == "542 1" ]] || err_exit "print 'hello' | sum builtin did not return 542 1, got $x"
548462SApril.Chin@Sun.COMx="$(print 'hello' | sum -x md5)" || err_exit "sum md5 builtin pipe failed."
558462SApril.Chin@Sun.COM[[ "$x" == "b1946ac92492d2347c6235b4d2611184" ]] || err_exit "print 'hello' | sum md5 builtin did not return b1946ac92492d2347c6235b4d2611184, got $x"
568462SApril.Chin@Sun.COMx="$(print 'hello' | sum -x sha1)" || err_exit "sum sha1 builtin pipe failed."
578462SApril.Chin@Sun.COM[[ "$x" == "f572d396fae9206628714fb2ce00f72e94f2258f" ]] || err_exit "print 'hello' | sum sha1 builtin did not return f572d396fae9206628714fb2ce00f72e94f2258f, got $x"
588462SApril.Chin@Sun.COMx="$(print 'hello' | sum -x sha256)" || err_exit "sum sha256 builtin pipe failed."
598462SApril.Chin@Sun.COM[[ "$x" == "5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03" ]] || err_exit "print 'hello' | sum sha256 builtin did not return 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03, got $x"
608462SApril.Chin@Sun.COMx="$(print 'hello' | sum -x sha512)" || err_exit "sum sha512 builtin pipe failed."
618462SApril.Chin@Sun.COM[[ "$x" == "e7c22b994c59d9cf2b48e549b1e24666636045930d3da7c1acb299d1c3b7f931f94aae41edda2c2b207a36e10f8bcb8d45223e54878f5b316e7ce3b6bc019629" ]] || err_exit "print 'hello' | sum sha512 builtin did not return e7c22b994c59d9cf2b48e549b1e24666636045930d3da7c1acb299d1c3b7f931f94aae41edda2c2b207a36e10f8bcb8d45223e54878f5b316e7ce3b6bc019629, got $x"
628462SApril.Chin@Sun.COM# note that Solaris /usr/bin/cksum outputs $'3015617425\t6' (which may be a bug in Solaris /usr/bin/cksum)
638462SApril.Chin@Sun.COMx="$(print 'hello' | sum -x cksum)" || err_exit "sum cksum builtin pipe failed."
648462SApril.Chin@Sun.COM[[ "$x" == $'3015617425 6' ]] || err_exit "print 'hello' | sum cksum builtin did not return \$'3015617425 6', got $(printf "%q\n" "$x")"
658462SApril.Chin@Sun.COM
668462SApril.Chin@Sun.COM[[ "$(print 'hello'	| /usr/bin/sum)" == "$(print 'hello'	 | sum)" ]] || err_exit "sum hello != /usr/bin/sum hello"
678462SApril.Chin@Sun.COM[[ "$(print 'fish' 	| /usr/bin/sum)" == "$(print 'fish'	 | sum)" ]] || err_exit "sum fish != /usr/bin/sum fish"
688462SApril.Chin@Sun.COM[[ "$(print '12345'	| /usr/bin/sum)" == "$(print '12345'	 | sum)" ]] || err_exit "sum 12345 != /usr/bin/sum 12345"
698462SApril.Chin@Sun.COM[[ "$(print '\n\r\n \v'	| /usr/bin/sum)" == "$(print '\n\r\n \v' | sum)" ]] || err_exit "sum spaces != /usr/bin/sum spaces"
708462SApril.Chin@Sun.COM
718462SApril.Chin@Sun.COM# Test some binary files...
728462SApril.Chin@Sun.COMx="/usr/bin/ls"
738462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
748462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
758462SApril.Chin@Sun.COM
768462SApril.Chin@Sun.COMx="/usr/bin/chmod"
778462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
788462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
798462SApril.Chin@Sun.COM
808462SApril.Chin@Sun.COMx="/usr/bin/tee"
818462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
828462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
838462SApril.Chin@Sun.COM
848462SApril.Chin@Sun.COMx="/usr/bin/grep"
858462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
868462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
878462SApril.Chin@Sun.COM
888462SApril.Chin@Sun.COMx="/usr/bin/egrep"
898462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
908462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
918462SApril.Chin@Sun.COM
928462SApril.Chin@Sun.COMx="/usr/bin/awk"
938462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
948462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
958462SApril.Chin@Sun.COM
968462SApril.Chin@Sun.COMx="/usr/bin/nawk"
978462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
988462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
998462SApril.Chin@Sun.COM
1008462SApril.Chin@Sun.COMx="/usr/bin/ksh"
1018462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
1028462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
1038462SApril.Chin@Sun.COM
1048462SApril.Chin@Sun.COMx="/usr/bin/sh"
1058462SApril.Chin@Sun.COM[[ "$(cat "$x" | /usr/bin/sum)" == "$(cat "$x" | sum)" ]]	|| err_exit "pipe: /usr/bin/sum $x != sum $x"
1068462SApril.Chin@Sun.COM[[ "$(/usr/bin/sum "$x")" == "$(sum "$x")" ]]			|| err_exit "file: /usr/bin/sum $x != sum $x"
1078462SApril.Chin@Sun.COM
1088462SApril.Chin@Sun.COM
1098462SApril.Chin@Sun.COM# tests done
1108462SApril.Chin@Sun.COMexit $((Errors))
111