1097ece1648aa33ea69bbf1873bb42945e7540703mridge#! /bin/sh
2097ece1648aa33ea69bbf1873bb42945e7540703mridge#
3097ece1648aa33ea69bbf1873bb42945e7540703mridge# Copyright (c) International Business Machines  Corp., 2005
4097ece1648aa33ea69bbf1873bb42945e7540703mridge#
5097ece1648aa33ea69bbf1873bb42945e7540703mridge# This program is free software;  you can redistribute it and#or modify
6097ece1648aa33ea69bbf1873bb42945e7540703mridge# it under the terms of the GNU General Public License as published by
7097ece1648aa33ea69bbf1873bb42945e7540703mridge# the Free Software Foundation; either version 2 of the License, or
8097ece1648aa33ea69bbf1873bb42945e7540703mridge# (at your option) any later version.
9097ece1648aa33ea69bbf1873bb42945e7540703mridge#
10097ece1648aa33ea69bbf1873bb42945e7540703mridge# This program is distributed in the hope that it will be useful, but
11097ece1648aa33ea69bbf1873bb42945e7540703mridge# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12097ece1648aa33ea69bbf1873bb42945e7540703mridge# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13097ece1648aa33ea69bbf1873bb42945e7540703mridge# for more details.
14097ece1648aa33ea69bbf1873bb42945e7540703mridge#
15097ece1648aa33ea69bbf1873bb42945e7540703mridge# You should have received a copy of the GNU General Public License
16097ece1648aa33ea69bbf1873bb42945e7540703mridge# along with this program;  if not, write to the Free Software
174548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18097ece1648aa33ea69bbf1873bb42945e7540703mridge#
19097ece1648aa33ea69bbf1873bb42945e7540703mridge
20097ece1648aa33ea69bbf1873bb42945e7540703mridgesetup()
21097ece1648aa33ea69bbf1873bb42945e7540703mridge{
22097ece1648aa33ea69bbf1873bb42945e7540703mridge	RC=0				# Return code from commands.
23097ece1648aa33ea69bbf1873bb42945e7540703mridge
24097ece1648aa33ea69bbf1873bb42945e7540703mridge	if [ -z "$LTPTMP" ] && [ -z "$TMPBASE" ]
25097ece1648aa33ea69bbf1873bb42945e7540703mridge	then
26097ece1648aa33ea69bbf1873bb42945e7540703mridge		LTPTMP="/tmp"
27097ece1648aa33ea69bbf1873bb42945e7540703mridge	else
28097ece1648aa33ea69bbf1873bb42945e7540703mridge		LTPTMP="$TMPBASE"
29097ece1648aa33ea69bbf1873bb42945e7540703mridge	fi
30097ece1648aa33ea69bbf1873bb42945e7540703mridge
31097ece1648aa33ea69bbf1873bb42945e7540703mridge	export TPM_TMPFILE="$LTPTMP/tst_tpm.err"
32097ece1648aa33ea69bbf1873bb42945e7540703mridge	rm -f $TPM_TMPFILE 2>&1
33097ece1648aa33ea69bbf1873bb42945e7540703mridge
34097ece1648aa33ea69bbf1873bb42945e7540703mridge	tst_resm TINFO "INIT: Inititalizing tests."
35097ece1648aa33ea69bbf1873bb42945e7540703mridge
36097ece1648aa33ea69bbf1873bb42945e7540703mridge	which tpm_selftest 1>$TPM_TMPFILE 2>&1 || RC=$?
37097ece1648aa33ea69bbf1873bb42945e7540703mridge	if [ $RC -ne 0 ]
38097ece1648aa33ea69bbf1873bb42945e7540703mridge	then
39097ece1648aa33ea69bbf1873bb42945e7540703mridge		tst_brk TBROK $TPM_TMPFILE NULL \
40097ece1648aa33ea69bbf1873bb42945e7540703mridge			"Setup: tpm_selftest command does not exist. Reason:"
41097ece1648aa33ea69bbf1873bb42945e7540703mridge		return $RC
42097ece1648aa33ea69bbf1873bb42945e7540703mridge	fi
43097ece1648aa33ea69bbf1873bb42945e7540703mridge
44097ece1648aa33ea69bbf1873bb42945e7540703mridge	return $RC
45097ece1648aa33ea69bbf1873bb42945e7540703mridge}
46097ece1648aa33ea69bbf1873bb42945e7540703mridge
47097ece1648aa33ea69bbf1873bb42945e7540703mridgetest01()
48097ece1648aa33ea69bbf1873bb42945e7540703mridge{
49097ece1648aa33ea69bbf1873bb42945e7540703mridge	RC=0				# Return value from commands
50097ece1648aa33ea69bbf1873bb42945e7540703mridge	export TCID=tpm_selftest01	# Test ID
51097ece1648aa33ea69bbf1873bb42945e7540703mridge	export TST_COUNT=1		# Test number
52097ece1648aa33ea69bbf1873bb42945e7540703mridge
53097ece1648aa33ea69bbf1873bb42945e7540703mridge	tpm_selftest 1>$TPM_TMPFILE 2>&1 || RC=$?
54097ece1648aa33ea69bbf1873bb42945e7540703mridge	if [ $RC -eq 0 ]
55097ece1648aa33ea69bbf1873bb42945e7540703mridge	then
56097ece1648aa33ea69bbf1873bb42945e7540703mridge		tst_resm TPASS "'tpm_selftest' passed."
57097ece1648aa33ea69bbf1873bb42945e7540703mridge		RC=0
58097ece1648aa33ea69bbf1873bb42945e7540703mridge	else
59097ece1648aa33ea69bbf1873bb42945e7540703mridge		tst_res TFAIL $TPM_TMPFILE "'tpm_selftest' failed."
60097ece1648aa33ea69bbf1873bb42945e7540703mridge		RC=1
61097ece1648aa33ea69bbf1873bb42945e7540703mridge	fi
62097ece1648aa33ea69bbf1873bb42945e7540703mridge	return $RC
63097ece1648aa33ea69bbf1873bb42945e7540703mridge}
64097ece1648aa33ea69bbf1873bb42945e7540703mridge
65097ece1648aa33ea69bbf1873bb42945e7540703mridgetest02()
66097ece1648aa33ea69bbf1873bb42945e7540703mridge{
67097ece1648aa33ea69bbf1873bb42945e7540703mridge	RC=0				# Return value from commands
68097ece1648aa33ea69bbf1873bb42945e7540703mridge	export TCID=tpm_selftest02	# Test ID
69097ece1648aa33ea69bbf1873bb42945e7540703mridge	export TST_COUNT=2		# Test number
70097ece1648aa33ea69bbf1873bb42945e7540703mridge
71097ece1648aa33ea69bbf1873bb42945e7540703mridge	tpm_selftest -r 1>$TPM_TMPFILE 2>&1 || RC=$?
72097ece1648aa33ea69bbf1873bb42945e7540703mridge	if [ $RC -eq 0 ]
73097ece1648aa33ea69bbf1873bb42945e7540703mridge	then
74097ece1648aa33ea69bbf1873bb42945e7540703mridge		tst_resm TPASS "'tpm_selftest -r' passed."
75097ece1648aa33ea69bbf1873bb42945e7540703mridge		RC=0
76097ece1648aa33ea69bbf1873bb42945e7540703mridge	else
77097ece1648aa33ea69bbf1873bb42945e7540703mridge		tst_res TFAIL $TPM_TMPFILE "'tpm_selftest -r' failed."
78097ece1648aa33ea69bbf1873bb42945e7540703mridge		RC=1
79097ece1648aa33ea69bbf1873bb42945e7540703mridge	fi
80097ece1648aa33ea69bbf1873bb42945e7540703mridge	return $RC
81097ece1648aa33ea69bbf1873bb42945e7540703mridge}
82097ece1648aa33ea69bbf1873bb42945e7540703mridge
83097ece1648aa33ea69bbf1873bb42945e7540703mridgecleanup()
84097ece1648aa33ea69bbf1873bb42945e7540703mridge{
85097ece1648aa33ea69bbf1873bb42945e7540703mridge	rm -f $TPM_TMPFILE 2>&1
86097ece1648aa33ea69bbf1873bb42945e7540703mridge}
87097ece1648aa33ea69bbf1873bb42945e7540703mridge
88097ece1648aa33ea69bbf1873bb42945e7540703mridge# Function:	main
89097ece1648aa33ea69bbf1873bb42945e7540703mridge#
90097ece1648aa33ea69bbf1873bb42945e7540703mridge# Description:	- Execute all tests, report results.
91097ece1648aa33ea69bbf1873bb42945e7540703mridge#
92097ece1648aa33ea69bbf1873bb42945e7540703mridge# Exit:		- zero on success
93097ece1648aa33ea69bbf1873bb42945e7540703mridge# 		- non-zero on failure.
94097ece1648aa33ea69bbf1873bb42945e7540703mridge
95097ece1648aa33ea69bbf1873bb42945e7540703mridgeTFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
96097ece1648aa33ea69bbf1873bb42945e7540703mridgeRC=0				# Return code from tests.
97097ece1648aa33ea69bbf1873bb42945e7540703mridge
98097ece1648aa33ea69bbf1873bb42945e7540703mridgeexport TCID=tpm_selftest	# Test ID
99097ece1648aa33ea69bbf1873bb42945e7540703mridgeexport TST_TOTAL=2		# Total numner of tests in this file.
100097ece1648aa33ea69bbf1873bb42945e7540703mridgeexport TST_COUNT=0		# Initialize identifier
101097ece1648aa33ea69bbf1873bb42945e7540703mridge
102097ece1648aa33ea69bbf1873bb42945e7540703mridgesetup || exit $RC		# Exit if initializing testcases fails.
103097ece1648aa33ea69bbf1873bb42945e7540703mridge
104097ece1648aa33ea69bbf1873bb42945e7540703mridgetest01 || TFAILCNT=$(($TFAILCNT+1))
105097ece1648aa33ea69bbf1873bb42945e7540703mridgetest02 || TFAILCNT=$(($TFAILCNT+1))
106097ece1648aa33ea69bbf1873bb42945e7540703mridge
107097ece1648aa33ea69bbf1873bb42945e7540703mridgecleanup
108097ece1648aa33ea69bbf1873bb42945e7540703mridge
109097ece1648aa33ea69bbf1873bb42945e7540703mridgeexit $TFAILCNT
110