Files
libiscsi/test-tool/iscsi-test-cu.h
Anatoliy Glagolev 19d05ab7a7 RTPG support
Implementing support of the Report Target Port Groups command.

Tested on Ubuntu against Pure Storage Flash Array
using designated unit tests and new iscsi-rtpg utility

./iscsi-rtpg  -i iqn.2005-03.org.open-iscsi:6feb2db21ea iscsi://192.168.1.12/iqn.2010-06.com.purestorage:flasharray.4e8d52d82e4b2c0f/1
RTPG retrieved 2 groups
Group 0x0000: preferred 0, format 0x00, ALUA state ACTIVE-OPTIMIZED,flags 0x8f, status code 0x02, port count 65
Ports: [ 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c
0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b 0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67
0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 0x71]
Group 0x0001: preferred 0, format 0x00, ALUA state ACTIVE-OPTIMIZED,flags 0x8f, status code 0x02, port count 65
Ports: [ 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7a
0x7b 0x7c 0x7d 0x7e 0x7f 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f 0x90 0x91 0x92 0x93 0x94 0x95
0x96 0x97 0x98 0x99 0x9a 0x9b 0x9c 0x9d 0x9e 0x9f 0xa0 0xa1 0xa2]
2025-07-03 17:20:52 -06:00

344 lines
10 KiB
C

