From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C7ADC45CE4; Mon, 11 Nov 2024 08:35:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B914840E27; Mon, 11 Nov 2024 08:35:02 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id A293140E27 for ; Mon, 11 Nov 2024 08:35:01 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AANIRM9002330; Sun, 10 Nov 2024 23:34:58 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pfpt0220; bh=J dXyHXIeK0QClOLeyvjanbfgSxZ1Le211HHuDjz5Pyk=; b=I/KFyzJRgTBAPnMxT hZpFRjYCPvEflLLG3l7qPUjfxKUF7VpGlJF9cCtdyY7lD2Hyp7qPFJJlLjXoNN0C mKaVtLem+GM2oxONPkG0aX7dREJ6aDgNpz1zrhb3aKyYqV+uUqoX1YhQj8lw62xz 5npYOBCUywMyAz4r/Cswr57AB6lL59f8ke1JDipUaBupfajWPGOoIvs84lCvUUHp OLCP9eo8qEu9cmzWZhinjWXkZYnMBha9ji+5EmF2C86CokOeYeIwmWPAoCfkWbb2 aRD2Udgf8PUx4Fap02Au2LSsKHDAEuaGn+NH1hC7UhafaVKf9qPjWMu1BEsNFvJq eHT3A== Received: from dc5-exch05.marvell.com ([199.233.59.128]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 42t84pjfer-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 10 Nov 2024 23:34:57 -0800 (PST) Received: from DC5-EXCH05.marvell.com (10.69.176.209) by DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sun, 10 Nov 2024 23:34:56 -0800 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Sun, 10 Nov 2024 23:34:56 -0800 Received: from cavium-System-Product-Name.. (unknown [10.28.37.22]) by maili.marvell.com (Postfix) with ESMTP id DE52D5B692C; Sun, 10 Nov 2024 23:34:53 -0800 (PST) From: To: Jerin Jacob , Kiran Kumar K , Nithin Dabilpuram , Zhirun Yan CC: , , Subject: [PATCH v2 3/3] test/graph: fix graph autotest second run test failure Date: Mon, 11 Nov 2024 13:04:36 +0530 Message-ID: <20241111073437.1796101-3-kirankumark@marvell.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241111073437.1796101-1-kirankumark@marvell.com> References: <20241111073437.1796101-1-kirankumark@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-ORIG-GUID: sbF_US7kWQvD_fU_hqb8oVzAw2p1DeE5 X-Proofpoint-GUID: sbF_US7kWQvD_fU_hqb8oVzAw2p1DeE5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Kiran Kumar K The graph autotest second run test is failing due to the node name is already present in the node list. Adding changes to free nodes at the time of test cleanup. Fixes: 6b89650418fe ("test/graph: add functional tests") Signed-off-by: Kiran Kumar K --- app/test/test_graph.c | 96 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 90 insertions(+), 6 deletions(-) diff --git a/app/test/test_graph.c b/app/test/test_graph.c index 2840a25b13..e712dbebf7 100644 --- a/app/test/test_graph.c +++ b/app/test/test_graph.c @@ -68,6 +68,8 @@ static void *mbuf_p[MAX_NODES + 1][MBUFF_SIZE]; static rte_graph_t graph_id; static uint64_t obj_stats[MAX_NODES + 1]; static uint64_t fn_calls[MAX_NODES + 1]; +static uint32_t dummy_nodes_id[MAX_NODES]; +static int dummy_nodes_id_count; const char *node_patterns[] = { "test_node_source1", "test_node00", @@ -541,6 +543,66 @@ test_lookup_functions(void) return 0; } +static int +test_node_id(void) +{ + uint32_t node_id, odummy_id, dummy_id, dummy_id1; + + node_id = rte_node_from_name("test_node00"); + + dummy_id = rte_node_clone(node_id, "test_node_id00"); + if (rte_node_is_invalid(dummy_id)) { + printf("Got invalid id when clone\n"); + return -1; + } + + dummy_id1 = rte_node_clone(node_id, "test_node_id01"); + if (rte_node_is_invalid(dummy_id1)) { + printf("Got invalid id when clone\n"); + return -1; + } + + /* Expect next node id to be node_id + 1 */ + if ((dummy_id + 1) != dummy_id1) { + printf("Node id didn't match, expected = %d got = %d\n", + dummy_id+1, dummy_id1); + return -1; + } + + odummy_id = dummy_id; + /* Free one of the cloned node */ + if (rte_node_free(dummy_id)) { + printf("Failed to free node\n"); + return -1; + } + + /* Clone again, should get the same id, that is freed */ + dummy_id = rte_node_clone(node_id, "test_node_id00"); + if (rte_node_is_invalid(dummy_id)) { + printf("Got invalid id when clone\n"); + return -1; + } + + if (dummy_id != odummy_id) { + printf("Node id didn't match, expected = %d got = %d\n", + odummy_id, dummy_id); + return -1; + } + + /* Free the node */ + if (rte_node_free(dummy_id)) { + printf("Failed to free node\n"); + return -1; + } + + if (rte_node_free(dummy_id1)) { + printf("Failed to free node\n"); + return -1; + } + + return 0; +} + static int test_node_clone(void) { @@ -551,11 +613,12 @@ test_node_clone(void) node_id = rte_node_from_name("test_node00"); tm->test_node[0].idx = node_id; - dummy_id = rte_node_clone(node_id, "test_node00"); - if (rte_node_is_invalid(dummy_id)) { + dummy_nodes_id[dummy_nodes_id_count] = rte_node_clone(node_id, "test_node00"); + if (rte_node_is_invalid(dummy_nodes_id[dummy_nodes_id_count])) { printf("Got invalid id when clone, Expecting fail\n"); return -1; } + dummy_nodes_id_count++; /* Clone with same name, should fail */ dummy_id = rte_node_clone(node_id, "test_node00"); @@ -635,15 +698,15 @@ test_create_graph(void) .nb_node_patterns = 6, .node_patterns = node_patterns_dummy, }; - uint32_t dummy_node_id; uint32_t node_id; node_id = rte_node_from_name("test_node00"); - dummy_node_id = rte_node_clone(node_id, "dummy_node"); - if (rte_node_is_invalid(dummy_node_id)) { + dummy_nodes_id[dummy_nodes_id_count] = rte_node_clone(node_id, "dummy_node"); + if (rte_node_is_invalid(dummy_nodes_id[dummy_nodes_id_count])) { printf("Got invalid node id\n"); return -1; } + dummy_nodes_id_count++; graph_id = rte_graph_create("worker0", &gconf); if (graph_id != RTE_GRAPH_ID_INVALID) { @@ -1026,17 +1089,38 @@ graph_setup(void) } printf("test_node_clone: pass\n"); + if (test_node_id()) { + printf("test_node_id: fail\n"); + return -1; + } + printf("test_node_id: pass\n"); + return 0; } static void graph_teardown(void) { - int id; + int id, i; id = rte_graph_destroy(rte_graph_from_name("worker0")); if (id) printf("Graph Destroy failed\n"); + + for (i = 1; i < MAX_NODES; i++) { + if (rte_node_free(test_main.test_node[i].idx)) { + printf("Node free failed\n"); + return; + } + } + + for (i = 0; i < dummy_nodes_id_count; i++) { + if (rte_node_free(dummy_nodes_id[i])) { + printf("Node free failed\n"); + return; + } + } + dummy_nodes_id_count = 0; } static struct unit_test_suite graph_testsuite = { -- 2.43.0