aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJanne Peltonen <janne.peltonen@nokia.com>2024-01-04 15:38:16 +0200
committerMatias Elo <matias.elo@nokia.com>2024-01-16 15:00:31 +0200
commitda8f0d9038b37f4165a3ac053c33e5300118109c (patch)
tree4422f5fae79d5439e31c3081edd85aff164594cb /test
parent830429333cb58dd6e59a0f0b6712f81c0fd9a7ee (diff)
validation: ipsec: combine tests to single test binary
Do not make separate binaries for different ipsec operation modes but use single binary that takes the operation mode as a parameter. Also simplify the related code a bit. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Diffstat (limited to 'test')
-rw-r--r--test/validation/api/Makefile.am8
-rw-r--r--test/validation/api/ipsec/.gitignore5
-rw-r--r--test/validation/api/ipsec/Makefile.am17
-rw-r--r--test/validation/api/ipsec/ipsec.c32
-rw-r--r--test/validation/api/ipsec/ipsec.h5
-rw-r--r--test/validation/api/ipsec/ipsec_async.c55
-rwxr-xr-xtest/validation/api/ipsec/ipsec_async.sh3
-rw-r--r--test/validation/api/ipsec/ipsec_inline_in.c54
-rwxr-xr-xtest/validation/api/ipsec/ipsec_inline_in.sh3
-rw-r--r--test/validation/api/ipsec/ipsec_inline_out.c54
-rwxr-xr-xtest/validation/api/ipsec/ipsec_inline_out.sh3
-rw-r--r--test/validation/api/ipsec/ipsec_main.c83
-rw-r--r--test/validation/api/ipsec/ipsec_sync.c49
-rwxr-xr-xtest/validation/api/ipsec/ipsec_sync.sh3
14 files changed, 121 insertions, 253 deletions
diff --git a/test/validation/api/Makefile.am b/test/validation/api/Makefile.am
index 70e322ff0..abafa1e10 100644
--- a/test/validation/api/Makefile.am
+++ b/test/validation/api/Makefile.am
@@ -55,10 +55,10 @@ TESTS = \
init/init_feature_disabled$(EXEEXT) \
init/init_test_param_init$(EXEEXT) \
init/init_test_term_abnormal$(EXEEXT) \
- ipsec/ipsec_sync$(EXEEXT) \
- ipsec/ipsec_async$(EXEEXT) \
- ipsec/ipsec_inline_in$(EXEEXT) \
- ipsec/ipsec_inline_out$(EXEEXT) \
+ ipsec/ipsec_sync.sh \
+ ipsec/ipsec_async.sh \
+ ipsec/ipsec_inline_in.sh \
+ ipsec/ipsec_inline_out.sh \
lock/lock_main$(EXEEXT) \
packet/packet_main$(EXEEXT) \
pktio/pktio_main$(EXEEXT) \
diff --git a/test/validation/api/ipsec/.gitignore b/test/validation/api/ipsec/.gitignore
index 967356064..2def047f3 100644
--- a/test/validation/api/ipsec/.gitignore
+++ b/test/validation/api/ipsec/.gitignore
@@ -1,4 +1 @@
-ipsec_sync
-ipsec_async
-ipsec_inline_in
-ipsec_inline_out
+ipsec_main
diff --git a/test/validation/api/ipsec/Makefile.am b/test/validation/api/ipsec/Makefile.am
index 1a29d687d..51b50dd02 100644
--- a/test/validation/api/ipsec/Makefile.am
+++ b/test/validation/api/ipsec/Makefile.am
@@ -11,14 +11,15 @@ libtestipsec_la_SOURCES = \
reass_test_vectors.c
test_PROGRAMS = \
- ipsec_sync \
- ipsec_async \
- ipsec_inline_in \
- ipsec_inline_out
+ ipsec_main
-ipsec_sync_SOURCES = ipsec_sync.c
-ipsec_async_SOURCES = ipsec_async.c
-ipsec_inline_in_SOURCES = ipsec_inline_in.c
-ipsec_inline_out_SOURCES = ipsec_inline_out.c
+ipsec_main_SOURCES = \
+ ipsec_main.c
PRELDADD += libtestipsec.la
+
+EXTRA_DIST = \
+ ipsec_sync.sh \
+ ipsec_async.sh \
+ ipsec_inline_in.sh \
+ ipsec_inline_out.sh
diff --git a/test/validation/api/ipsec/ipsec.c b/test/validation/api/ipsec/ipsec.c
index 9849a44b5..5ad7bd48d 100644
--- a/test/validation/api/ipsec/ipsec.c
+++ b/test/validation/api/ipsec/ipsec.c
@@ -29,7 +29,6 @@ static odp_ipsec_capability_t capa;
static int sched_ev_buffer_tail;
odp_bool_t sa_expiry_notified;
-
#define PKT_POOL_NUM 64
#define EVENT_WAIT_TIME ODP_TIME_SEC_IN_NS
#define STATUS_EVENT_WAIT_TIME ODP_TIME_MSEC_IN_NS
@@ -38,6 +37,8 @@ odp_bool_t sa_expiry_notified;
#define PACKET_USER_PTR ((void *)0x1212fefe)
#define IPSEC_SA_CTX ((void *)0xfefefafa)
+static int ipsec_config(void);
+
static odp_pktio_t pktio_create(odp_pool_t pool)
{
odp_pktio_t pktio;
@@ -1296,16 +1297,6 @@ int ipsec_suite_term(void)
return 0;
}
-int ipsec_in_term(void)
-{
- return ipsec_suite_term();
-}
-
-int ipsec_out_term(void)
-{
- return ipsec_suite_term();
-}
-
static odp_queue_t sched_queue_create(const char *name)
{
odp_queue_param_t qparam;
@@ -1366,12 +1357,10 @@ int ipsec_suite_sched_init(void)
return ipsec_suite_init();
}
-int ipsec_init(odp_instance_t *inst, odp_ipsec_op_mode_t mode)
+int ipsec_init(odp_instance_t *inst)
{
odp_pool_param_t params;
- odp_pool_t pool;
odp_pool_capability_t pool_capa;
- odp_pktio_t pktio;
odp_init_t init_param;
odph_helper_options_t helper_options;
@@ -1427,25 +1416,26 @@ int ipsec_init(odp_instance_t *inst, odp_ipsec_op_mode_t mode)
return -1;
}
- pool = odp_pool_create("packet_pool", &params);
+ suite_context.pool = odp_pool_create("packet_pool", &params);
- if (ODP_POOL_INVALID == pool) {
+ if (suite_context.pool == ODP_POOL_INVALID) {
ODPH_ERR("Packet pool creation failed\n");
return -1;
}
- if (mode == ODP_IPSEC_OP_MODE_INLINE) {
- pktio = pktio_create(pool);
- if (ODP_PKTIO_INVALID == pktio) {
+ if (suite_context.inbound_op_mode == ODP_IPSEC_OP_MODE_INLINE ||
+ suite_context.outbound_op_mode == ODP_IPSEC_OP_MODE_INLINE) {
+ suite_context.pktio = pktio_create(suite_context.pool);
+ if (suite_context.pktio == ODP_PKTIO_INVALID) {
ODPH_ERR("IPsec pktio creation failed\n");
return -1;
}
}
- return 0;
+ return ipsec_config();
}
-int ipsec_config(odp_instance_t ODP_UNUSED inst)
+static int ipsec_config(void)
{
odp_ipsec_config_t ipsec_config;
diff --git a/test/validation/api/ipsec/ipsec.h b/test/validation/api/ipsec/ipsec.h
index 8eed65c50..47612e3b3 100644
--- a/test/validation/api/ipsec/ipsec.h
+++ b/test/validation/api/ipsec/ipsec.h
@@ -20,9 +20,8 @@
extern odp_testinfo_t ipsec_in_suite[];
extern odp_testinfo_t ipsec_out_suite[];
-int ipsec_init(odp_instance_t *inst, odp_ipsec_op_mode_t mode);
+int ipsec_init(odp_instance_t *inst);
int ipsec_term(odp_instance_t inst);
-int ipsec_config(odp_instance_t inst);
int ipsec_in_inline_init(void);
int ipsec_out_inline_init(void);
@@ -31,8 +30,6 @@ int ipsec_suite_sync_init(void);
int ipsec_suite_plain_init(void);
int ipsec_suite_sched_init(void);
int ipsec_suite_term(void);
-int ipsec_in_term(void);
-int ipsec_out_term(void);
struct suite_context_s {
odp_bool_t reass_ipv4;
diff --git a/test/validation/api/ipsec/ipsec_async.c b/test/validation/api/ipsec/ipsec_async.c
deleted file mode 100644
index 053de32ec..000000000
--- a/test/validation/api/ipsec/ipsec_async.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (c) 2017-2018, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "ipsec.h"
-
-static int ipsec_async_init(odp_instance_t *inst)
-{
- int rc;
-
- suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
- suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
-
- rc = ipsec_init(inst, ODP_IPSEC_OP_MODE_ASYNC);
- if (rc != 0)
- return rc;
-
- suite_context.pool = odp_pool_lookup("packet_pool");
- if (suite_context.pool == ODP_POOL_INVALID)
- return -1;
-
- return ipsec_config(*inst);
-}
-
-odp_suiteinfo_t ipsec_suites[] = {
- {"IPsec-plain-in", ipsec_suite_plain_init, ipsec_suite_term,
- ipsec_in_suite},
- {"IPsec-sched-in", ipsec_suite_sched_init, ipsec_suite_term,
- ipsec_in_suite},
- {"IPsec-plain-out", ipsec_suite_plain_init, ipsec_suite_term,
- ipsec_out_suite},
- {"IPsec-sched-out", ipsec_suite_sched_init, ipsec_suite_term,
- ipsec_out_suite},
- ODP_SUITE_INFO_NULL,
-};
-
-int main(int argc, char *argv[])
-{
- int ret;
-
- /* parse common options: */
- if (odp_cunit_parse_options(&argc, argv))
- return -1;
-
- odp_cunit_register_global_init(ipsec_async_init);
- odp_cunit_register_global_term(ipsec_term);
-
- ret = odp_cunit_register(ipsec_suites);
- if (ret == 0)
- ret = odp_cunit_run();
-
- return ret;
-}
diff --git a/test/validation/api/ipsec/ipsec_async.sh b/test/validation/api/ipsec/ipsec_async.sh
new file mode 100755
index 000000000..c12f3e70a
--- /dev/null
+++ b/test/validation/api/ipsec/ipsec_async.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+TEST_DIR="${TEST_DIR:-$(dirname $0)/..}/ipsec"
+$TEST_DIR/ipsec_main$EXEEXT async
diff --git a/test/validation/api/ipsec/ipsec_inline_in.c b/test/validation/api/ipsec/ipsec_inline_in.c
deleted file mode 100644
index 8deb3c8df..000000000
--- a/test/validation/api/ipsec/ipsec_inline_in.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (c) 2017-2018, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "ipsec.h"
-
-static int ipsec_sync_init(odp_instance_t *inst)
-{
- int rc;
-
- suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_INLINE;
- suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
-
- rc = ipsec_init(inst, ODP_IPSEC_OP_MODE_INLINE);
- if (rc != 0)
- return rc;
-
- suite_context.pool = odp_pool_lookup("packet_pool");
- if (suite_context.pool == ODP_POOL_INVALID)
- return -1;
- suite_context.pktio = odp_pktio_lookup("loop");
- if (suite_context.pktio == ODP_PKTIO_INVALID)
- return -1;
-
- return ipsec_config(*inst);
-}
-
-odp_suiteinfo_t ipsec_suites[] = {
- {"IPsec-plain-in", ipsec_suite_plain_init, ipsec_suite_term,
- ipsec_in_suite},
- {"IPsec-sched-in", ipsec_suite_sched_init, ipsec_suite_term,
- ipsec_in_suite},
- ODP_SUITE_INFO_NULL,
-};
-
-int main(int argc, char *argv[])
-{
- int ret;
-
- /* parse common options: */
- if (odp_cunit_parse_options(&argc, argv))
- return -1;
-
- odp_cunit_register_global_init(ipsec_sync_init);
- odp_cunit_register_global_term(ipsec_term);
-
- ret = odp_cunit_register(ipsec_suites);
- if (ret == 0)
- ret = odp_cunit_run();
-
- return ret;
-}
diff --git a/test/validation/api/ipsec/ipsec_inline_in.sh b/test/validation/api/ipsec/ipsec_inline_in.sh
new file mode 100755
index 000000000..c1d1fed36
--- /dev/null
+++ b/test/validation/api/ipsec/ipsec_inline_in.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+TEST_DIR="${TEST_DIR:-$(dirname $0)/..}/ipsec"
+$TEST_DIR/ipsec_main$EXEEXT inline-in
diff --git a/test/validation/api/ipsec/ipsec_inline_out.c b/test/validation/api/ipsec/ipsec_inline_out.c
deleted file mode 100644
index 89035f37b..000000000
--- a/test/validation/api/ipsec/ipsec_inline_out.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (c) 2017-2018, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "ipsec.h"
-
-static int ipsec_sync_init(odp_instance_t *inst)
-{
- int rc;
-
- suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
- suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_INLINE;
-
- rc = ipsec_init(inst, ODP_IPSEC_OP_MODE_INLINE);
- if (rc != 0)
- return rc;
-
- suite_context.pool = odp_pool_lookup("packet_pool");
- if (suite_context.pool == ODP_POOL_INVALID)
- return -1;
- suite_context.pktio = odp_pktio_lookup("loop");
- if (suite_context.pktio == ODP_PKTIO_INVALID)
- return -1;
-
- return ipsec_config(*inst);
-}
-
-odp_suiteinfo_t ipsec_suites[] = {
- {"IPsec-plain-out", ipsec_suite_plain_init, ipsec_suite_term,
- ipsec_out_suite},
- {"IPsec-sched-out", ipsec_suite_sched_init, ipsec_suite_term,
- ipsec_out_suite},
- ODP_SUITE_INFO_NULL,
-};
-
-int main(int argc, char *argv[])
-{
- int ret;
-
- /* parse common options: */
- if (odp_cunit_parse_options(&argc, argv))
- return -1;
-
- odp_cunit_register_global_init(ipsec_sync_init);
- odp_cunit_register_global_term(ipsec_term);
-
- ret = odp_cunit_register(ipsec_suites);
- if (ret == 0)
- ret = odp_cunit_run();
-
- return ret;
-}
diff --git a/test/validation/api/ipsec/ipsec_inline_out.sh b/test/validation/api/ipsec/ipsec_inline_out.sh
new file mode 100755
index 000000000..91ebccac7
--- /dev/null
+++ b/test/validation/api/ipsec/ipsec_inline_out.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+TEST_DIR="${TEST_DIR:-$(dirname $0)/..}/ipsec"
+$TEST_DIR/ipsec_main$EXEEXT inline-out
diff --git a/test/validation/api/ipsec/ipsec_main.c b/test/validation/api/ipsec/ipsec_main.c
new file mode 100644
index 000000000..2c343f063
--- /dev/null
+++ b/test/validation/api/ipsec/ipsec_main.c
@@ -0,0 +1,83 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2017-2018 Linaro Limited
+ * Copyright (c) 2024 Nokia
+ */
+
+#include <odp_api.h>
+#include <odp_cunit_common.h>
+#include "ipsec.h"
+
+odp_suiteinfo_t ipsec_sync_suites[] = {
+ {"IPsec-in", ipsec_suite_sync_init, ipsec_suite_term, ipsec_in_suite},
+ {"IPsec-out", ipsec_suite_sync_init, ipsec_suite_term, ipsec_out_suite},
+ ODP_SUITE_INFO_NULL,
+};
+
+odp_suiteinfo_t ipsec_async_suites[] = {
+ {"IPsec-plain-in", ipsec_suite_plain_init, ipsec_suite_term, ipsec_in_suite},
+ {"IPsec-sched-in", ipsec_suite_sched_init, ipsec_suite_term, ipsec_in_suite},
+ {"IPsec-plain-out", ipsec_suite_plain_init, ipsec_suite_term, ipsec_out_suite},
+ {"IPsec-sched-out", ipsec_suite_sched_init, ipsec_suite_term, ipsec_out_suite},
+ ODP_SUITE_INFO_NULL,
+};
+
+odp_suiteinfo_t ipsec_inline_in_suites[] = {
+ {"IPsec-plain-in", ipsec_suite_plain_init, ipsec_suite_term, ipsec_in_suite},
+ {"IPsec-sched-in", ipsec_suite_sched_init, ipsec_suite_term, ipsec_in_suite},
+ ODP_SUITE_INFO_NULL,
+};
+
+odp_suiteinfo_t ipsec_inline_out_suites[] = {
+ {"IPsec-plain-out", ipsec_suite_plain_init, ipsec_suite_term, ipsec_out_suite},
+ {"IPsec-sched-out", ipsec_suite_sched_init, ipsec_suite_term, ipsec_out_suite},
+ ODP_SUITE_INFO_NULL,
+};
+
+static void usage_exit(void)
+{
+ fprintf(stderr, "Usage: ipsec_main {sync|async|inline-in|inline-out}\n");
+ exit(EXIT_FAILURE);
+}
+
+int main(int argc, char *argv[])
+{
+ char *test_mode;
+ odp_suiteinfo_t *suites = NULL;
+ int ret;
+
+ if (odp_cunit_parse_options(&argc, argv))
+ return EXIT_FAILURE;
+
+ if (argc < 2)
+ usage_exit();
+ test_mode = argv[1];
+
+ if ((!strcmp(test_mode, "sync"))) {
+ suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_SYNC;
+ suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_SYNC;
+ suites = ipsec_sync_suites;
+ } else if ((!strcmp(test_mode, "async"))) {
+ suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
+ suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
+ suites = ipsec_async_suites;
+ } else if ((!strcmp(test_mode, "inline-in"))) {
+ suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_INLINE;
+ suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
+ suites = ipsec_inline_in_suites;
+ } else if ((!strcmp(test_mode, "inline-out"))) {
+ suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_ASYNC;
+ suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_INLINE;
+ suites = ipsec_inline_out_suites;
+ } else {
+ usage_exit();
+ }
+
+ odp_cunit_register_global_init(ipsec_init);
+ odp_cunit_register_global_term(ipsec_term);
+ ret = odp_cunit_register(suites);
+
+ if (ret == 0)
+ ret = odp_cunit_run();
+
+ return ret;
+}
diff --git a/test/validation/api/ipsec/ipsec_sync.c b/test/validation/api/ipsec/ipsec_sync.c
deleted file mode 100644
index 68aa76e4c..000000000
--- a/test/validation/api/ipsec/ipsec_sync.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (c) 2017-2018, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "ipsec.h"
-
-static int ipsec_sync_init(odp_instance_t *inst)
-{
- int rc;
-
- suite_context.inbound_op_mode = ODP_IPSEC_OP_MODE_SYNC;
- suite_context.outbound_op_mode = ODP_IPSEC_OP_MODE_SYNC;
-
- rc = ipsec_init(inst, ODP_IPSEC_OP_MODE_SYNC);
- if (rc != 0)
- return rc;
-
- suite_context.pool = odp_pool_lookup("packet_pool");
- if (suite_context.pool == ODP_POOL_INVALID)
- return -1;
-
- return ipsec_config(*inst);
-}
-
-odp_suiteinfo_t ipsec_suites[] = {
- {"IPsec-in", ipsec_suite_sync_init, ipsec_in_term, ipsec_in_suite},
- {"IPsec-out", ipsec_suite_sync_init, ipsec_out_term, ipsec_out_suite},
- ODP_SUITE_INFO_NULL,
-};
-
-int main(int argc, char *argv[])
-{
- int ret;
-
- /* parse common options: */
- if (odp_cunit_parse_options(&argc, argv))
- return -1;
-
- odp_cunit_register_global_init(ipsec_sync_init);
- odp_cunit_register_global_term(ipsec_term);
-
- ret = odp_cunit_register(ipsec_suites);
- if (ret == 0)
- ret = odp_cunit_run();
-
- return ret;
-}
diff --git a/test/validation/api/ipsec/ipsec_sync.sh b/test/validation/api/ipsec/ipsec_sync.sh
new file mode 100755
index 000000000..2653ddc78
--- /dev/null
+++ b/test/validation/api/ipsec/ipsec_sync.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+TEST_DIR="${TEST_DIR:-$(dirname $0)/..}/ipsec"
+$TEST_DIR/ipsec_main$EXEEXT sync