From 1424b6a554b95e3eb8007b2fad4e2e1a23c4f3a8 Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Thu, 8 Jun 2017 13:11:02 +0800 Subject: [PATCH] test, pdu: fix memory leak related issue for pdu test Change-Id: I0e4f5a099f9af68a4a67d9305f678e664f3bda64 Signed-off-by: Ziye Yang Reviewed-on: https://review.gerrithub.io/364543 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp --- test/lib/iscsi/common.c | 1 + test/lib/iscsi/pdu/pdu.c | 16 ++++++++++++++-- unittest.sh | 3 +-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/test/lib/iscsi/common.c b/test/lib/iscsi/common.c index 8ca4f2134..e7a0fd4b5 100644 --- a/test/lib/iscsi/common.c +++ b/test/lib/iscsi/common.c @@ -33,6 +33,7 @@ spdk_put_pdu(struct spdk_iscsi_pdu *pdu) if (!pdu) return; + pdu->ref--; if (pdu->ref < 0) { CU_FAIL("negative ref count"); pdu->ref = 0; diff --git a/test/lib/iscsi/pdu/pdu.c b/test/lib/iscsi/pdu/pdu.c index 529567105..158c10b99 100644 --- a/test/lib/iscsi/pdu/pdu.c +++ b/test/lib/iscsi/pdu/pdu.c @@ -104,8 +104,7 @@ maxburstlength_test(void) struct spdk_iscsi_conn conn; struct spdk_scsi_dev dev; struct spdk_scsi_lun lun; - struct spdk_iscsi_pdu *req_pdu; - struct spdk_iscsi_pdu *data_out_pdu; + struct spdk_iscsi_pdu *req_pdu, *data_out_pdu, *r2t_pdu; struct iscsi_bhs_scsi_req *req; struct iscsi_bhs_r2t *r2t; struct iscsi_bhs_data_out *data_out; @@ -177,6 +176,19 @@ maxburstlength_test(void) rc = spdk_iscsi_execute(&conn, data_out_pdu); CU_ASSERT(rc == SPDK_ISCSI_CONNECTION_FATAL); + + CU_ASSERT(response_pdu->task != NULL); + spdk_iscsi_task_disassociate_pdu(response_pdu->task); + spdk_iscsi_task_put(response_pdu->task); + spdk_put_pdu(response_pdu); + + r2t_pdu = TAILQ_FIRST(&conn.write_pdu_list); + CU_ASSERT(r2t_pdu != NULL); + TAILQ_REMOVE(&conn.write_pdu_list, r2t_pdu, tailq); + spdk_put_pdu(r2t_pdu); + + spdk_put_pdu(data_out_pdu); + spdk_put_pdu(req_pdu); } int diff --git a/unittest.sh b/unittest.sh index 1acaa960e..6b3479a36 100755 --- a/unittest.sh +++ b/unittest.sh @@ -68,10 +68,9 @@ $valgrind test/lib/scsi/lun/lun_ut $valgrind test/lib/scsi/scsi_bdev/scsi_bdev_ut $valgrind test/lib/scsi/scsi_nvme/scsi_nvme_ut -# TODO: fix valgrind warnings and add $valgrind to iSCSI tests $valgrind test/lib/iscsi/param/param_ut $valgrind test/lib/iscsi/target_node/target_node_ut test/lib/iscsi/target_node/target_node.conf -test/lib/iscsi/pdu/pdu +$valgrind test/lib/iscsi/pdu/pdu $valgrind test/lib/util/bit_array/bit_array_ut $valgrind test/lib/util/io_channel/io_channel_ut