1*45d3dd98SRobert Mustacchi#! /usr/bin/ksh
2*45d3dd98SRobert Mustacchi#
3*45d3dd98SRobert Mustacchi#
4*45d3dd98SRobert Mustacchi# This file and its contents are supplied under the terms of the
5*45d3dd98SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0.
6*45d3dd98SRobert Mustacchi# You may only use this file in accordance with the terms of version
7*45d3dd98SRobert Mustacchi# 1.0 of the CDDL.
8*45d3dd98SRobert Mustacchi#
9*45d3dd98SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this
10*45d3dd98SRobert Mustacchi# source.  A copy of the CDDL is also available via the Internet at
11*45d3dd98SRobert Mustacchi# http://www.illumos.org/license/CDDL.
12*45d3dd98SRobert Mustacchi#
13*45d3dd98SRobert Mustacchi
14*45d3dd98SRobert Mustacchi#
15*45d3dd98SRobert Mustacchi# Copyright (c) 2017, Joyent, Inc.
16*45d3dd98SRobert Mustacchi#
17*45d3dd98SRobert Mustacchi
18*45d3dd98SRobert Mustacchi#
19*45d3dd98SRobert Mustacchi# Run all of the various libsff tests.
20*45d3dd98SRobert Mustacchi#
21*45d3dd98SRobert Mustacchi
22*45d3dd98SRobert Mustacchiunalias -a
23*45d3dd98SRobert Mustacchisff_arg0=$(basename $0)
24*45d3dd98SRobert Mustacchisff_origwd=
25*45d3dd98SRobert Mustacchisff_root=
26*45d3dd98SRobert Mustacchisff_tests="8472 br compliance conn enc ident lengths opts strings wave"
27*45d3dd98SRobert Mustacchisff_tests="$sff_tests 8636_diag 8636_extspec 8636_tech 8636_temp einval efault"
28*45d3dd98SRobert Mustacchisff_outfile="/tmp/$sff_arg0.out.$$"
29*45d3dd98SRobert Mustacchi
30*45d3dd98SRobert Mustacchifatal()
31*45d3dd98SRobert Mustacchi{
32*45d3dd98SRobert Mustacchi	typeset msg="$*"
33*45d3dd98SRobert Mustacchi	[[ -z "$msg" ]] && msg="failed"
34*45d3dd98SRobert Mustacchi	echo "TEST FAILED: $sff_arg0: $msg" >&2
35*45d3dd98SRobert Mustacchi	rm -f $sff_outfile
36*45d3dd98SRobert Mustacchi	exit 1
37*45d3dd98SRobert Mustacchi}
38*45d3dd98SRobert Mustacchi
39*45d3dd98SRobert Mustacchisff_origwd=$PWD
40*45d3dd98SRobert Mustacchicd $(dirname $0) || fatal "failed to cd to test root"
41*45d3dd98SRobert Mustacchisff_root=$PWD
42*45d3dd98SRobert Mustacchicd $dt_origwd || fatal "failed to return to original dir"
43*45d3dd98SRobert Mustacchi
44*45d3dd98SRobert Mustacchifor t in $sff_tests; do
45*45d3dd98SRobert Mustacchi	difffile=
46*45d3dd98SRobert Mustacchi	testfile=$sff_root/libsff_$t
47*45d3dd98SRobert Mustacchi
48*45d3dd98SRobert Mustacchi	if ! $testfile > $sff_outfile; then
49*45d3dd98SRobert Mustacchi		fatal "failed to run $testfile"
50*45d3dd98SRobert Mustacchi	fi
51*45d3dd98SRobert Mustacchi
52*45d3dd98SRobert Mustacchi	if [[ -f $testfile.out ]]; then
53*45d3dd98SRobert Mustacchi		if ! diff $testfile.out $sff_outfile >/dev/null; then
54*45d3dd98SRobert Mustacchi			fatal "$t results differ from expected values"
55*45d3dd98SRobert Mustacchi		fi
56*45d3dd98SRobert Mustacchi	fi
57*45d3dd98SRobert Mustacchi	printf "TEST PASSED: libsff_%s\n" $t
58*45d3dd98SRobert Mustacchidone
59*45d3dd98SRobert Mustacchi
60*45d3dd98SRobert Mustacchirm -f $sff_outfile || fatal "failed to remove output file"
61*45d3dd98SRobert Mustacchiexit 0
62