/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

/* Common definitions for test programs.
 */

#ifndef TLCL_TESTS_H
#define TLCL_TESTS_H

/* Standard testing indexes. */
#define INDEX0 0xcafe
#define INDEX1 0xcaff

/* Prints error and returns on failure */
#define TPM_CHECK(tpm_command) TPM_EXPECT(tpm_command, TPM_SUCCESS)

#define TPM_EXPECT(tpm_command, expected_result) do {                    \
	uint32_t _result = (tpm_command);                                \
	uint32_t _exp = (expected_result);                               \
	if (_result != _exp) {                                           \
		printf("TEST FAILED: line %d: " #tpm_command ": 0x%x"    \
		       " (expecting 0x%x)\n", __LINE__, _result, _exp);  \
		return _result;                                          \
	}                                                                \
} while (0)


/* Executes TlclStartup(), but ignores POSTINIT error if the
 * TLCL_RESILIENT_STARTUP environment variable is set.
 */
uint32_t TlclStartupIfNeeded(void);

#endif // TLCL_TESTS_H
