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); \
|
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; \
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user