diff options
author | Janne Peltonen <janne.peltonen@nokia.com> | 2024-01-04 15:38:16 +0200 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2024-01-16 15:00:31 +0200 |
commit | da8f0d9038b37f4165a3ac053c33e5300118109c (patch) | |
tree | 4422f5fae79d5439e31c3081edd85aff164594cb /test | |
parent | 830429333cb58dd6e59a0f0b6712f81c0fd9a7ee (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.am | 8 | ||||
-rw-r--r-- | test/validation/api/ipsec/.gitignore | 5 | ||||
-rw-r--r-- | test/validation/api/ipsec/Makefile.am | 17 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec.c | 32 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec.h | 5 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec_async.c | 55 | ||||
-rwxr-xr-x | test/validation/api/ipsec/ipsec_async.sh | 3 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec_inline_in.c | 54 | ||||
-rwxr-xr-x | test/validation/api/ipsec/ipsec_inline_in.sh | 3 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec_inline_out.c | 54 | ||||
-rwxr-xr-x | test/validation/api/ipsec/ipsec_inline_out.sh | 3 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec_main.c | 83 | ||||
-rw-r--r-- | test/validation/api/ipsec/ipsec_sync.c | 49 | ||||
-rwxr-xr-x | test/validation/api/ipsec/ipsec_sync.sh | 3 |
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", ¶ms); + suite_context.pool = odp_pool_create("packet_pool", ¶ms); - 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 |