Tests: Add helped for UNMAP

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
Ronnie Sahlberg
2016-02-21 12:59:01 -08:00
parent d3913ee864
commit 80e06cae30
3 changed files with 29 additions and 23 deletions

View File

@@ -476,6 +476,20 @@ do { \
CU_ASSERT_EQUAL(_r, 0); \ CU_ASSERT_EQUAL(_r, 0); \
} while (0); } while (0);
#define UNMAP(...) \
do { \
int _r; \
_r = unmap(__VA_ARGS__); \
if (_r == -2) { \
logging(LOG_NORMAL, "[SKIPPED] UNMAP " \
"is not implemented."); \
CU_PASS("[SKIPPED] Target does not support " \
"UNMAP. Skipping test"); \
return; \
} \
CU_ASSERT_EQUAL(_r, 0); \
} while (0);
#define VERIFY10(...) \ #define VERIFY10(...) \
do { \ do { \
int _r; \ int _r; \

View File

@@ -29,7 +29,7 @@
void void
test_unmap_0blocks(void) test_unmap_0blocks(void)
{ {
int i, ret; int i;
struct unmap_list list[257]; struct unmap_list list[257];
CHECK_FOR_DATALOSS; CHECK_FOR_DATALOSS;
@@ -41,23 +41,19 @@ test_unmap_0blocks(void)
for (i = 0; i < 256; i++) { for (i = 0; i < 256; i++) {
list[0].lba = i; list[0].lba = i;
list[0].num = 0; list[0].num = 0;
ret = unmap(sd, 0, list, 1, UNMAP(sd, 0, list, 1,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
} }
logging(LOG_VERBOSE, "Test UNMAP of 0 blocks at end-of-LUN"); logging(LOG_VERBOSE, "Test UNMAP of 0 blocks at end-of-LUN");
list[0].lba = num_blocks; list[0].lba = num_blocks;
list[0].num = 0; list[0].num = 0;
ret = unmap(sd, 0, list, 1, UNMAP(sd, 0, list, 1,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
logging(LOG_VERBOSE, "Test UNMAP without any descriptors."); logging(LOG_VERBOSE, "Test UNMAP without any descriptors.");
ret = unmap(sd, 0, list, 0, UNMAP(sd, 0, list, 0,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
if (inq_bl->max_unmap_bdc <= 1) { if (inq_bl->max_unmap_bdc <= 1) {
CU_PASS("[SKIPPING] Test UNMAP of 0 blocks with multiple descriptos not supported"); CU_PASS("[SKIPPING] Test UNMAP of 0 blocks with multiple descriptos not supported");
@@ -68,9 +64,8 @@ test_unmap_0blocks(void)
for (i = 0; i < 256; i++) { for (i = 0; i < 256; i++) {
list[i].lba = i; list[i].lba = i;
list[i].num = 0; list[i].num = 0;
ret = unmap(sd, 0, list, i + 1, UNMAP(sd, 0, list, i + 1,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
} }
logging(LOG_VERBOSE, "Test UNMAP of 0 blocks at LBA:0-255 with one descriptor per block, possibly \"overlapping\"."); logging(LOG_VERBOSE, "Test UNMAP of 0 blocks at LBA:0-255 with one descriptor per block, possibly \"overlapping\".");
@@ -78,7 +73,6 @@ test_unmap_0blocks(void)
list[i].lba = i/2; list[i].lba = i/2;
list[i].num = 0; list[i].num = 0;
} }
ret = unmap(sd, 0, list, 256, UNMAP(sd, 0, list, 256,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
} }

View File

@@ -53,9 +53,8 @@ test_unmap_simple(void)
logging(LOG_VERBOSE, "UNMAP blocks 0-%d", i); logging(LOG_VERBOSE, "UNMAP blocks 0-%d", i);
list[0].lba = 0; list[0].lba = 0;
list[0].num = i; list[0].num = i;
ret = unmap(sd, 0, list, 1, UNMAP(sd, 0, list, 1,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
logging(LOG_VERBOSE, "Read blocks 0-%d", i); logging(LOG_VERBOSE, "Read blocks 0-%d", i);
READ10(sd, NULL, 0, i * block_size, READ10(sd, NULL, 0, i * block_size,
@@ -90,9 +89,8 @@ test_unmap_simple(void)
for (i = 0; i < 256; i++) { for (i = 0; i < 256; i++) {
list[i].lba = i; list[i].lba = i;
list[i].num = 1; list[i].num = 1;
ret = unmap(sd, 0, list, i + 1, UNMAP(sd, 0, list, i + 1,
EXPECT_STATUS_GOOD); EXPECT_STATUS_GOOD);
CU_ASSERT_EQUAL(ret, 0);
logging(LOG_VERBOSE, "Read blocks 0-%d", i); logging(LOG_VERBOSE, "Read blocks 0-%d", i);
READ10(sd, NULL, 0, i * block_size, READ10(sd, NULL, 0, i * block_size,