Tests: Add helped for UNMAP
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
@@ -476,6 +476,20 @@ do { \
|
||||
CU_ASSERT_EQUAL(_r, 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(...) \
|
||||
do { \
|
||||
int _r; \
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
void
|
||||
test_unmap_0blocks(void)
|
||||
{
|
||||
int i, ret;
|
||||
int i;
|
||||
struct unmap_list list[257];
|
||||
|
||||
CHECK_FOR_DATALOSS;
|
||||
@@ -41,23 +41,19 @@ test_unmap_0blocks(void)
|
||||
for (i = 0; i < 256; i++) {
|
||||
list[0].lba = i;
|
||||
list[0].num = 0;
|
||||
ret = unmap(sd, 0, list, 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
UNMAP(sd, 0, list, 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
}
|
||||
|
||||
logging(LOG_VERBOSE, "Test UNMAP of 0 blocks at end-of-LUN");
|
||||
list[0].lba = num_blocks;
|
||||
list[0].num = 0;
|
||||
ret = unmap(sd, 0, list, 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
UNMAP(sd, 0, list, 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Test UNMAP without any descriptors.");
|
||||
ret = unmap(sd, 0, list, 0,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
|
||||
UNMAP(sd, 0, list, 0,
|
||||
EXPECT_STATUS_GOOD);
|
||||
|
||||
if (inq_bl->max_unmap_bdc <= 1) {
|
||||
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++) {
|
||||
list[i].lba = i;
|
||||
list[i].num = 0;
|
||||
ret = unmap(sd, 0, list, i + 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
UNMAP(sd, 0, list, i + 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
}
|
||||
|
||||
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].num = 0;
|
||||
}
|
||||
ret = unmap(sd, 0, list, 256,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
UNMAP(sd, 0, list, 256,
|
||||
EXPECT_STATUS_GOOD);
|
||||
}
|
||||
|
||||
@@ -53,9 +53,8 @@ test_unmap_simple(void)
|
||||
logging(LOG_VERBOSE, "UNMAP blocks 0-%d", i);
|
||||
list[0].lba = 0;
|
||||
list[0].num = i;
|
||||
ret = unmap(sd, 0, list, 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
UNMAP(sd, 0, list, 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Read blocks 0-%d", i);
|
||||
READ10(sd, NULL, 0, i * block_size,
|
||||
@@ -90,9 +89,8 @@ test_unmap_simple(void)
|
||||
for (i = 0; i < 256; i++) {
|
||||
list[i].lba = i;
|
||||
list[i].num = 1;
|
||||
ret = unmap(sd, 0, list, i + 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
UNMAP(sd, 0, list, i + 1,
|
||||
EXPECT_STATUS_GOOD);
|
||||
|
||||
logging(LOG_VERBOSE, "Read blocks 0-%d", i);
|
||||
READ10(sd, NULL, 0, i * block_size,
|
||||
|
||||
Reference in New Issue
Block a user