mirror of
https://github.com/physwizz/a155-U-u1.git
synced 2025-09-26 19:04:54 +00:00
2726 lines
79 KiB
C
2726 lines
79 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (c) 2015-2019, MICROTRUST Incorporated
|
|
* All Rights Reserved.
|
|
*
|
|
*/
|
|
#include <linux/bitops.h>
|
|
#include <linux/ctype.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/gameport.h>
|
|
#include <linux/init.h>
|
|
#include <linux/input.h>
|
|
#include <linux/jiffies.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/module.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/string.h>
|
|
#include <linux/timekeeping.h>
|
|
#include <linux/timex.h>
|
|
#include <linux/types.h>
|
|
|
|
#define IMSG_TAG "[tz_test_ca]"
|
|
#include <imsg_log.h>
|
|
#include "ta_core_api.h"
|
|
unsigned int xtest_teec_open_session(struct TEEC_Context *context,
|
|
struct TEEC_Session *session,
|
|
const struct TEEC_UUID *uuid,
|
|
struct TEEC_Operation *op,
|
|
uint32_t *ret_orig)
|
|
{
|
|
return TEEC_OpenSession(context, session, uuid, TEEC_LOGIN_PUBLIC,
|
|
NULL, op, ret_orig);
|
|
}
|
|
const char *ADBG_GetFileBase(const char *const FileName_p)
|
|
{
|
|
const char *Ch_p = FileName_p;
|
|
const char *Base_p = FileName_p;
|
|
|
|
while (*Ch_p != '\0') {
|
|
if (*Ch_p == '\\')
|
|
Base_p = Ch_p + 1;
|
|
|
|
Ch_p++;
|
|
}
|
|
|
|
return Base_p;
|
|
}
|
|
int case_res;
|
|
bool Do_ADBG_Expect(const char *const FileName_p, const int LineNumber,
|
|
const int Expected, const int Got)
|
|
{
|
|
if (Expected == Got)
|
|
return true;
|
|
|
|
IMSG_WARN("%s:%d: unexpected value: 0x%x, expected 0x%x\n",
|
|
ADBG_GetFileBase(FileName_p),
|
|
LineNumber, Got, Expected);
|
|
|
|
case_res = -EINVAL;
|
|
return false;
|
|
}
|
|
|
|
struct TEEC_Context xtest_isee_ctx_1000;
|
|
const struct TEEC_UUID isee_test_ta_uuid = DRM_01_UUID;
|
|
|
|
int compare_array_with_pattern(unsigned char *buffer, unsigned int pattern,
|
|
unsigned int size_in_byte)
|
|
{
|
|
unsigned char *buffer_ptr = (unsigned char *)buffer;
|
|
unsigned char *pattern_ptr = (unsigned char *)&pattern;
|
|
unsigned int i;
|
|
unsigned int *got;
|
|
|
|
for (i = 0; i < size_in_byte; i += 4) {
|
|
if (buffer_ptr[i] != pattern_ptr[0])
|
|
goto exit;
|
|
if (buffer_ptr[i + 1] != pattern_ptr[1])
|
|
goto exit;
|
|
if (buffer_ptr[i + 2] != pattern_ptr[2])
|
|
goto exit;
|
|
if (buffer_ptr[i + 3] != pattern_ptr[3])
|
|
goto exit;
|
|
}
|
|
return TA_CORE_API_PARAM_TYPE_PATTERN_MATCH;
|
|
exit:
|
|
got = (unsigned int *)(&buffer_ptr[i]);
|
|
IMSG_DEBUG("[%s]expect=0x%x, got[%d]=0x%x\n", __func__,
|
|
pattern, i, *got);
|
|
return TA_CORE_API_PARAM_TYPE_PATTERN_NOT_MATCH;
|
|
}
|
|
|
|
int xtest_isee_test_1001(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PRINT, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1002(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_SPECIFIC_RET_VALUE,
|
|
TEEC_InvokeCommand(&session, TA_CORE_API_CMD_RET_VALUE,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1003(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TEE_ERROR_UNKNOWN_COMMAND,
|
|
TEEC_InvokeCommand(&session, TA_CORE_API_UNSUPPORTED_CMD,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1004(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
uint64_t time_start, time_end, time_freq, time_ms;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
op.params[0].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[0].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[1].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[1].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[2].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[2].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[3].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.params[3].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_InvokeCommand(&session, TA_CORE_API_CMD_READ_CNTVCT,
|
|
&op, &ret_orig));
|
|
|
|
time_start = (uint64_t)op.params[0].value.b << 32
|
|
& 0xFFFFFFFF00000000lu;
|
|
time_start |= op.params[0].value.a;
|
|
time_end = (uint64_t)op.params[1].value.b << 32
|
|
& 0xFFFFFFFF00000000lu;
|
|
time_end |= op.params[1].value.a;
|
|
time_freq = (uint64_t)op.params[2].value.b << 32
|
|
& 0xFFFFFFFF00000000lu;
|
|
time_freq |= op.params[2].value.a;
|
|
time_ms = (uint64_t)op.params[3].value.b << 32
|
|
& 0xFFFFFFFF00000000lu;
|
|
time_ms |= op.params[3].value.a;
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(1, time_start !=
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(1, time_end !=
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern_ZERO);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(1, time_end > time_start);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1005(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
uint32_t loop_count = 1000, i = 0;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < loop_count; i++)
|
|
res |= TEEC_InvokeCommand(&session, TA_CORE_API_CMD_RET_VALUE,
|
|
NULL, &ret_orig);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_SPECIFIC_RET_VALUE, res);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1010(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
int ta_verify_ret = 0;
|
|
|
|
UNUSED(ta_verify_ret);
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
op.params[0].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern1;
|
|
op.params[0].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern2;
|
|
op.params[1].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern3;
|
|
op.params[1].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern4;
|
|
op.params[2].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern5;
|
|
op.params[2].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern6;
|
|
op.params[3].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern7;
|
|
op.params[3].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern8;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
|
|
TEEC_VALUE_INPUT,
|
|
TEEC_VALUE_INPUT,
|
|
TEEC_VALUE_INPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_VALUE_INPUT,
|
|
&op, &ret_orig));
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1011(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
int ta_verify_ret = 0;
|
|
|
|
UNUSED(ta_verify_ret);
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_OUTPUT,
|
|
TEEC_VALUE_OUTPUT,
|
|
TEEC_VALUE_OUTPUT,
|
|
TEEC_VALUE_OUTPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_VALUE_OUTPUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
op.params[0].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
op.params[0].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
op.params[1].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern5,
|
|
op.params[1].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern4,
|
|
op.params[2].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern3,
|
|
op.params[2].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
op.params[3].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
op.params[3].value.b);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1012(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
op.params[0].value.a = TA_CORE_API_PARAM_TYPE_Test_PatternA;
|
|
op.params[0].value.b = TA_CORE_API_PARAM_TYPE_Test_PatternB;
|
|
op.params[1].value.a = TA_CORE_API_PARAM_TYPE_Test_PatternC;
|
|
op.params[1].value.b = TA_CORE_API_PARAM_TYPE_Test_PatternD;
|
|
op.params[2].value.a = TA_CORE_API_PARAM_TYPE_Test_PatternA;
|
|
op.params[2].value.b = TA_CORE_API_PARAM_TYPE_Test_PatternB;
|
|
op.params[3].value.a = TA_CORE_API_PARAM_TYPE_Test_PatternC;
|
|
op.params[3].value.b = TA_CORE_API_PARAM_TYPE_Test_PatternD;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_VALUE_INOUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
op.params[0].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
op.params[0].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
op.params[1].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
op.params[1].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
op.params[2].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
op.params[2].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
op.params[3].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
op.params[3].value.b);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1013(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
op.params[0].value.a = TA_CORE_API_PARAM_TYPE_Test_Pattern0;
|
|
op.params[0].value.b = TA_CORE_API_PARAM_TYPE_Test_Pattern0;
|
|
op.params[2].value.a = TA_CORE_API_PARAM_TYPE_Test_PatternA;
|
|
op.params[2].value.b = TA_CORE_API_PARAM_TYPE_Test_PatternA;
|
|
op.params[3].value.a = TA_CORE_API_PARAM_TYPE_Test_PatternB;
|
|
op.params[3].value.b = TA_CORE_API_PARAM_TYPE_Test_PatternB;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
|
|
TEEC_VALUE_OUTPUT,
|
|
TEEC_VALUE_INOUT,
|
|
TEEC_VALUE_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(
|
|
TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session, TA_CORE_API_CMD_PARAM_TYPE_VALUE_MIX,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
op.params[1].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
op.params[1].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
op.params[2].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
op.params[2].value.b);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
op.params[3].value.a);
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
op.params[3].value.b);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
#define TEMP_BUFFER_COUNT 4
|
|
#define SIZE_1M (1024 * 1024)
|
|
#define TEMP_BUFFER_TEST_SIZE SIZE_1M
|
|
int xtest_isee_test_1020(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
MEMSET_UINT32(temp_buffer[i], temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
|
|
op.params[i].tmpref.buffer = temp_buffer[i];
|
|
op.params[i].tmpref.size = sizeof(temp_buffer_pattern[i]);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
|
|
TEEC_MEMREF_TEMP_INPUT,
|
|
TEEC_MEMREF_TEMP_INPUT,
|
|
TEEC_MEMREF_TEMP_INPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_TMEP_INPUT,
|
|
&op, &ret_orig));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1021(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {0};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
UNUSED(temp_buffer_pattern);
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
op.params[i].tmpref.buffer = temp_buffer[i];
|
|
op.params[i].tmpref.size = sizeof(unsigned int);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_OUTPUT,
|
|
TEEC_MEMREF_TEMP_OUTPUT,
|
|
TEEC_MEMREF_TEMP_OUTPUT,
|
|
TEEC_MEMREF_TEMP_OUTPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_TMEP_OUTPUT,
|
|
&op, &ret_orig));
|
|
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[0].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern4,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[1].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[2].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[3].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
sizeof(unsigned int)));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1022(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern9,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternA,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternB};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
MEMSET_UINT32(temp_buffer[i], temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
|
|
op.params[i].tmpref.buffer = temp_buffer[i];
|
|
op.params[i].tmpref.size = sizeof(temp_buffer_pattern[i]);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INOUT,
|
|
TEEC_MEMREF_TEMP_INOUT,
|
|
TEEC_MEMREF_TEMP_INOUT,
|
|
TEEC_MEMREF_TEMP_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_TMEP_INOUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[0].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
op.params[0].tmpref.size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[1].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
op.params[1].tmpref.size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[2].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
op.params[2].tmpref.size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[3].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
op.params[3].tmpref.size));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1023(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
MEMSET_UINT32(temp_buffer[i], temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
|
|
op.params[i].tmpref.buffer = temp_buffer[i];
|
|
op.params[i].tmpref.size = sizeof(temp_buffer_pattern[i]);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
|
|
TEEC_MEMREF_TEMP_OUTPUT,
|
|
TEEC_MEMREF_TEMP_INOUT,
|
|
TEEC_MEMREF_TEMP_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_TMEP_MIX,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[1].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3,
|
|
op.params[1].tmpref.size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[2].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
op.params[2].tmpref.size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(op.params[3].tmpref.buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
op.params[3].tmpref.size));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1030(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
shared_mem[i].size = sizeof(temp_buffer_pattern[i]);
|
|
shared_mem[i].flags = TEEC_MEM_INPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_allocate_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(temp_buffer_pattern[i]);
|
|
|
|
MEMSET_UINT32(shared_mem[i].buffer, temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_INPUT,
|
|
&op, &ret_orig));
|
|
|
|
share_mem_allocate_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1031(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
shared_mem[i].size = sizeof(unsigned int);
|
|
shared_mem[i].flags = TEEC_MEM_OUTPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_allocate_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(unsigned int);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_OUTPUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[0].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern4,
|
|
shared_mem[0].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[1].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5,
|
|
shared_mem[1].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[2].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
shared_mem[2].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[3].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
shared_mem[3].size));
|
|
|
|
share_mem_allocate_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1032(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern9,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternA,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternB};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
shared_mem[i].size = sizeof(temp_buffer_pattern[i]);
|
|
shared_mem[i].flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_allocate_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(temp_buffer_pattern[i]);
|
|
|
|
MEMSET_UINT32(shared_mem[i].buffer, temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
}
|
|
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_INOUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[0].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
shared_mem[0].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[1].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
shared_mem[1].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[2].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
shared_mem[2].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[3].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
shared_mem[3].size));
|
|
|
|
share_mem_allocate_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1033(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int shared_mem_flags[TEMP_BUFFER_COUNT] = {
|
|
TEEC_MEM_INPUT, TEEC_MEM_OUTPUT,
|
|
TEEC_MEM_INPUT | TEEC_MEM_OUTPUT,
|
|
TEEC_MEM_INPUT | TEEC_MEM_OUTPUT};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
shared_mem[i].size = sizeof(temp_buffer_pattern[i]);
|
|
shared_mem[i].flags = shared_mem_flags[i];
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_allocate_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(temp_buffer_pattern[i]);
|
|
|
|
MEMSET_UINT32(shared_mem[i].buffer, temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_MIX,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[1].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3,
|
|
shared_mem[1].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[2].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
shared_mem[2].size));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_mem[3].buffer,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
shared_mem[3].size));
|
|
|
|
share_mem_allocate_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1034(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
MEMSET_UINT32(temp_buffer[i], temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
|
|
shared_mem[i].buffer = temp_buffer[i];
|
|
shared_mem[i].size = sizeof(temp_buffer_pattern[i]);
|
|
shared_mem[i].flags = TEEC_MEM_INPUT;
|
|
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(temp_buffer_pattern[i]);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_INPUT,
|
|
&op, &ret_orig));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1035(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
shared_mem[i].buffer = temp_buffer[i];
|
|
shared_mem[i].size = sizeof(unsigned int);
|
|
shared_mem[i].flags = TEEC_MEM_OUTPUT;
|
|
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(unsigned int);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_OUTPUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[0],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern4,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[1],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[2],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[3],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
sizeof(unsigned int)));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1036(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern9,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternA,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternB};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
MEMSET_UINT32(temp_buffer[i], temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
|
|
shared_mem[i].buffer = temp_buffer[i];
|
|
shared_mem[i].size = sizeof(temp_buffer_pattern[i]);
|
|
shared_mem[i].flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
|
|
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(temp_buffer_pattern[i]);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_INOUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[0],
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[1],
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[2],
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[3],
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
sizeof(unsigned int)));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1037(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem[TEMP_BUFFER_COUNT] = { {0} };
|
|
unsigned int b_shared_mem_registered[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int shared_mem_flags[TEMP_BUFFER_COUNT] = {
|
|
TEEC_MEM_INPUT, TEEC_MEM_OUTPUT,
|
|
TEEC_MEM_INPUT | TEEC_MEM_OUTPUT,
|
|
TEEC_MEM_INPUT | TEEC_MEM_OUTPUT};
|
|
unsigned char *temp_buffer[TEMP_BUFFER_COUNT] = {0};
|
|
unsigned int temp_buffer_pattern[TEMP_BUFFER_COUNT] = {
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5};
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
temp_buffer[i] = (unsigned char *)malloc(
|
|
TEMP_BUFFER_TEST_SIZE);
|
|
if (!temp_buffer[i]) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
MEMSET_UINT32(temp_buffer[i], temp_buffer_pattern[i],
|
|
sizeof(temp_buffer_pattern[i]));
|
|
|
|
shared_mem[i].buffer = temp_buffer[i];
|
|
shared_mem[i].size = sizeof(temp_buffer_pattern[i]);
|
|
shared_mem[i].flags = shared_mem_flags[i];
|
|
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000,
|
|
&shared_mem[i]);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(
|
|
TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
b_shared_mem_registered[i] = 1;
|
|
|
|
op.params[i].memref.parent = &shared_mem[i];
|
|
op.params[i].memref.size = sizeof(temp_buffer_pattern[i]);
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE,
|
|
TEEC_MEMREF_WHOLE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_WHOLE_MIX,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[1],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[2],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
sizeof(unsigned int)));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer[3],
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
sizeof(unsigned int)));
|
|
|
|
buffer_alloc_failed:
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
if (temp_buffer[i])
|
|
free(temp_buffer[i]);
|
|
if (b_shared_mem_registered[i])
|
|
TEEC_ReleaseSharedMemory(&shared_mem[i]);
|
|
}
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1040(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *shared_buf_ptr = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_INPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
shared_buf_ptr = shared_mem.buffer;
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern0, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3, TEMP_BUFFER_TEST_SIZE);
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_INPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_INPUT,
|
|
&op, &ret_orig));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1041(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *shared_buf_ptr = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_OUTPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
shared_buf_ptr = shared_mem.buffer;
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_OUTPUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern4,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1042(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *shared_buf_ptr = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
shared_buf_ptr = shared_mem.buffer;
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern9, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternA, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternB, TEMP_BUFFER_TEST_SIZE);
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_INOUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1043(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *shared_buf_ptr = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
|
|
res = TEEC_AllocateSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
shared_buf_ptr = shared_mem.buffer;
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5, TEMP_BUFFER_TEST_SIZE);
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_MIX,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(shared_buf_ptr + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1044(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *temp_buffer = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
temp_buffer = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE * 4);
|
|
if (!temp_buffer) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern0, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3, TEMP_BUFFER_TEST_SIZE);
|
|
|
|
shared_mem.buffer = temp_buffer;
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_INPUT;
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_INPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_INPUT,
|
|
&op, &ret_orig));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
if (temp_buffer)
|
|
free(temp_buffer);
|
|
buffer_alloc_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1045(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *temp_buffer = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
temp_buffer = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE * 4);
|
|
if (!temp_buffer) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
|
|
shared_mem.buffer = temp_buffer;
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_OUTPUT;
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_OUTPUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern4,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
if (temp_buffer)
|
|
free(temp_buffer);
|
|
buffer_alloc_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1046(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *temp_buffer = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
temp_buffer = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE * 4);
|
|
if (!temp_buffer) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern9, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternA, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternB, TEMP_BUFFER_TEST_SIZE);
|
|
|
|
shared_mem.buffer = temp_buffer;
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_INOUT,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternC,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternD,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternE,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_PatternF,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
if (temp_buffer)
|
|
free(temp_buffer);
|
|
buffer_alloc_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1047(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
struct TEEC_SharedMemory shared_mem = {0};
|
|
unsigned char *temp_buffer = NULL;
|
|
uint32_t ret_orig;
|
|
int i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
temp_buffer = (unsigned char *)malloc(TEMP_BUFFER_TEST_SIZE * 4);
|
|
if (!temp_buffer) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto buffer_alloc_failed;
|
|
}
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 0,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern8, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern7, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern6, TEMP_BUFFER_TEST_SIZE);
|
|
MEMSET_UINT32(temp_buffer + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern5, TEMP_BUFFER_TEST_SIZE);
|
|
|
|
shared_mem.buffer = temp_buffer;
|
|
shared_mem.size = TEMP_BUFFER_TEST_SIZE * 4;
|
|
shared_mem.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
|
|
res = TEEC_RegisterSharedMemory(&xtest_isee_ctx_1000, &shared_mem);
|
|
if (res != TEEC_SUCCESS) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
goto share_mem_reg_failed;
|
|
}
|
|
|
|
for (i = 0; i < TEMP_BUFFER_COUNT; i++) {
|
|
op.params[i].memref.parent = &shared_mem;
|
|
op.params[i].memref.offset = TEMP_BUFFER_TEST_SIZE * i;
|
|
op.params[i].memref.size = TEMP_BUFFER_TEST_SIZE;
|
|
}
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
|
|
TEEC_MEMREF_PARTIAL_OUTPUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT,
|
|
TEEC_MEMREF_PARTIAL_INOUT);
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_TEST_SUCCESS,
|
|
TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_PARAM_TYPE_MEMREF_PARTIAL_MIX,
|
|
&op, &ret_orig));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 1,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern3,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 2,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern2,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
(void)ADBG_EXPECT_TEEC_RESULT(TA_CORE_API_PARAM_TYPE_PATTERN_MATCH,
|
|
ARRAY_MATCH_PATTERN(temp_buffer + TEMP_BUFFER_TEST_SIZE * 3,
|
|
TA_CORE_API_PARAM_TYPE_Test_Pattern1,
|
|
TEMP_BUFFER_TEST_SIZE));
|
|
|
|
TEEC_ReleaseSharedMemory(&shared_mem);
|
|
share_mem_reg_failed:
|
|
if (temp_buffer)
|
|
free(temp_buffer);
|
|
buffer_alloc_failed:
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1100(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
unsigned char *rpmb_buffer = NULL;
|
|
int rpmb_access_ret = 0;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
#define RPMB_TEST_SIZE 128
|
|
#define RPMB_TEST_PATTERN 0xFA
|
|
rpmb_buffer = (unsigned char *)malloc(RPMB_TEST_SIZE);
|
|
if (!rpmb_buffer) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
return case_res;
|
|
}
|
|
memset(rpmb_buffer, RPMB_TEST_PATTERN, RPMB_TEST_SIZE);
|
|
|
|
op.params[0].tmpref.buffer = rpmb_buffer;
|
|
op.params[0].tmpref.size = RPMB_TEST_SIZE;
|
|
op.params[1].value.a = RPMB_TEST_SIZE;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
|
|
TEEC_VALUE_INOUT, TEEC_NONE, TEEC_NONE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_RPMB_WRITE, &op, &ret_orig));
|
|
|
|
rpmb_access_ret = op.params[1].value.a;
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(rpmb_access_ret);
|
|
|
|
free(rpmb_buffer);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1101(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
unsigned char *rpmb_buffer = NULL;
|
|
int rpmb_access_ret = 0, i;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
#define RPMB_TEST_SIZE 128
|
|
#define RPMB_TEST_PATTERN 0xFA
|
|
rpmb_buffer = (unsigned char *)malloc(RPMB_TEST_SIZE);
|
|
if (!rpmb_buffer) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_OUT_OF_MEMORY);
|
|
return case_res;
|
|
}
|
|
memset(rpmb_buffer, 0x00, RPMB_TEST_SIZE);
|
|
|
|
op.params[0].tmpref.buffer = rpmb_buffer;
|
|
op.params[0].tmpref.size = RPMB_TEST_SIZE;
|
|
op.params[1].value.a = RPMB_TEST_SIZE;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_OUTPUT,
|
|
TEEC_VALUE_INOUT, TEEC_NONE, TEEC_NONE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_RPMB_READ, &op, &ret_orig));
|
|
|
|
rpmb_access_ret = op.params[1].value.a;
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(rpmb_access_ret);
|
|
|
|
for (i = 0; i < RPMB_TEST_SIZE; i++) {
|
|
if (rpmb_buffer[i] != RPMB_TEST_PATTERN) {
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_ERROR_BAD_FORMAT);
|
|
break;
|
|
}
|
|
}
|
|
|
|
free(rpmb_buffer);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1102(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
struct TEEC_Operation op;
|
|
uint32_t ret_orig;
|
|
uint32_t sys_time_s, sys_time_ms;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
#define SYSTEM_NON_ZERO_CHECK_VALUE 0x12345678
|
|
op.params[0].value.a = SYSTEM_NON_ZERO_CHECK_VALUE;
|
|
op.params[1].value.a = SYSTEM_NON_ZERO_CHECK_VALUE;
|
|
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INOUT, TEEC_VALUE_INOUT,
|
|
TEEC_NONE, TEEC_NONE);
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_Get_System_Time, &op, &ret_orig));
|
|
|
|
sys_time_s = op.params[0].value.a;
|
|
sys_time_ms = op.params[1].value.a;
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(sys_time_s ==
|
|
SYSTEM_NON_ZERO_CHECK_VALUE);
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(sys_time_ms ==
|
|
SYSTEM_NON_ZERO_CHECK_VALUE);
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(sys_time_s == 0x0 &&
|
|
sys_time_ms == 0x0);
|
|
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1200(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_INVOKE_COMMAND_ENTRY_POINT,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1201(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_ALLOCATE_TRANSIENT_OBJECT,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1203(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_POPULATE_TRANSIENT_OBJECT,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1204(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_ALLOCATE_OPERATION,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1206(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_SET_OPERATION_KEY,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1207(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_GENERATE_RANDOM,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1208(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_CHECK_MEMORY_ACCESS_RIGHTS,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1209(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_MALLOC, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1210(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_REALLOC, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1212(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_MEM_MOVE, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1213(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_MEM_COMPARE, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1214(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_MEM_FILL, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1215(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_GET_PROPERTY_AS_UUID,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1216(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_LOG_VPRINTF, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1217(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_LOG_PRINTF, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1218(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_DBG_PRINTF, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1219(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CORE_API_CMD_DBG_VPRINTF, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1300(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_AES_ECB, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1301(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_AES_CBC, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1302(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_AES_CTR, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1303(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_SHA1, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1304(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_SHA256, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1305(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_HMAC_SHA256,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1306(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_HMAC_SHA1, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1307(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_RSA_PKCS1_PSS_MGF1_SHA1,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1308(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_RSA_NOPAD, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1400(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_ASYMMETRIC_ENCRYPT,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1401(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_ASYMMETRIC_DECRYPT,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1402(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_ASYMMETRIC_SIGN_DIGEST,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1403(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_ASYMMETRIC_VERIFY_DIGEST,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1404(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_DIGEST_UPDATE,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1405(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_DIGEST_DO_FINAL,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1406(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_CIPHER_INIT,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1407(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_CIPHER_UPDATE,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1408(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_CIPHER_DO_FINAL,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1409(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_MAC_INIT, NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1410(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_MAC_UPDATE,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1411(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_MAC_COMPUTE_FINAL,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1412(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
TA_CRYPTO_API_CMD_MAC_COMPARE_FINAL,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1800(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
MTK_TEST_CRYPTO_AES_ECB_PERFORMANCE1,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1801(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
MTK_TEST_CRYPTO_AES_ECB_PERFORMANCE2,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1802(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
MTK_TEST_CRYPTO_AES_ECB_PERFORMANCE3,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|
|
|
|
int xtest_isee_test_1803(void)
|
|
{
|
|
unsigned int res;
|
|
struct TEEC_Session session;
|
|
uint32_t ret_orig;
|
|
|
|
res = xtest_teec_open_session(&xtest_isee_ctx_1000, &session,
|
|
&isee_test_ta_uuid, NULL, &ret_orig);
|
|
if (!ADBG_EXPECT_TEEC_SUCCESS(res))
|
|
return res;
|
|
|
|
(void)ADBG_EXPECT_TEEC_SUCCESS(TEEC_InvokeCommand(&session,
|
|
MTK_TEST_CRYPTO_AES_ECB_PERFORMANCE4,
|
|
NULL, &ret_orig));
|
|
TEEC_CloseSession(&session);
|
|
return case_res;
|
|
}
|