aboutsummaryrefslogtreecommitdiff
path: root/test/validation/api/stash/stash.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/validation/api/stash/stash.c')
-rw-r--r--test/validation/api/stash/stash.c178
1 files changed, 154 insertions, 24 deletions
diff --git a/test/validation/api/stash/stash.c b/test/validation/api/stash/stash.c
index c99d5a471..49da49dfd 100644
--- a/test/validation/api/stash/stash.c
+++ b/test/validation/api/stash/stash.c
@@ -27,6 +27,13 @@
#define MAX_RETRY 1024
#define RETRY_MSEC 100
+typedef enum stash_op_t {
+ STASH_GEN,
+ STASH_U32,
+ STASH_U64,
+ STASH_PTR
+} stash_op_t;
+
typedef struct num_obj_t {
uint32_t u64;
uint32_t u32;
@@ -358,7 +365,7 @@ static void stash_create_fifo_u32_all(void)
CU_ASSERT_FATAL(odp_stash_destroy(stash[i]) == 0);
}
-static void stash_default_put(uint32_t size, int32_t burst)
+static void stash_default_put(uint32_t size, int32_t burst, stash_op_t op)
{
odp_stash_t stash;
odp_stash_param_t param;
@@ -414,7 +421,16 @@ static void stash_default_put(uint32_t size, int32_t burst)
retry = MAX_RETRY;
num_left = num;
while (num_left) {
- ret = odp_stash_put(stash, input, burst);
+ if (op == STASH_GEN)
+ ret = odp_stash_put(stash, input, burst);
+ else if (op == STASH_U32)
+ ret = odp_stash_put_u32(stash, input_u32, burst);
+ else if (op == STASH_U64)
+ ret = odp_stash_put_u64(stash, input_u64, burst);
+ else if (op == STASH_PTR)
+ ret = odp_stash_put_ptr(stash, input, burst);
+ else
+ ret = -1;
CU_ASSERT_FATAL(ret >= 0);
CU_ASSERT_FATAL(ret <= burst);
@@ -446,8 +462,16 @@ static void stash_default_put(uint32_t size, int32_t burst)
output_u8[0] = MAGIC_U8;
output_u8[burst + 1] = MAGIC_U8;
}
-
- ret = odp_stash_get(stash, output, burst);
+ if (op == STASH_GEN)
+ ret = odp_stash_get(stash, output, burst);
+ else if (op == STASH_U32)
+ ret = odp_stash_get_u32(stash, &output_u32[1], burst);
+ else if (op == STASH_U64)
+ ret = odp_stash_get_u64(stash, &output_u64[1], burst);
+ else if (op == STASH_PTR)
+ ret = odp_stash_get_ptr(stash, output, burst);
+ else
+ ret = -1;
CU_ASSERT_FATAL(ret >= 0);
CU_ASSERT_FATAL(ret <= burst);
@@ -494,7 +518,7 @@ static void stash_default_put(uint32_t size, int32_t burst)
CU_ASSERT_FATAL(odp_stash_destroy(stash) == 0);
}
-static void stash_fifo_put(uint32_t size, int32_t burst)
+static void stash_fifo_put(uint32_t size, int32_t burst, stash_op_t op)
{
odp_stash_t stash;
odp_stash_param_t param;
@@ -553,8 +577,16 @@ static void stash_fifo_put(uint32_t size, int32_t burst)
else
input_u8[i] = VAL_U8 + num_left - i;
}
-
- ret = odp_stash_put(stash, input, burst);
+ if (op == STASH_GEN)
+ ret = odp_stash_put(stash, input, burst);
+ else if (op == STASH_U32)
+ ret = odp_stash_put_u32(stash, input_u32, burst);
+ else if (op == STASH_U64)
+ ret = odp_stash_put_u64(stash, input_u64, burst);
+ else if (op == STASH_PTR)
+ ret = odp_stash_put_ptr(stash, input, burst);
+ else
+ ret = -1;
CU_ASSERT_FATAL(ret >= 0);
if (ret) {
@@ -587,7 +619,16 @@ static void stash_fifo_put(uint32_t size, int32_t burst)
output_u8[burst + 1] = MAGIC_U8;
}
- ret = odp_stash_get(stash, output, burst);
+ if (op == STASH_GEN)
+ ret = odp_stash_get(stash, output, burst);
+ else if (op == STASH_U32)
+ ret = odp_stash_get_u32(stash, &output_u32[1], burst);
+ else if (op == STASH_U64)
+ ret = odp_stash_get_u64(stash, &output_u64[1], burst);
+ else if (op == STASH_PTR)
+ ret = odp_stash_get_ptr(stash, output, burst);
+ else
+ ret = -1;
CU_ASSERT_FATAL(ret >= 0);
if (size == sizeof(uint64_t)) {
@@ -649,6 +690,14 @@ static int check_support_64(void)
return ODP_TEST_INACTIVE;
}
+static int check_support_ptr(void)
+{
+ if (global.capa_default.max_obj_size >= sizeof(uintptr_t))
+ return ODP_TEST_ACTIVE;
+
+ return ODP_TEST_INACTIVE;
+}
+
static int check_support_fifo_64(void)
{
if (global.fifo_supported &&
@@ -658,6 +707,15 @@ static int check_support_fifo_64(void)
return ODP_TEST_INACTIVE;
}
+static int check_support_fifo_ptr(void)
+{
+ if (global.fifo_supported &&
+ global.capa_fifo.max_obj_size >= sizeof(uintptr_t))
+ return ODP_TEST_ACTIVE;
+
+ return ODP_TEST_INACTIVE;
+}
+
static int check_support_fifo(void)
{
if (global.fifo_supported)
@@ -668,82 +726,142 @@ static int check_support_fifo(void)
static void stash_default_put_u64_1(void)
{
- stash_default_put(sizeof(uint64_t), 1);
+ stash_default_put(sizeof(uint64_t), 1, STASH_GEN);
}
static void stash_default_put_u64_n(void)
{
- stash_default_put(sizeof(uint64_t), BURST);
+ stash_default_put(sizeof(uint64_t), BURST, STASH_GEN);
+}
+
+static void stash_default_u64_put_u64_1(void)
+{
+ stash_default_put(sizeof(uint64_t), 1, STASH_U64);
+}
+
+static void stash_default_u64_put_u64_n(void)
+{
+ stash_default_put(sizeof(uint64_t), BURST, STASH_U64);
+}
+
+static void stash_default_put_ptr_1(void)
+{
+ stash_default_put(sizeof(uintptr_t), 1, STASH_PTR);
+}
+
+static void stash_default_put_ptr_n(void)
+{
+ stash_default_put(sizeof(uintptr_t), BURST, STASH_PTR);
}
static void stash_default_put_u32_1(void)
{
- stash_default_put(sizeof(uint32_t), 1);
+ stash_default_put(sizeof(uint32_t), 1, STASH_GEN);
}
static void stash_default_put_u32_n(void)
{
- stash_default_put(sizeof(uint32_t), BURST);
+ stash_default_put(sizeof(uint32_t), BURST, STASH_GEN);
+}
+
+static void stash_default_u32_put_u32_1(void)
+{
+ stash_default_put(sizeof(uint32_t), 1, STASH_U32);
+}
+
+static void stash_default_u32_put_u32_n(void)
+{
+ stash_default_put(sizeof(uint32_t), BURST, STASH_U32);
}
static void stash_default_put_u16_1(void)
{
- stash_default_put(sizeof(uint16_t), 1);
+ stash_default_put(sizeof(uint16_t), 1, STASH_GEN);
}
static void stash_default_put_u16_n(void)
{
- stash_default_put(sizeof(uint16_t), BURST);
+ stash_default_put(sizeof(uint16_t), BURST, STASH_GEN);
}
static void stash_default_put_u8_1(void)
{
- stash_default_put(sizeof(uint8_t), 1);
+ stash_default_put(sizeof(uint8_t), 1, STASH_GEN);
}
static void stash_default_put_u8_n(void)
{
- stash_default_put(sizeof(uint8_t), BURST);
+ stash_default_put(sizeof(uint8_t), BURST, STASH_GEN);
}
static void stash_fifo_put_u64_1(void)
{
- stash_fifo_put(sizeof(uint64_t), 1);
+ stash_fifo_put(sizeof(uint64_t), 1, STASH_GEN);
}
static void stash_fifo_put_u64_n(void)
{
- stash_fifo_put(sizeof(uint64_t), BURST);
+ stash_fifo_put(sizeof(uint64_t), BURST, STASH_GEN);
+}
+
+static void stash_fifo_u64_put_u64_1(void)
+{
+ stash_fifo_put(sizeof(uint64_t), 1, STASH_U64);
+}
+
+static void stash_fifo_u64_put_u64_n(void)
+{
+ stash_fifo_put(sizeof(uint64_t), BURST, STASH_U64);
+}
+
+static void stash_fifo_put_ptr_1(void)
+{
+ stash_fifo_put(sizeof(uintptr_t), 1, STASH_PTR);
+}
+
+static void stash_fifo_put_ptr_n(void)
+{
+ stash_fifo_put(sizeof(uintptr_t), BURST, STASH_PTR);
}
static void stash_fifo_put_u32_1(void)
{
- stash_fifo_put(sizeof(uint32_t), 1);
+ stash_fifo_put(sizeof(uint32_t), 1, STASH_GEN);
}
static void stash_fifo_put_u32_n(void)
{
- stash_fifo_put(sizeof(uint32_t), BURST);
+ stash_fifo_put(sizeof(uint32_t), BURST, STASH_GEN);
+}
+
+static void stash_fifo_u32_put_u32_1(void)
+{
+ stash_fifo_put(sizeof(uint32_t), 1, STASH_U32);
+}
+
+static void stash_fifo_u32_put_u32_n(void)
+{
+ stash_fifo_put(sizeof(uint32_t), BURST, STASH_U32);
}
static void stash_fifo_put_u16_1(void)
{
- stash_fifo_put(sizeof(uint16_t), 1);
+ stash_fifo_put(sizeof(uint16_t), 1, STASH_GEN);
}
static void stash_fifo_put_u16_n(void)
{
- stash_fifo_put(sizeof(uint16_t), BURST);
+ stash_fifo_put(sizeof(uint16_t), BURST, STASH_GEN);
}
static void stash_fifo_put_u8_1(void)
{
- stash_fifo_put(sizeof(uint8_t), 1);
+ stash_fifo_put(sizeof(uint8_t), 1, STASH_GEN);
}
static void stash_fifo_put_u8_n(void)
{
- stash_fifo_put(sizeof(uint8_t), BURST);
+ stash_fifo_put(sizeof(uint8_t), BURST, STASH_GEN);
}
odp_testinfo_t stash_suite[] = {
@@ -753,8 +871,14 @@ odp_testinfo_t stash_suite[] = {
ODP_TEST_INFO(stash_create_u32),
ODP_TEST_INFO_CONDITIONAL(stash_default_put_u64_1, check_support_64),
ODP_TEST_INFO_CONDITIONAL(stash_default_put_u64_n, check_support_64),
+ ODP_TEST_INFO_CONDITIONAL(stash_default_u64_put_u64_1, check_support_64),
+ ODP_TEST_INFO_CONDITIONAL(stash_default_u64_put_u64_n, check_support_64),
+ ODP_TEST_INFO_CONDITIONAL(stash_default_put_ptr_1, check_support_ptr),
+ ODP_TEST_INFO_CONDITIONAL(stash_default_put_ptr_n, check_support_ptr),
ODP_TEST_INFO(stash_default_put_u32_1),
ODP_TEST_INFO(stash_default_put_u32_n),
+ ODP_TEST_INFO(stash_default_u32_put_u32_1),
+ ODP_TEST_INFO(stash_default_u32_put_u32_n),
ODP_TEST_INFO(stash_default_put_u16_1),
ODP_TEST_INFO(stash_default_put_u16_n),
ODP_TEST_INFO(stash_default_put_u8_1),
@@ -763,8 +887,14 @@ odp_testinfo_t stash_suite[] = {
ODP_TEST_INFO(stash_create_u32_all),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u64_1, check_support_fifo_64),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u64_n, check_support_fifo_64),
+ ODP_TEST_INFO_CONDITIONAL(stash_fifo_u64_put_u64_1, check_support_fifo_64),
+ ODP_TEST_INFO_CONDITIONAL(stash_fifo_u64_put_u64_n, check_support_fifo_64),
+ ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_ptr_1, check_support_fifo_ptr),
+ ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_ptr_n, check_support_fifo_ptr),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u32_1, check_support_fifo),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u32_n, check_support_fifo),
+ ODP_TEST_INFO_CONDITIONAL(stash_fifo_u32_put_u32_1, check_support_fifo),
+ ODP_TEST_INFO_CONDITIONAL(stash_fifo_u32_put_u32_n, check_support_fifo),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u16_1, check_support_fifo),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u16_n, check_support_fifo),
ODP_TEST_INFO_CONDITIONAL(stash_fifo_put_u8_1, check_support_fifo),