aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJere Leppänen <jere.leppanen@nokia.com>2023-04-05 15:12:10 +0300
committerMatias Elo <matias.elo@nokia.com>2023-04-12 13:38:07 +0300
commitfdb4dd5f1f593684acb8f67525eae028f4deb239 (patch)
treef9b7c5226a2efa431c86b4f654fbdcf8b0e3f7e5 /test
parentbdb4a9a97b2baae95da360b306535853c2b4236f (diff)
validation: fix classifier destroy order
Fix the destroy order of classifier objects and related objects, such as PMRs, CoSes, queues and pools. Remove default CoS before destroying the CoS. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Diffstat (limited to 'test')
-rw-r--r--test/validation/api/classification/odp_classification_basic.c10
-rw-r--r--test/validation/api/classification/odp_classification_test_pmr.c24
-rw-r--r--test/validation/api/classification/odp_classification_tests.c20
-rw-r--r--test/validation/api/pktio/pktio.c4
4 files changed, 34 insertions, 24 deletions
diff --git a/test/validation/api/classification/odp_classification_basic.c b/test/validation/api/classification/odp_classification_basic.c
index f7aa96e52..2969dedab 100644
--- a/test/validation/api/classification/odp_classification_basic.c
+++ b/test/validation/api/classification/odp_classification_basic.c
@@ -203,13 +203,14 @@ static void classification_test_create_pmr_match(void)
retval = odp_cls_pmr_destroy(ODP_PMR_INVALID);
CU_ASSERT(retval < 0);
+ odp_cos_destroy(cos);
odp_queue_destroy(queue);
odp_pool_destroy(pool);
odp_pool_destroy(pkt_pool);
- odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
+ odp_cos_destroy(default_cos);
odp_queue_destroy(default_queue);
odp_pool_destroy(default_pool);
- odp_cos_destroy(default_cos);
odp_pktio_close(pktio);
}
@@ -401,13 +402,14 @@ static void classification_test_pmr_composite_create(void)
retval = odp_cls_pmr_destroy(pmr_composite);
CU_ASSERT(retval == 0);
+ odp_cos_destroy(cos);
odp_queue_destroy(queue);
odp_pool_destroy(pool);
odp_pool_destroy(pkt_pool);
- odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
+ odp_cos_destroy(default_cos);
odp_queue_destroy(default_queue);
odp_pool_destroy(default_pool);
- odp_cos_destroy(default_cos);
odp_pktio_close(pktio);
}
diff --git a/test/validation/api/classification/odp_classification_test_pmr.c b/test/validation/api/classification/odp_classification_test_pmr.c
index 0b29783c0..bf067719b 100644
--- a/test/validation/api/classification/odp_classification_test_pmr.c
+++ b/test/validation/api/classification/odp_classification_test_pmr.c
@@ -194,9 +194,10 @@ static void classification_test_pktin_classifier_flag(void)
CU_ASSERT(seqno == cls_pkt_get_seq(pkt));
odp_packet_free(pkt);
+ odp_cls_pmr_destroy(pmr);
odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
- odp_cls_pmr_destroy(pmr);
stop_pktio(pktio);
odp_queue_destroy(queue);
odp_queue_destroy(default_queue);
@@ -366,9 +367,10 @@ static void _classification_test_pmr_term_tcp_dport(int num_pkt)
CU_ASSERT(sent_queue == recv_queue);
CU_ASSERT(sent_default == recv_default);
+ odp_cls_pmr_destroy(pmr);
odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
- odp_cls_pmr_destroy(pmr);
stop_pktio(pktio);
odp_queue_destroy(queue);
odp_queue_destroy(default_queue);
@@ -457,9 +459,10 @@ static void test_pmr(const odp_pmr_param_t *pmr_param, odp_packet_t pkt,
}
odp_packet_free(pkt);
+ odp_cls_pmr_destroy(pmr);
odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
- odp_cls_pmr_destroy(pmr); /* XXX ordering */
stop_pktio(pktio);
odp_pool_destroy(default_pool);
odp_pool_destroy(pool);
@@ -747,9 +750,10 @@ static void classification_test_pmr_term_dmac(void)
CU_ASSERT(recvpool == default_pool);
CU_ASSERT(retqueue == default_queue);
+ odp_cls_pmr_destroy(pmr);
odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
- odp_cls_pmr_destroy(pmr);
odp_packet_free(pkt);
stop_pktio(pktio);
odp_pool_destroy(default_pool);
@@ -1080,9 +1084,10 @@ static void classification_test_pmr_pool_set(void)
CU_ASSERT(retqueue == queue);
odp_packet_free(pkt);
+ odp_cls_pmr_destroy(pmr);
odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
- odp_cls_pmr_destroy(pmr);
stop_pktio(pktio);
odp_pool_destroy(default_pool);
odp_pool_destroy(pool);
@@ -1180,9 +1185,10 @@ static void classification_test_pmr_queue_set(void)
CU_ASSERT(retqueue == queue_new);
odp_packet_free(pkt);
+ odp_cls_pmr_destroy(pmr);
odp_cos_destroy(cos);
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
- odp_cls_pmr_destroy(pmr);
stop_pktio(pktio);
odp_pool_destroy(default_pool);
odp_pool_destroy(pool);
@@ -1603,15 +1609,15 @@ static void test_pmr_series(const int num_udp, int marking)
CU_ASSERT(seqno == cls_pkt_get_seq(pkt));
CU_ASSERT(retqueue == default_queue);
odp_packet_free(pkt);
+ odp_cls_pmr_destroy(pmr_ip);
for (i = 0; i < num_udp; i++) {
- odp_cos_destroy(cos_udp[i]);
odp_cls_pmr_destroy(pmr_udp[i]);
+ odp_cos_destroy(cos_udp[i]);
}
odp_cos_destroy(cos_ip);
- odp_cls_pmr_destroy(pmr_ip);
-
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
stop_pktio(pktio);
odp_pool_destroy(default_pool);
diff --git a/test/validation/api/classification/odp_classification_tests.c b/test/validation/api/classification/odp_classification_tests.c
index 962885c06..002beb2aa 100644
--- a/test/validation/api/classification/odp_classification_tests.c
+++ b/test/validation/api/classification/odp_classification_tests.c
@@ -162,6 +162,16 @@ static int classification_suite_common_term(odp_bool_t enable_pktv)
retcode = -1;
}
+ for (i = 0; i < CLS_ENTRIES; i++) {
+ if (pmr_list[i] != ODP_PMR_INVALID)
+ odp_cls_pmr_destroy(pmr_list[i]);
+ }
+
+ for (i = 0; i < CLS_ENTRIES; i++) {
+ if (cos_list[i] != ODP_COS_INVALID)
+ odp_cos_destroy(cos_list[i]);
+ }
+
if (0 != odp_pool_destroy(pool_default)) {
ODPH_ERR("Pool_default destroy failed\n");
retcode = -1;
@@ -175,16 +185,6 @@ static int classification_suite_common_term(odp_bool_t enable_pktv)
}
for (i = 0; i < CLS_ENTRIES; i++) {
- if (cos_list[i] != ODP_COS_INVALID)
- odp_cos_destroy(cos_list[i]);
- }
-
- for (i = 0; i < CLS_ENTRIES; i++) {
- if (pmr_list[i] != ODP_PMR_INVALID)
- odp_cls_pmr_destroy(pmr_list[i]);
- }
-
- for (i = 0; i < CLS_ENTRIES; i++) {
if (queue_list[i] != ODP_QUEUE_INVALID)
odp_queue_destroy(queue_list[i]);
}
diff --git a/test/validation/api/pktio/pktio.c b/test/validation/api/pktio/pktio.c
index 524107d18..3772e04af 100644
--- a/test/validation/api/pktio/pktio.c
+++ b/test/validation/api/pktio/pktio.c
@@ -2041,8 +2041,10 @@ static void pktio_config_flow_control(int pfc, int rx, int tx)
if (cos != ODP_COS_INVALID)
odp_cos_destroy(cos);
- if (default_cos != ODP_COS_INVALID)
+ if (default_cos != ODP_COS_INVALID) {
+ odp_pktio_default_cos_set(pktio, ODP_COS_INVALID);
odp_cos_destroy(default_cos);
+ }
if (queue != ODP_QUEUE_INVALID)
odp_queue_destroy(queue);