From ce0a22e040ebdd40e442c0234ef2eb720f15d3d0 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sun, 21 Feb 2016 12:54:45 -0800 Subject: [PATCH] Tests: Use the helpers in NoMedia tests Signed-off-by: Ronnie Sahlberg --- test-tool/test_nomedia_sbc.c | 418 +++++++++++++++++------------------ 1 file changed, 206 insertions(+), 212 deletions(-) diff --git a/test-tool/test_nomedia_sbc.c b/test-tool/test_nomedia_sbc.c index d5e912b..559ec14 100644 --- a/test-tool/test_nomedia_sbc.c +++ b/test-tool/test_nomedia_sbc.c @@ -41,13 +41,187 @@ test_synchronizecache16(void) EXPECT_NO_MEDIUM); } +static void +test_read10(void) +{ + logging(LOG_VERBOSE, "Test READ10 when medium is ejected."); + READ10(sd, NULL, 0, block_size, block_size, 0, 0, 0, 0, 0, NULL, + EXPECT_NO_MEDIUM); +} + +static void +test_read12(void) +{ + logging(LOG_VERBOSE, "Test READ12 when medium is ejected."); + READ12(sd, NULL, 0, block_size, block_size, 0, 0, 0, 0, 0, NULL, + EXPECT_NO_MEDIUM); +} + +static void +test_read16(void) +{ + logging(LOG_VERBOSE, "Test READ16 when medium is ejected."); + READ16(sd, NULL, 0, block_size, block_size, 0, 0, 0, 0, 0, NULL, + EXPECT_NO_MEDIUM); +} + +static void +test_write10(void) +{ + logging(LOG_VERBOSE, "Test WRITE10 when medium is ejected."); + WRITE10(sd, 0, block_size, block_size, 0, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_write12(void) +{ + logging(LOG_VERBOSE, "Test WRITE12 when medium is ejected."); + WRITE12(sd, 0, block_size, block_size, 0, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_write16(void) +{ + logging(LOG_VERBOSE, "Test WRITE16 when medium is ejected."); + WRITE16(sd, 0, block_size, block_size, 0, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_writeverify10(void) +{ + logging(LOG_VERBOSE, "Test WRITEVERIFY10 when medium is ejected."); + WRITEVERIFY10(sd, 0, block_size, block_size, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_writeverify12(void) +{ + logging(LOG_VERBOSE, "Test WRITEVERIFY12 when medium is ejected."); + WRITEVERIFY12(sd, 0, block_size, block_size, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_writeverify16(void) +{ + logging(LOG_VERBOSE, "Test WRITEVERIFY16 when medium is ejected."); + WRITEVERIFY16(sd, 0, block_size, block_size, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_verify10(void) +{ + logging(LOG_VERBOSE, "Test VERIFY10 when medium is ejected."); + VERIFY10(sd, 0, block_size, block_size, 0, 0, 1, scratch, + EXPECT_NO_MEDIUM); +} +static void +test_verify12(void) +{ + logging(LOG_VERBOSE, "Test VERIFY12 when medium is ejected."); + VERIFY12(sd, 0, block_size, block_size, 0, 0, 1, scratch, + EXPECT_NO_MEDIUM); +} +static void +test_verify16(void) +{ + logging(LOG_VERBOSE, "Test VERIFY16 when medium is ejected."); + VERIFY16(sd, 0, block_size, block_size, 0, 0, 1, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_getlbastatus(void) +{ + logging(LOG_VERBOSE, "Test GET_LBA_STATUS when medium is ejected."); + GETLBASTATUS(sd, NULL, 0, 24, + EXPECT_NO_MEDIUM); +} + +static void +test_prefetch10(void) +{ + logging(LOG_VERBOSE, "Test PREFETCH10 when medium is ejected."); + PREFETCH10(sd, 0, 1, 1, 0, + EXPECT_NO_MEDIUM); +} + +static void +test_prefetch16(void) +{ + logging(LOG_VERBOSE, "Test PREFETCH16 when medium is ejected."); + PREFETCH16(sd, 0, 1, 1, 0, + EXPECT_NO_MEDIUM); +} + +static void +test_orwrite(void) +{ + logging(LOG_VERBOSE, "Test ORWRITE when medium is ejected."); + ORWRITE(sd, 0, block_size, block_size, 0, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_compareandwrite(void) +{ + logging(LOG_VERBOSE, "Test COMPAREANDWRITE when medium is ejected."); + COMPAREANDWRITE(sd, 0, scratch, 2 * block_size, block_size, 0, 0, 0, 0, + EXPECT_NO_MEDIUM); +} + +static void +test_writesame10(void) +{ + logging(LOG_VERBOSE, "Test WRITESAME10 when medium is ejected."); + WRITESAME10(sd, 0, block_size, 1, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_writesame16(void) +{ + logging(LOG_VERBOSE, "Test WRITESAME16 when medium is ejected."); + WRITESAME16(sd, 0, block_size, 1, 0, 0, 0, 0, scratch, + EXPECT_NO_MEDIUM); +} + +static void +test_unmap(void) +{ + struct unmap_list list[1]; + + logging(LOG_VERBOSE, "Test UNMAP when medium is ejected."); + list[0].lba = 0; + list[0].num = lbppb; + UNMAP(sd, 0, list, 1, + EXPECT_NO_MEDIUM); +} + +static void +test_readcapacity10(void) +{ + logging(LOG_VERBOSE, "Test READCAPACITY10 when medium is ejected."); + READCAPACITY10(sd, NULL, 0, 0, + EXPECT_NO_MEDIUM); +} + +static void +test_readcapacity16(void) +{ + logging(LOG_VERBOSE, "Test READCAPACITY16 when medium is ejected."); + READCAPACITY16(sd, NULL, 15, + EXPECT_NO_MEDIUM); +} + void test_nomedia_sbc(void) { - int ret; - unsigned char buf[4096]; - struct unmap_list list[1]; - CHECK_FOR_SBC; logging(LOG_VERBOSE, LOG_BLANK_LINE); @@ -60,226 +234,46 @@ test_nomedia_sbc(void) } logging(LOG_VERBOSE, "Eject the medium."); - ret = startstopunit(sd, 1, 0, 0, 0, 1, 0, - EXPECT_STATUS_GOOD); - CU_ASSERT_EQUAL(ret, 0); + STARTSTOPUNIT(sd, 1, 0, 0, 0, 1, 0, + EXPECT_STATUS_GOOD); logging(LOG_VERBOSE, "Test TESTUNITREADY when medium is ejected."); - ret = testunitready(sd, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); + TESTUNITREADY(sd, + EXPECT_NO_MEDIUM); test_synchronizecache10(); test_synchronizecache16(); - - logging(LOG_VERBOSE, "Test READ10 when medium is ejected."); - ret = read10(sd, NULL, 0, block_size, block_size, - 0, 0, 0, 0, 0, NULL, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test READ12 when medium is ejected."); - ret = read12(sd, NULL, 0, block_size, block_size, - 0, 0, 0, 0, 0, NULL, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test READ16 when medium is ejected."); - ret = read16(sd, NULL, 0, block_size, block_size, - 0, 0, 0, 0, 0, NULL, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test READCAPACITY10 when medium is ejected."); - ret = readcapacity10(sd, NULL, 0, 0, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test READCAPACITY16 when medium is ejected."); - ret = readcapacity16(sd, NULL, 15, - EXPECT_NO_MEDIUM); - 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); - } - - logging(LOG_VERBOSE, "Test GET_LBA_STATUS when medium is ejected."); - ret = get_lba_status(sd, NULL, 0, 24, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "GET_LBA_STATUS"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test PREFETCH10 when medium is ejected."); - ret = prefetch10(sd, 0, 1, 1, 0, EXPECT_NO_MEDIUM); - - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "PREFETCH10"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test PREFETCH16 when medium is ejected."); - ret = prefetch16(sd, 0, 1, 1, 0, EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "PREFETCH16"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test VERIFY10 when medium is ejected."); - memset(buf, 0xa6, sizeof(buf)); - ret = verify10(sd, 0, block_size, block_size, - 0, 0, 1, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "VERIFY10"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test VERIFY12 when medium is ejected."); - ret = verify12(sd, 0, block_size, block_size, - 0, 0, 1, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "VERIFY102"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test VERIFY16 when medium is ejected."); - ret = verify16(sd, 0, block_size, block_size, - 0, 0, 1, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "VERIFY16"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } + test_read10(); + test_read12(); + test_read16(); + test_readcapacity10(); + test_readcapacity16(); + test_verify10(); + test_verify12(); + test_verify16(); + test_getlbastatus(); + test_prefetch10(); + test_prefetch16(); if (!data_loss) { logging(LOG_VERBOSE, "[SKIPPING] Dataloss flag not set. Skipping test for WRITE commands"); goto finished; } - logging(LOG_VERBOSE, "Test WRITE10 when medium is ejected."); - ret = write10(sd, 0, block_size, block_size, - 0, 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test WRITE12 when medium is ejected."); - ret = write12(sd, 0, block_size, block_size, - 0, 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test WRITE16 when medium is ejected."); - ret = write16(sd, 0, block_size, block_size, - 0, 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - CU_ASSERT_EQUAL(ret, 0); - - logging(LOG_VERBOSE, "Test WRITEVERIFY10 when medium is ejected."); - ret = writeverify10(sd, 0, block_size, block_size, - 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "WRITEVERIFY10"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test WRITEVERIFY12 when medium is ejected."); - ret = writeverify12(sd, 0, block_size, block_size, - 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "WRITEVERIFY12"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test WRITEVERIFY16 when medium is ejected."); - ret = writeverify16(sd, 0, block_size, block_size, - 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "WRITEVERIFY16"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test ORWRITE when medium is ejected."); - ret = orwrite(sd, 0, block_size, block_size, - 0, 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "ORWRITE"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test COMPAREWRITE when medium is ejected."); - logging(LOG_VERBOSE, "[SKIPPED] Test not implemented yet"); - - logging(LOG_VERBOSE, "Test WRITESAME10 when medium is ejected."); - ret = writesame10(sd, 0, block_size, - 1, 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "WRITESAME10"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test WRITESAME16 when medium is ejected."); - ret = writesame16(sd, 0, block_size, - 1, 0, 0, 0, 0, buf, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "WRITESAME16"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - - logging(LOG_VERBOSE, "Test UNMAP when medium is ejected."); - list[0].lba = 0; - list[0].num = lbppb; - ret = unmap(sd, 0, list, 1, - EXPECT_NO_MEDIUM); - if (ret == -2) { - logging(LOG_NORMAL, "[SKIPPED] target does not support " - "UNMAP"); - } else { - CU_ASSERT_EQUAL(ret, 0); - } - + test_compareandwrite(); + test_orwrite(); + test_unmap(); + test_write10(); + test_write12(); + test_write16(); + test_writesame10(); + test_writesame16(); + test_writeverify10(); + test_writeverify12(); + test_writeverify16(); finished: logging(LOG_VERBOSE, "Load the medium again."); - ret = startstopunit(sd, 1, 0, 0, 0, 1, 1, - EXPECT_STATUS_GOOD); - CU_ASSERT_EQUAL(ret, 0); + STARTSTOPUNIT(sd, 1, 0, 0, 0, 1, 1, + EXPECT_STATUS_GOOD); }