ESYS TEST: Fix checking of esys return values.
* Return values of optional commands are checked to skip this
tests if the commands are not available.
* Return values of commands with platform authorization are checked
to skip this tests if platform hierarchy is disabled
* Only EXIT_SUCCESS (0), EXIT_FAILURE (1), or EXIT_SKIP(77)
will be returned by the test function. Erroneously return codes
of esys commands were returned before.
Signed-off-by: Juergen Repp <Juergen.Repp@sit.fraunhofer.de>
diff --git a/test/integration/esys-audit.int.c b/test/integration/esys-audit.int.c
index 926fc4e..3e9a0fe 100644
--- a/test/integration/esys-audit.int.c
+++ b/test/integration/esys-audit.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -22,7 +25,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
/* Compute a signing key */
TPM2B_AUTH authValuePrimary = {
@@ -163,6 +167,13 @@
&inScheme,
&auditInfo,
&signature);
+
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_GetCommandAuditDigest not supported by TPM.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: GetCommandAuditDigest", error);
r = Esys_GetSessionAuditDigest(
@@ -192,6 +203,14 @@
auditAlg,
&setList,
&clearList);
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: SetCommandCodeAuditStatus", error);
r = Esys_FlushContext(esys_context, signHandle);
@@ -200,8 +219,8 @@
r = Esys_FlushContext(esys_context, session);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return failure_return;
}
diff --git a/test/integration/esys-certify-creation.int.c b/test/integration/esys-certify-creation.int.c
index 717bc91..ddb82fe 100644
--- a/test/integration/esys-certify-creation.int.c
+++ b/test/integration/esys-certify-creation.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -136,8 +138,8 @@
r = Esys_FlushContext(esys_context,signHandle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-certify.int.c b/test/integration/esys-certify.int.c
index 811edbe..e050327 100644
--- a/test/integration/esys-certify.int.c
+++ b/test/integration/esys-certify.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -135,8 +137,8 @@
r = Esys_FlushContext(esys_context,signHandle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-change-eps.int.c b/test/integration/esys-change-eps.int.c
index d335ac7..87404c6 100644
--- a/test/integration/esys-change-eps.int.c
+++ b/test/integration/esys-change-eps.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -14,7 +17,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR authHandle = ESYS_TR_RH_PLATFORM;
@@ -24,10 +27,23 @@
ESYS_TR_PASSWORD,
ESYS_TR_NONE,
ESYS_TR_NONE);
+
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_ChangeEPS not supported by TPM.");
+ return EXIT_SKIP;
+ goto error;
+ }
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ return EXIT_SKIP;
+ }
+
goto_if_error(r, "Error: ChangeEPS", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-clear-control.int.c b/test/integration/esys-clear-control.int.c
index baeaf34..19ee10f 100644
--- a/test/integration/esys-clear-control.int.c
+++ b/test/integration/esys-clear-control.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR auth_handle = ESYS_TR_RH_PLATFORM;
TPMI_YES_NO disable = TPM2_YES;
@@ -54,8 +56,8 @@
goto_if_error(r, "Error: ClearControl", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-clear.int.c b/test/integration/esys-clear.int.c
index 500b24f..4aa97ad 100644
--- a/test/integration/esys-clear.int.c
+++ b/test/integration/esys-clear.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -15,7 +17,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
@@ -60,8 +62,8 @@
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-clockset.int.c b/test/integration/esys-clockset.int.c
index d490a0c..071e12c 100644
--- a/test/integration/esys-clockset.int.c
+++ b/test/integration/esys-clockset.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -15,7 +17,7 @@
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR auth_handle = ESYS_TR_RH_OWNER;
UINT64 newTime = 0xffffff;
@@ -49,8 +51,8 @@
¤tTime);
goto_if_error(r, "Error: ReadClock", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-commit.int.c b/test/integration/esys-commit.int.c
index c6ef8f9..b0e5c1e 100644
--- a/test/integration/esys-commit.int.c
+++ b/test/integration/esys-commit.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r;
+ TSS2_RC r;
ESYS_TR session;
TPMT_SYM_DEF symmetric = {
.algorithm = TPM2_ALG_AES,
@@ -142,9 +144,9 @@
r = Esys_FlushContext(esys_context, session);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
LOG_ERROR("\nError Code: %x\n", r);
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-create-fail.int.c b/test/integration/esys-create-fail.int.c
index 6d5222f..9744e73 100644
--- a/test/integration/esys-create-fail.int.c
+++ b/test/integration/esys-create-fail.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "test-esapi.h"
@@ -21,7 +23,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -190,8 +192,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-create-password-auth.int.c b/test/integration/esys-create-password-auth.int.c
index 0347804..cbe4e85 100644
--- a/test/integration/esys-create-password-auth.int.c
+++ b/test/integration/esys-create-password-auth.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -23,7 +25,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -294,8 +296,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-create-primary-hmac.int.c b/test/integration/esys-create-primary-hmac.int.c
index 1ade429..91cabd5 100644
--- a/test/integration/esys-create-primary-hmac.int.c
+++ b/test/integration/esys-create-primary-hmac.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r;
+ TSS2_RC r;
ESYS_TR session;
TPMT_SYM_DEF symmetric = { .algorithm = TPM2_ALG_NULL };
@@ -168,9 +170,9 @@
goto_if_error(r, "Error during FlushContext", error);
LOG_INFO("Done with handle 0x%08x...", objectHandle_node->rsrc.handle);
- return 0;
+ return EXIT_SUCCESS;
error:
LOG_ERROR("\nError Code: %x\n", r);
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-create-session-auth.int.c b/test/integration/esys-create-session-auth.int.c
index 750a5ba..279773a 100644
--- a/test/integration/esys-create-session-auth.int.c
+++ b/test/integration/esys-create-session-auth.int.c
@@ -29,7 +29,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -390,8 +390,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-createloaded.int.c b/test/integration/esys-createloaded.int.c
index 4293863..bf9a993 100644
--- a/test/integration/esys-createloaded.int.c
+++ b/test/integration/esys-createloaded.int.c
@@ -4,10 +4,13 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "tss2_mu.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -20,7 +23,9 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
#ifdef TEST_SESSION
ESYS_TR session;
@@ -207,30 +212,26 @@
&outPublic2
);
if (r == TPM2_RC_COMMAND_CODE) {
- LOG_INFO("Command TPM2_CreateLoaded not supported by TPM.");
-
- r = Esys_FlushContext(esys_context, primaryHandle_handle);
- goto_if_error(r, "Flushing context", error);
-
- r = 77; /* Skip */
+ LOG_WARNING("Command TPM2_CreateLoaded not supported by TPM.");
+ failure_return = EXIT_SKIP;
goto error;
- } else {
- goto_if_error(r, "Error During CreateLoaded", error);
-
- r = Esys_FlushContext(esys_context, primaryHandle_handle);
- goto_if_error(r, "Flushing context", error);
-
- r = Esys_FlushContext(esys_context, objectHandle_handle);
- goto_if_error(r, "Flushing context", error);
}
+ goto_if_error(r, "Error During CreateLoaded", error);
+
+ r = Esys_FlushContext(esys_context, primaryHandle_handle);
+ goto_if_error(r, "Flushing context", error);
+
+ r = Esys_FlushContext(esys_context, objectHandle_handle);
+ goto_if_error(r, "Flushing context", error);
+
#ifdef TEST_SESSION
r = Esys_FlushContext(esys_context, session);
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-duplicate.int.c b/test/integration/esys-duplicate.int.c
index 70f9fc5..1dc1052 100644
--- a/test/integration/esys-duplicate.int.c
+++ b/test/integration/esys-duplicate.int.c
@@ -4,10 +4,13 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "tss2_mu.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -23,7 +26,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
/*
* First the policy value to be able to use Esys_Duplicate for an object has to be
@@ -372,6 +376,12 @@
&outDuplicate,
&outSymSeed2);
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_Rewrap not supported by TPM.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: Rewrap", error);
r = Esys_FlushContext(esys_context, primaryHandle_handle);
@@ -383,8 +393,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Flushing context", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return failure_return;
}
diff --git a/test/integration/esys-ecc-parameters.int.c b/test/integration/esys-ecc-parameters.int.c
index 6890544..721023c 100644
--- a/test/integration/esys-ecc-parameters.int.c
+++ b/test/integration/esys-ecc-parameters.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -14,7 +17,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
TPMI_ECC_CURVE curveID = TPM2_ECC_NIST_P256;
TPMS_ALGORITHM_DETAIL_ECC *parameters;
@@ -29,13 +33,13 @@
if (r == TPM2_RC_CURVE + TPM2_RC_P + TPM2_RC_1) {
LOG_WARNING("Curve TPM2_ECC_NIST_P256 supported by TPM.");
- r = 77; /* Skip */
+ failure_return = EXIT_SKIP;
goto error;
}
goto_if_error(r, "Error: ECC_Parameters", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-ecdh-keygen.int.c b/test/integration/esys-ecdh-keygen.int.c
index 0040528..1fb2a26 100644
--- a/test/integration/esys-ecdh-keygen.int.c
+++ b/test/integration/esys-ecdh-keygen.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r;
+ TSS2_RC r;
ESYS_TR session;
TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,.keyBits = {.aes =
128},.mode =
@@ -141,9 +143,9 @@
r = Esys_FlushContext(esys_context, eccHandle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
LOG_ERROR("\nError Code: %x\n", r);
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-ecdh-zgen.int.c b/test/integration/esys-ecdh-zgen.int.c
index 9cc9a38..968ee54 100644
--- a/test/integration/esys-ecdh-zgen.int.c
+++ b/test/integration/esys-ecdh-zgen.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r;
+ TSS2_RC r;
ESYS_TR session;
TPMT_SYM_DEF symmetric = {
.algorithm = TPM2_ALG_AES,
@@ -159,9 +161,9 @@
r = Esys_FlushContext(esys_context, eccHandle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
LOG_ERROR("\nError Code: %x\n", r);
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-encrypt-decrypt.int.c b/test/integration/esys-encrypt-decrypt.int.c
index ebafd7b..b0fa5ba 100644
--- a/test/integration/esys-encrypt-decrypt.int.c
+++ b/test/integration/esys-encrypt-decrypt.int.c
@@ -4,9 +4,12 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -20,7 +23,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -243,6 +247,13 @@
outData,
&outData2,
&ivOut2);
+
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_EncryptDecrypt not supported by TPM.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: EncryptDecrypt", error);
LOGBLOB_DEBUG(&outData2->buffer[0], outData2->size, "** Decrypted data **");
@@ -259,8 +270,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return failure_return;
}
diff --git a/test/integration/esys-event-sequence-complete.int.c b/test/integration/esys-event-sequence-complete.int.c
index 24985da..1fbc490 100644
--- a/test/integration/esys-event-sequence-complete.int.c
+++ b/test/integration/esys-event-sequence-complete.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH auth = {.size = 20,
.buffer={10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
@@ -67,8 +69,8 @@
&results);
goto_if_error(r, "Error: EventSequenceComplete", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-evict-control-serialization.int.c b/test/integration/esys-evict-control-serialization.int.c
index 1cb9872..da888cc 100644
--- a/test/integration/esys-evict-control-serialization.int.c
+++ b/test/integration/esys-evict-control-serialization.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -23,7 +25,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -235,8 +237,8 @@
permanentHandle, &new_primary_handle1);
goto_if_error(r, "Error Esys EvictControl", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-field-upgrade.int.c b/test/integration/esys-field-upgrade.int.c
index b0d4540..43761a1 100644
--- a/test/integration/esys-field-upgrade.int.c
+++ b/test/integration/esys-field-upgrade.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -14,7 +17,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
TPM2B_MAX_BUFFER fuData = {
.size = 20,
@@ -34,7 +38,7 @@
&firstDigest);
if (r == TPM2_RC_COMMAND_CODE) {
LOG_INFO("Command TPM2_FieldUpgradeData not supported by TPM.");
- r = 77; /* Skip */
+ failure_return = EXIT_SKIP;
goto error;
}
@@ -58,8 +62,8 @@
&manifestSignature);
goto_if_error(r, "Error: FieldUpgradeStart", error);
*/
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-firmware-read.int.c b/test/integration/esys-firmware-read.int.c
index 32b9e5e..44e29a0 100644
--- a/test/integration/esys-firmware-read.int.c
+++ b/test/integration/esys-firmware-read.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -14,7 +17,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
UINT32 sequenceNumber = 0;
TPM2B_MAX_BUFFER *fuData;
@@ -28,13 +32,13 @@
if (r == TPM2_RC_COMMAND_CODE) {
LOG_INFO("Command TPM2_FieldUpgradeData not supported by TPM.");
- r = 77; /* Skip */
+ failure_return = EXIT_SKIP;
goto error;
}
goto_if_error(r, "Error: FirmwareRead", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-get-capability.int.c b/test/integration/esys-get-capability.int.c
index dd2daf2..59c9f48 100644
--- a/test/integration/esys-get-capability.int.c
+++ b/test/integration/esys-get-capability.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -17,7 +19,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2_CAP capability = TPM2_CAP_TPM_PROPERTIES;
UINT32 property = TPM2_PT_LOCKOUT_COUNTER;
UINT32 propertyCount = 1;
@@ -32,8 +34,8 @@
goto_if_error(r, "Error esys get capability", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-get-time.int.c b/test/integration/esys-get-time.int.c
index 042af24..0ea9e36 100644
--- a/test/integration/esys-get-time.int.c
+++ b/test/integration/esys-get-time.int.c
@@ -4,9 +4,12 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -20,7 +23,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -144,10 +148,10 @@
&timeInfo,
&signature);
if (r == TPM2_RC_COMMAND_CODE) {
- LOG_INFO("Command TPM2_GetTime not supported by TPM.");
+ LOG_WARNING("Command TPM2_GetTime not supported by TPM.");
r = Esys_FlushContext(esys_context, signHandle);
goto_if_error(r, "Flushing context", error);
- r = 77; /* Skip */
+ failure_return = EXIT_SKIP;
goto error;
}
goto_if_error(r, "Error: GetTime", error);
@@ -155,8 +159,8 @@
r = Esys_FlushContext(esys_context, signHandle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-hashsequencestart.int.c b/test/integration/esys-hashsequencestart.int.c
index 0993237..5e64a77 100644
--- a/test/integration/esys-hashsequencestart.int.c
+++ b/test/integration/esys-hashsequencestart.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
@@ -104,8 +106,8 @@
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-hierarchy-control.int.c b/test/integration/esys-hierarchy-control.int.c
index 71962d0..7f0ca85 100644
--- a/test/integration/esys-hierarchy-control.int.c
+++ b/test/integration/esys-hierarchy-control.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR authHandle_handle = ESYS_TR_RH_PLATFORM;
TPMI_RH_ENABLES enable = TPM2_RH_OWNER;
@@ -33,6 +35,13 @@
ESYS_TR_NONE,
enable,
state);
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ return EXIT_SKIP;
+ }
+
goto_if_error(r, "Error: HierarchyControl", error);
ESYS_TR auth_handle = ESYS_TR_RH_OWNER;
@@ -58,8 +67,8 @@
state);
goto_if_error(r, "Error: HierarchyControl", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-hierarchychangeauth.int.c b/test/integration/esys-hierarchychangeauth.int.c
index ddb8091..6bfae29 100644
--- a/test/integration/esys-hierarchychangeauth.int.c
+++ b/test/integration/esys-hierarchychangeauth.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -11,7 +13,7 @@
#include "util/log.h"
/*
- * This test is intended to test then change of an authorization value of
+ * This test is intended to test the change of an authorization value of
* a hierarchy.
* To check whether the change was successful a primary key is created
* with the handle of this hierarchy and the new authorization.
@@ -22,7 +24,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR authHandle_handle = ESYS_TR_RH_OWNER;
TPM2B_AUTH newAuth = {
.size = 5,
@@ -137,8 +139,8 @@
&emptyAuth);
goto_if_error(r, "Error: HierarchyChangeAuth", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-hmacsequencestart.int.c b/test/integration/esys-hmacsequencestart.int.c
index 7695653..39e9017 100644
--- a/test/integration/esys-hmacsequencestart.int.c
+++ b/test/integration/esys-hmacsequencestart.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
@@ -165,8 +167,8 @@
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-import.int.c b/test/integration/esys-import.int.c
index ec5b25f..2728164 100644
--- a/test/integration/esys-import.int.c
+++ b/test/integration/esys-import.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "tss2_mu.h"
@@ -23,7 +25,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/*
* Firth the policy value to be able to use Esys_Duplicate for an object has to be
@@ -391,8 +393,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Flushing context", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-lock.int.c b/test/integration/esys-lock.int.c
index ac656e6..85248a0 100644
--- a/test/integration/esys-lock.int.c
+++ b/test/integration/esys-lock.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -15,7 +18,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
r = Esys_DictionaryAttackLockReset(
esys_context,
@@ -38,10 +41,16 @@
r = Esys_NV_GlobalWriteLock(esys_context, ESYS_TR_RH_PLATFORM,
ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE);
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ return 77;
+ }
goto_if_error(r, "Error: NV_GlobalWriteLock", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-make-credential.int.c b/test/integration/esys-make-credential.int.c
index 6e4378b..77f8152 100644
--- a/test/integration/esys-make-credential.int.c
+++ b/test/integration/esys-make-credential.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -23,7 +25,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
@@ -353,8 +355,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Error esys flush context", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-nv-certify.int.c b/test/integration/esys-nv-certify.int.c
index 955b470..6b2c67f 100644
--- a/test/integration/esys-nv-certify.int.c
+++ b/test/integration/esys-nv-certify.int.c
@@ -4,9 +4,12 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -19,7 +22,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -183,6 +187,13 @@
0,
&certifyInfo,
&signature);
+
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_NV_Certify not supported by TPM.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: NV_Certify", error);
r = Esys_NV_UndefineSpace(esys_context,
@@ -197,8 +208,8 @@
r = Esys_FlushContext(esys_context,signHandle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return failure_return;
}
diff --git a/test/integration/esys-nv-ram-counter.int.c b/test/integration/esys-nv-ram-counter.int.c
index 6d2061a..50f7ab2 100644
--- a/test/integration/esys-nv-ram-counter.int.c
+++ b/test/integration/esys-nv-ram-counter.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,
@@ -190,8 +192,8 @@
r = Esys_FlushContext(esys_context, session);
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-nv-ram-extend-index.int.c b/test/integration/esys-nv-ram-extend-index.int.c
index 059f949..74d5a77 100644
--- a/test/integration/esys-nv-ram-extend-index.int.c
+++ b/test/integration/esys-nv-ram-extend-index.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -20,7 +22,7 @@
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,
@@ -198,8 +200,9 @@
);
goto_if_error(r, "Error: NV_UndefineSpace", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-nv-ram-ordinary-index.int.c b/test/integration/esys-nv-ram-ordinary-index.int.c
index 37d2a67..99c4855 100644
--- a/test/integration/esys-nv-ram-ordinary-index.int.c
+++ b/test/integration/esys-nv-ram-ordinary-index.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -23,7 +25,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,
@@ -297,8 +299,8 @@
r = Esys_FlushContext(esys_context, session);
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-nv-ram-set-bits.int.c b/test/integration/esys-nv-ram-set-bits.int.c
index 909af34..9f76e5b 100644
--- a/test/integration/esys-nv-ram-set-bits.int.c
+++ b/test/integration/esys-nv-ram-set-bits.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
#ifdef TEST_SESSION
ESYS_TR session;
TPMT_SYM_DEF symmetric = {.algorithm = TPM2_ALG_AES,
@@ -194,8 +196,8 @@
goto_if_error(r, "Error: FlushContext", error);
#endif
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-object-changeauth.int.c b/test/integration/esys-object-changeauth.int.c
index 102e1c3..595a544 100644
--- a/test/integration/esys-object-changeauth.int.c
+++ b/test/integration/esys-object-changeauth.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -19,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_PUBLIC inPublic = {
.size = 0,
@@ -222,8 +224,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-pcr-auth-value.int.c b/test/integration/esys-pcr-auth-value.int.c
index 77e1bd9..5667e99 100644
--- a/test/integration/esys-pcr-auth-value.int.c
+++ b/test/integration/esys-pcr-auth-value.int.c
@@ -4,10 +4,13 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
#include "test-esapi.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -18,7 +21,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
/*
* PCR register 20 belongs to the policy group and the auth value group.
@@ -40,6 +44,14 @@
ESYS_TR_NONE,
&auth
);
+
+
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_PCR_SetAuthValue not supported by TPM.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: PCR_SetAuthValue", error);
TPM2B_DIGEST authPolicy = {
@@ -57,10 +69,17 @@
&authPolicy,
TPM2_ALG_SHA1,
pcrHandle_handle);
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ failure_return = EXIT_SKIP;
+ }
+
goto_if_error(r, "Error: PCR_SetAuthPolicy", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-pcr-basic.int.c b/test/integration/esys-pcr-basic.int.c
index b547d86..877da6f 100644
--- a/test/integration/esys-pcr-basic.int.c
+++ b/test/integration/esys-pcr-basic.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR pcrHandle_handle = 16;
TPML_DIGEST_VALUES digests
@@ -114,11 +116,16 @@
&sizeNeeded,
&sizeAvailable);
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ }
+
goto_if_error(r, "Error: PCR_Allocate", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-policy-authorize.int.c b/test/integration/esys-policy-authorize.int.c
index f2df2c0..2d7333b 100644
--- a/test/integration/esys-policy-authorize.int.c
+++ b/test/integration/esys-policy-authorize.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "tss2_mu.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/*
* 1. Create Primary. This primary will be used for PolicyAuthorize.
@@ -179,8 +181,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-policy-nv-changeauth.int.c b/test/integration/esys-policy-nv-changeauth.int.c
index 5627c6d..7307140 100644
--- a/test/integration/esys-policy-nv-changeauth.int.c
+++ b/test/integration/esys-policy-nv-changeauth.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -24,7 +26,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/*
* Firth the policy value for changing the auth value of an NV index has to be
* determined with a policy trial session.
@@ -166,8 +168,8 @@
);
goto_if_error(r, "Error: NV_UndefineSpace", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-policy-nv-undefine-special.int.c b/test/integration/esys-policy-nv-undefine-special.int.c
index 857fe08..dea6016 100644
--- a/test/integration/esys-policy-nv-undefine-special.int.c
+++ b/test/integration/esys-policy-nv-undefine-special.int.c
@@ -4,9 +4,12 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -21,7 +24,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
/*
* First the policy value for NV_UndefineSpaceSpecial has to be
* determined with a policy trial session.
@@ -149,10 +153,18 @@
ESYS_TR_PASSWORD,
ESYS_TR_NONE
);
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ failure_return = EXIT_SKIP;
+ goto error;
+ }
+
goto_if_error(r, "Error: NV_UndefineSpace", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return failure_return;
}
diff --git a/test/integration/esys-policy-password.int.c b/test/integration/esys-policy-password.int.c
index df26da8..399a2b0 100644
--- a/test/integration/esys-policy-password.int.c
+++ b/test/integration/esys-policy-password.int.c
@@ -4,9 +4,12 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -23,7 +26,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/*
* Firth the policy value for changing the auth value of an NV index has to be
* determined with a policy trial session.
@@ -260,8 +263,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-policy-regression.int.c b/test/integration/esys-policy-regression.int.c
index 7b0a234..43dafe4 100644
--- a/test/integration/esys-policy-regression.int.c
+++ b/test/integration/esys-policy-regression.int.c
@@ -31,7 +31,7 @@
char *comment, bool flush_session)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_DIGEST *policyDigest;
r = Esys_PolicyGetDigest(esys_context,
@@ -66,7 +66,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/* Dummy parameters for trial sessoin */
ESYS_TR sessionTrial;
diff --git a/test/integration/esys-policy-ticket.int.c b/test/integration/esys-policy-ticket.int.c
index 31aef08..fbf9134 100644
--- a/test/integration/esys-policy-ticket.int.c
+++ b/test/integration/esys-policy-ticket.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "tss2_mu.h"
@@ -20,7 +22,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/*
* 1. Create Primary. This primary will be used as signing key.
@@ -273,8 +275,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-pp-commands.int.c b/test/integration/esys-pp-commands.int.c
index 4c1212e..ab12105 100644
--- a/test/integration/esys-pp-commands.int.c
+++ b/test/integration/esys-pp-commands.int.c
@@ -4,8 +4,11 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
+#include "test-esapi.h"
#include "esys_iutil.h"
#define LOGMODULE test
#include "util/log.h"
@@ -18,7 +21,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
ESYS_TR auth_handle = ESYS_TR_RH_PLATFORM;
TPML_CC setList = {
@@ -30,14 +34,26 @@
r = Esys_PP_Commands(esys_context, auth_handle,
ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE,
&setList, &clearList);
+
+ if (r == TPM2_RC_COMMAND_CODE) {
+ LOG_WARNING("Command TPM2_PP_Commands not supported by TPM.");
+ failure_return = EXIT_SKIP;
+ }
+
if (r == (TPM2_RC_WARN | TPM2_RC_PP)) {
LOG_INFO("Command TPM2_PP_Commands requires physical presence.");
- return 0;
+ return EXIT_SUCCESS;
+ }
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ failure_return = EXIT_SKIP;
}
goto_if_error(r, "Error: PP_Commands", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-quote.int.c b/test/integration/esys-quote.int.c
index ffd0b4d..7e60db6 100644
--- a/test/integration/esys-quote.int.c
+++ b/test/integration/esys-quote.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -20,7 +22,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -157,5 +159,5 @@
return 0;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-rsa-encrypt-decrypt.int.c b/test/integration/esys-rsa-encrypt-decrypt.int.c
index d832a79..5f094bb 100644
--- a/test/integration/esys-rsa-encrypt-decrypt.int.c
+++ b/test/integration/esys-rsa-encrypt-decrypt.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -21,7 +23,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -164,8 +166,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error: FlushContext", error);
}
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-save-and-load-context.int.c b/test/integration/esys-save-and-load-context.int.c
index 0aa8154..08caa41 100644
--- a/test/integration/esys-save-and-load-context.int.c
+++ b/test/integration/esys-save-and-load-context.int.c
@@ -4,6 +4,8 @@
* rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -23,7 +25,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -305,8 +307,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle2);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-set-algorithm-set.int.c b/test/integration/esys-set-algorithm-set.int.c
index dce6471..168f6ff 100644
--- a/test/integration/esys-set-algorithm-set.int.c
+++ b/test/integration/esys-set-algorithm-set.int.c
@@ -4,9 +4,12 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
+#include "test-esapi.h"
#define LOGMODULE test
#include "util/log.h"
@@ -15,7 +18,8 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
+ int failure_return = EXIT_FAILURE;
UINT32 algorithmSet = 0;
@@ -26,10 +30,17 @@
ESYS_TR_NONE,
ESYS_TR_NONE,
algorithmSet);
+
+ if (r == (TPM2_RC_BAD_AUTH | TPM2_RC_S | TPM2_RC_1)) {
+ /* Platform authorization not possible test will be skipped */
+ LOG_WARNING("Platform authorization not possible.");
+ failure_return = EXIT_SKIP;
+ }
+
goto_if_error(r, "Error: SetAlgorithmSet", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return failure_return;
}
diff --git a/test/integration/esys-stir-random.int.c b/test/integration/esys-stir-random.int.c
index 759d349..b914a75 100644
--- a/test/integration/esys-stir-random.int.c
+++ b/test/integration/esys-stir-random.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -14,7 +16,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_SENSITIVE_DATA inData = {
.size = 20,
@@ -30,8 +32,8 @@
&inData);
goto_if_error(r, "Error: StirRandom", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return r;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-testparms.int.c b/test/integration/esys-testparms.int.c
index 494a1a2..8ce7753 100644
--- a/test/integration/esys-testparms.int.c
+++ b/test/integration/esys-testparms.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "esys_iutil.h"
@@ -14,7 +16,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPMT_PUBLIC_PARMS parameters = {
.type = TPM2_ALG_RSA,
@@ -44,8 +46,8 @@
);
goto_if_error(r, "Error: TestParms", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-tpm-tests.int.c b/test/integration/esys-tpm-tests.int.c
index 61c3e3c..2c6701c 100644
--- a/test/integration/esys-tpm-tests.int.c
+++ b/test/integration/esys-tpm-tests.int.c
@@ -15,7 +15,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
esys_context->state = _ESYS_STATE_INIT;
r = Esys_SelfTest(esys_context,
@@ -42,8 +42,8 @@
goto_if_error(r, "Error GetTestResult did fail", error);
free(outData);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-tr-fromTpmPublic-key.int.c b/test/integration/esys-tr-fromTpmPublic-key.int.c
index a2bff96..130896a 100644
--- a/test/integration/esys-tr-fromTpmPublic-key.int.c
+++ b/test/integration/esys-tr-fromTpmPublic-key.int.c
@@ -21,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * ectx)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR primaryHandle;
ESYS_TR keyHandle;
@@ -137,12 +137,12 @@
free(name1);
free(name2);
- return 0;
+ return EXIT_SUCCESS;
error_name2:
free(name2);
error_name1:
free(name1);
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-tr-fromTpmPublic-nv.int.c b/test/integration/esys-tr-fromTpmPublic-nv.int.c
index 1957b39..373a2bc 100644
--- a/test/integration/esys-tr-fromTpmPublic-nv.int.c
+++ b/test/integration/esys-tr-fromTpmPublic-nv.int.c
@@ -21,7 +21,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * ectx)
{
- uint32_t r = 0;
+ TSS2_RC r;
ESYS_TR nvHandle;
TPM2B_NAME *name1, *name2;
@@ -78,12 +78,12 @@
free(name1);
free(name2);
- return 0;
+ return EXIT_SUCCESS;
error_name2:
free(name2);
error_name1:
free(name1);
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-tr-getName-hierarchy.int.c b/test/integration/esys-tr-getName-hierarchy.int.c
index 12600c7..32618ff 100644
--- a/test/integration/esys-tr-getName-hierarchy.int.c
+++ b/test/integration/esys-tr-getName-hierarchy.int.c
@@ -22,7 +22,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * ectx)
{
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_NAME name1, *name2;
size_t offset = 0;
@@ -40,13 +40,13 @@
{
free(name2);
LOG_ERROR("Names mismatch between NV_GetPublic and TR_GetName");
- return 1;
+ return EXIT_FAILURE;
}
free(name2);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-unseal-password-auth.int.c b/test/integration/esys-unseal-password-auth.int.c
index 0a8b4d0..316c3b8 100644
--- a/test/integration/esys-unseal-password-auth.int.c
+++ b/test/integration/esys-unseal-password-auth.int.c
@@ -38,7 +38,7 @@
/*
* 1. Create Primary
*/
- uint32_t r = 0;
+ TSS2_RC r;
TPM2B_AUTH authValuePrimary = {
.size = 5,
@@ -291,8 +291,8 @@
r = Esys_FlushContext(esys_context, loadedKeyHandle);
goto_if_error(r, "Error during FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-verify-signature.int.c b/test/integration/esys-verify-signature.int.c
index 3267700..8b6000d 100644
--- a/test/integration/esys-verify-signature.int.c
+++ b/test/integration/esys-verify-signature.int.c
@@ -4,6 +4,8 @@
* All rights reserved.
*******************************************************************************/
+#include <stdlib.h>
+
#include "tss2_esys.h"
#include "tss2_mu.h"
@@ -18,7 +20,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r = 0;
+ TSS2_RC r;
/*
* 1. Create Primary. This primary will be used as signing key.
@@ -166,8 +168,8 @@
r = Esys_FlushContext(esys_context, primaryHandle_handle);
goto_if_error(r, "Error: FlushContext", error);
- return 0;
+ return EXIT_SUCCESS;
error:
- return 1;
+ return EXIT_FAILURE;
}
diff --git a/test/integration/esys-zgen-2phase.int.c b/test/integration/esys-zgen-2phase.int.c
index be2cae3..328d9cb 100644
--- a/test/integration/esys-zgen-2phase.int.c
+++ b/test/integration/esys-zgen-2phase.int.c
@@ -18,7 +18,7 @@
int
test_invoke_esapi(ESYS_CONTEXT * esys_context)
{
- uint32_t r;
+ TSS2_RC r;
ESYS_TR session;
TPMT_SYM_DEF symmetric = {
.algorithm = TPM2_ALG_AES,
diff --git a/test/integration/test-esapi.h b/test/integration/test-esapi.h
index df82631..27f3844 100644
--- a/test/integration/test-esapi.h
+++ b/test/integration/test-esapi.h
@@ -11,6 +11,8 @@
#define TSS_SAPI_FIRST_FAMILY 2
#define TSS_SAPI_FIRST_LEVEL 1
#define TSS_SAPI_FIRST_VERSION 108
+#define EXIT_SKIP 77
+#define EXIT_XFAIL 99
#define goto_error_if_not_failed(rc,msg,label) \
if (rc == TSS2_RC_SUCCESS) { \