diff options
author | Juergen Repp <Juergen.Repp@sit.fraunhofer.de> | 2018-06-15 16:22:28 +0200 |
---|---|---|
committer | Tadeusz Struk <tadeusz.struk@intel.com> | 2018-06-25 13:18:47 -0700 |
commit | bb517eb429b3c4a684df59a26a03d3900e8cd564 (patch) | |
tree | 6fc87d7c15057f6e5efaa1179d516599c1c9dee8 /test | |
parent | 944496f8bd4b9f0d9e41f8e83a4bdfa04132753b (diff) | |
download | tpm2-tss-bb517eb429b3c4a684df59a26a03d3900e8cd564.tar.gz |
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>
Diffstat (limited to 'test')
60 files changed, 433 insertions, 194 deletions
diff --git a/test/integration/esys-audit.int.c b/test/integration/esys-audit.int.c index 926fc4e0..3e9a0fef 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 717bc913..ddb82fee 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 811edbee..e050327e 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 d335ac7b..87404c65 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 baeaf34d..19ee10f7 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 500b24f7..4aa97ade 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 d490a0c2..071e12c6 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 @@ int 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) ¤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 c6ef8f92..b0e5c1e4 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 6d5222f0..9744e73a 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 03478045..cbe4e85b 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 1ade4295..91cabd58 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 750a5baa..279773ac 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 4293863f..bf9a9930 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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); + goto_if_error(r, "Error During CreateLoaded", error); - r = Esys_FlushContext(esys_context, objectHandle_handle); - goto_if_error(r, "Flushing context", 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 70f9fc5f..1dc10521 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 6890544e..721023cb 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 0040528f..1fb2a260 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 9cc9a38c..968ee548 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 ebafd7b3..b0fa5baf 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 24985da7..1fbc490d 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 1cb98723..da888ccb 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 b0d45409..43761a18 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 32b9e5ef..44e29a0f 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 dd2daf20..59c9f48d 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 042af24b..0ea9e36c 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 0993237c..5e64a772 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 71962d03..7f0ca85a 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 ddb80912..6bfae29a 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 7695653b..39e90176 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 ec5b25f1..27281643 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 ac656e63..85248a07 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 6e4378b9..77f8152f 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 955b4709..6b2c67f4 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 6d2061ac..50f7ab28 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 059f949f..74d5a77f 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 @@ 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, @@ -198,8 +200,9 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) ); 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 37d2a671..99c48550 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 909af346..9f76e5b8 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 102e1c30..595a544b 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 77e1bd9a..5667e99e 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 b547d860..877da6f0 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 f2df2c0c..2d7333ba 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 5627c6db..73071408 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) ); 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 857fe08d..dea60166 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 df26da85..399a2b03 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 7b0a2341..43dafe4f 100644 --- a/test/integration/esys-policy-regression.int.c +++ b/test/integration/esys-policy-regression.int.c @@ -31,7 +31,7 @@ cmp_policy_digest(ESYS_CONTEXT * esys_context, char *comment, bool flush_session) { - uint32_t r = 0; + TSS2_RC r; TPM2B_DIGEST *policyDigest; r = Esys_PolicyGetDigest(esys_context, @@ -66,7 +66,7 @@ cmp_policy_digest(ESYS_CONTEXT * esys_context, 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 31aef080..fbf9134c 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 4c1212e9..ab121059 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 ffd0b4de..7e60db6f 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 d832a792..5f094bbf 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 0aa8154d..08caa41d 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 dce64711..168f6ff4 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 759d3496..b914a754 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) &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 494a1a20..8ce77533 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) ); 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 61c3e3cf..2c6701c4 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 a2bff96d..130896a4 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 @@ test_invoke_esapi(ESYS_CONTEXT * ectx) 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 1957b39d..373a2bcd 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 @@ test_invoke_esapi(ESYS_CONTEXT * ectx) 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 12600c73..32618ff6 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 @@ test_invoke_esapi(ESYS_CONTEXT * ectx) { 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 0a8b4d0e..316c3b8f 100644 --- a/test/integration/esys-unseal-password-auth.int.c +++ b/test/integration/esys-unseal-password-auth.int.c @@ -38,7 +38,7 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) /* * 1. Create Primary */ - uint32_t r = 0; + TSS2_RC r; TPM2B_AUTH authValuePrimary = { .size = 5, @@ -291,8 +291,8 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 3267700e..8b6000d4 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 @@ test_invoke_esapi(ESYS_CONTEXT * esys_context) 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 be2cae3a..328d9cb3 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 df826311..27f38447 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) { \ |