From 1deee0898a1b0b9e7f9e89c3b42c2cfce03407ca Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sun, 21 Feb 2016 14:04:00 -0800 Subject: [PATCH] Tests: Add a test that RC16 must be supported when SBC3 is claimed Signed-off-by: Ronnie Sahlberg --- test-tool/Makefile.am | 1 + test-tool/iscsi-test-cu.c | 1 + test-tool/iscsi-test-cu.h | 1 + test-tool/test_readcapacity16_support.c | 49 +++++++++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 test-tool/test_readcapacity16_support.c diff --git a/test-tool/Makefile.am b/test-tool/Makefile.am index f026a60..8bbb8a4 100644 --- a/test-tool/Makefile.am +++ b/test-tool/Makefile.am @@ -101,6 +101,7 @@ iscsi_test_cu_SOURCES = iscsi-test-cu.c \ test_readcapacity16_alloclen.c \ test_readcapacity16_protection.c \ test_readcapacity16_simple.c \ + test_readcapacity16_support.c \ test_readonly_sbc.c \ test_receive_copy_results_copy_status.c \ test_receive_copy_results_op_params.c \ diff --git a/test-tool/iscsi-test-cu.c b/test-tool/iscsi-test-cu.c index f4e17fd..4fa8b25 100644 --- a/test-tool/iscsi-test-cu.c +++ b/test-tool/iscsi-test-cu.c @@ -257,6 +257,7 @@ static CU_TestInfo tests_readcapacity16[] = { { (char *)"Simple", test_readcapacity16_simple }, { (char *)"Alloclen", test_readcapacity16_alloclen }, { (char *)"PI", test_readcapacity16_protection }, + { (char *)"Support", test_readcapacity16_support }, CU_TEST_INFO_NULL }; diff --git a/test-tool/iscsi-test-cu.h b/test-tool/iscsi-test-cu.h index dc75c6e..881c1a7 100644 --- a/test-tool/iscsi-test-cu.h +++ b/test-tool/iscsi-test-cu.h @@ -165,6 +165,7 @@ 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_readonly_sbc(void); diff --git a/test-tool/test_readcapacity16_support.c b/test-tool/test_readcapacity16_support.c new file mode 100644 index 0000000..8b7bf39 --- /dev/null +++ b/test-tool/test_readcapacity16_support.c @@ -0,0 +1,49 @@ +/* -*- mode:c; tab-width:8; c-basic-offset:8; indent-tabs-mode:nil; -*- */ +/* + Copyright (C) 2013 by Ronnie Sahlberg + + 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 . +*/ + +#include + +#include + +#include "iscsi.h" +#include "scsi-lowlevel.h" +#include "iscsi-support.h" +#include "iscsi-test-cu.h" + + +void +test_readcapacity16_support(void) +{ + int ret; + + logging(LOG_VERBOSE, LOG_BLANK_LINE); + logging(LOG_VERBOSE, "Test that READCAPACITY16 is supported on SBC3"); + + ret = readcapacity16(sd, NULL, 15, + EXPECT_STATUS_GOOD); + if (ret == -2) { + if (sbc3_support) { + logging(LOG_NORMAL, "[FAILED] READCAPACITY16 is not available but the device claims SBC-3 support."); + CU_FAIL("READCAPACITY16 failed but the device claims SBC-3 support."); + } else { + logging(LOG_NORMAL, "[SKIPPED] READCAPACITY16 is not implemented on this target and it does not claim SBC-3 support."); + } + } else { + CU_ASSERT_EQUAL(ret, 0); + } +}