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