/*
iscsi-test tool
Copyright (C) 2012 by Lee Duncan <lee@gonzoleeman.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _ISCSI_TEST_CU_H_
#define _ISCSI_TEST_CU_H_
#include <time.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "iscsi.h"
#include "iscsi-support.h"
/* globals between setup, tests, and teardown */
extern struct scsi_task *task;
extern unsigned char *read_write_buf;
extern void (*orig_queue_pdu)(struct iscsi_context *iscsi,
struct iscsi_pdu *pdu);
#ifndef HAVE_CU_SUITEINFO_PSETUPFUNC
/* libcunit version 1 */
typedef void (*CU_SetUpFunc)(void);
typedef void (*CU_TearDownFunc)(void);
#endif
int suite_init(void);
int suite_cleanup(void);
int suite_init_pgr(void);
int suite_cleanup_pgr(void);
void test_setup(void);
void test_teardown(void);
void test_compareandwrite_simple(void);
void test_compareandwrite_dpofua(void);
void test_compareandwrite_miscompare(void);
void test_compareandwrite_miscompare_sense(void);
void test_compareandwrite_unwritten(void);
void test_compareandwrite_invalid_dataout_size(void);
void test_extendedcopy_simple(void);
void test_extendedcopy_param(void);
void test_extendedcopy_descr_limits(void);
void test_extendedcopy_descr_type(void);
void test_extendedcopy_validate_tgt_descr(void);
void test_extendedcopy_validate_seg_descr(void);
void test_extendedcopy_large(void);
void test_get_lba_status_simple(void);
void test_get_lba_status_beyond_eol(void);
void test_get_lba_status_unmap_single(void);
void test_inquiry_alloc_length(void);
void test_inquiry_block_limits(void);
void test_inquiry_evpd(void);
void test_inquiry_mandatory_vpd_sbc(void);
void test_inquiry_standard(void);
void test_inquiry_supported_vpd(void);
void test_inquiry_version_descriptors(void);
void test_iscsi_cmdsn_toohigh(void);
void test_iscsi_cmdsn_toolow(void);
void test_iscsi_datasn_invalid(void);
void test_iscsi_sendtargets_simple(void);
void test_iscsi_sendtargets_invalid(void);
void test_iscsi_nop_simple(void);
void test_iscsi_chap_simple(void);
void test_iscsi_chap_invalid(void);
void test_mandatory_sbc(void);
void test_modesense6_all_pages(void);
void test_modesense6_control(void);
void test_modesense6_control_d_sense(void);
void test_modesense6_control_swp(void);
void test_modesense6_residuals(void);
void test_nomedia_sbc(void);
void test_orwrite_simple(void);
void test_orwrite_beyond_eol(void);
void test_orwrite_0blocks(void);
void test_orwrite_wrprotect(void);
void test_orwrite_dpofua(void);
void test_orwrite_verify(void);
void test_prefetch10_simple(void);
void test_prefetch10_beyond_eol(void);
void test_prefetch10_0blocks(void);
void test_prefetch10_flags(void);
void test_prefetch16_simple(void);
void test_prefetch16_beyond_eol(void);
void test_prefetch16_0blocks(void);
void test_prefetch16_flags(void);
void test_preventallow_simple(void);
void test_preventallow_eject(void);
void test_preventallow_itnexus_loss(void);
void test_preventallow_logout(void);
void test_preventallow_warm_reset(void);
void test_preventallow_cold_reset(void);
void test_preventallow_lun_reset(void);
void test_preventallow_2_itnexuses(void);
void test_prin_read_keys_simple(void);
void test_prin_read_keys_truncate(void);
void test_prin_serviceaction_range(void);
void test_prin_report_caps_simple(void);
void test_prout_register_simple(void);
void test_prout_reserve_simple(void);
void test_prout_reserve_access_ea(void);
void test_prout_reserve_access_we(void);
void test_prout_reserve_access_earo(void);
void test_prout_reserve_access_wero(void);
void test_prout_reserve_access_eaar(void);
void test_prout_reserve_access_wear(void);
void test_prout_reserve_ownership_ea(void);
void test_prout_reserve_ownership_we(void);
void test_prout_reserve_ownership_earo(void);
void test_prout_reserve_ownership_wero(void);
void test_prout_reserve_ownership_eaar(void);
void test_prout_reserve_ownership_wear(void);
void test_prout_clear_simple(void);
void test_prout_preempt_rm_reg(void);
void test_read6_simple(void);
void test_read6_beyond_eol(void);
void test_read6_rdprotect(void);
void test_read6_flags(void);
void test_read10_simple(void);
void test_read10_beyond_eol(void);
void test_read10_0blocks(void);
void test_read10_rdprotect(void);
void test_read10_dpofua(void);
void test_read10_residuals(void);
void test_read10_invalid(void);
void test_async_read(void);
void test_read12_simple(void);
void test_read12_beyond_eol(void);
void test_read12_0blocks(void);
void test_read12_rdprotect(void);
void test_read12_dpofua(void);
void test_read12_residuals(void);
void test_read16_simple(void);
void test_read16_beyond_eol(void);
void test_read16_0blocks(void);
void test_read16_rdprotect(void);
void test_read16_dpofua(void);
void test_read16_residuals(void);
void test_readcapacity10_simple(void);
void test_readcapacity16_alloclen(void);
void test_readcapacity16_protection(void);
void test_readcapacity16_simple(void);
void test_readcapacity16_support(void);
void test_readdefectdata10_simple(void);
void test_readdefectdata12_simple(void);
void test_readonly_sbc(void);
void test_receive_copy_results_copy_status(void);
void test_receive_copy_results_op_params(void);
void test_report_luns_simple(void);
void test_report_supported_opcodes_one_command(void);
void test_report_supported_opcodes_rctd(void);
void test_report_supported_opcodes_servactv(void);
void test_report_supported_opcodes_simple(void);
void test_reserve6_simple(void);
void test_reserve6_2initiators(void);
void test_reserve6_logout(void);
void test_reserve6_itnexus_loss(void);
void test_reserve6_target_cold_reset(void);
void test_reserve6_target_warm_reset(void);
void test_reserve6_lun_reset(void);
void test_rtpg_alloc_length(void);
void test_rtpg_simple(void);
void test_sanitize_block_erase(void);
void test_sanitize_block_erase_reserved(void);
void test_sanitize_crypto_erase(void);
void test_sanitize_crypto_erase_reserved(void);
void test_sanitize_exit_failure_mode(void);
void test_sanitize_invalid_serviceaction(void);
void test_sanitize_overwrite(void);
void test_sanitize_overwrite_reserved(void);
void test_sanitize_readonly(void);
void test_sanitize_reservations(void);
void test_sanitize_reset(void);
void test_startstopunit_simple(void);
void test_startstopunit_pwrcnd(void);
void test_startstopunit_noloej(void);
void test_testunitready_simple(void);
void test_unmap_simple(void);
void test_unmap_0blocks(void);
void test_unmap_vpd(void);
void test_verify10_simple(void);
void test_verify10_beyond_eol(void);
void test_verify10_0blocks(void);
void test_verify10_vrprotect(void);
void test_verify10_flags(void);
void test_verify10_dpo(void);
void test_verify10_mismatch(void);
void test_verify10_mismatch_no_cmp(void);
void test_verify12_simple(void);
void test_verify12_beyond_eol(void);
void test_verify12_0blocks(void);
void test_verify12_vrprotect(void);
void test_verify12_flags(void);
void test_verify12_dpo(void);
void test_verify12_mismatch(void);
void test_verify12_mismatch_no_cmp(void);
void test_verify16_simple(void);
void test_verify16_beyond_eol(void);
void test_verify16_0blocks(void);
void test_verify16_vrprotect(void);
void test_verify16_flags(void);
void test_verify16_dpo(void);
void test_verify16_mismatch(void);
void test_verify16_mismatch_no_cmp(void);
void test_write10_simple(void);
void test_write10_beyond_eol(void);
void test_write10_0blocks(void);
void test_write10_wrprotect(void);
void test_write10_dpofua(void);
void test_write10_residuals(void);
void test_async_write(void);
void test_async_io_logout(void);
void test_write12_simple(void);
void test_write12_beyond_eol(void);
void test_write12_0blocks(void);
void test_write12_wrprotect(void);
void test_write12_dpofua(void);
void test_write12_residuals(void);
void test_write16_simple(void);
void test_write16_beyond_eol(void);
void test_write16_0blocks(void);
void test_write16_wrprotect(void);
void test_write16_dpofua(void);
void test_write16_residuals(void);
void test_writeatomic16_simple(void);
void test_writeatomic16_beyond_eol(void);
void test_writeatomic16_0blocks(void);
void test_writeatomic16_wrprotect(void);
void test_writeatomic16_dpofua(void);
void test_writeatomic16_vpd(void);
void test_writesame10_simple(void);
void test_writesame10_beyond_eol(void);
void test_writesame10_0blocks(void);
void test_writesame10_wrprotect(void);
void test_writesame10_unmap(void);
void test_writesame10_unmap_unaligned(void);
void test_writesame10_unmap_until_end(void);
void test_writesame10_unmap_vpd(void);
void test_writesame10_check(void);
void test_writesame10_invalid_dataout_size(void);
void test_writesame16_simple(void);
void test_writesame16_beyond_eol(void);
void test_writesame16_0blocks(void);
void test_writesame16_wrprotect(void);
void test_writesame16_unmap(void);
void test_writesame16_unmap_unaligned(void);
void test_writesame16_unmap_until_end(void);
void test_writesame16_unmap_vpd(void);
void test_writesame16_check(void);
void test_writesame16_invalid_dataout_size(void);
void test_writeverify10_simple(void);
void test_writeverify10_beyond_eol(void);
void test_writeverify10_0blocks(void);
void test_writeverify10_wrprotect(void);
void test_writeverify10_flags(void);
void test_writeverify10_dpo(void);
void test_writeverify10_residuals(void);
void test_writeverify12_simple(void);
void test_writeverify12_beyond_eol(void);
void test_writeverify12_0blocks(void);
void test_writeverify12_wrprotect(void);
void test_writeverify12_flags(void);
void test_writeverify12_dpo(void);
void test_writeverify12_residuals(void);
void test_writeverify16_simple(void);
void test_writeverify16_beyond_eol(void);
void test_writeverify16_0blocks(void);
void test_writeverify16_wrprotect(void);
void test_writeverify16_flags(void);
void test_writeverify16_dpo(void);
void test_writeverify16_residuals(void);
void test_multipathio_simple(void);
void test_multipathio_reset(void);
void test_multipathio_compareandwrite(void);
void test_mpio_async_caw(void);
void test_async_abort_simple(void);
void test_async_lu_reset_simple(void);
#endif /* _ISCSI_TEST_CU_H_ */