From b5a6f7c3cbd7c6fc1dbf78629390e3c04bea7fb6 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sat, 14 Jul 2012 13:15:45 +1000 Subject: [PATCH] Bugfixes for the compare and write tests --- test-tool/0340_compareandwrite_simple.c | 5 ++-- test-tool/0343_compareandwrite_beyondeol.c | 30 +++++++++++----------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/test-tool/0340_compareandwrite_simple.c b/test-tool/0340_compareandwrite_simple.c index 509e20e..3baf200 100644 --- a/test-tool/0340_compareandwrite_simple.c +++ b/test-tool/0340_compareandwrite_simple.c @@ -81,6 +81,7 @@ int T0340_compareandwrite_simple(const char *initiator, const char *url, int dat ret = 0; + /* write the first 1 - 255 blocks at the start of the LUN */ printf("Compare and write first 1-255 blocks ... "); for (i = 1; i < 256; i++) { @@ -129,9 +130,9 @@ int T0340_compareandwrite_simple(const char *initiator, const char *url, int dat test2: /* write the last 1 - 255 blocks at the end of the LUN */ - printf("Compare and write last 1-256 blocks ... "); + printf("Compare and write last 1-255 blocks ... "); for (i = 1; i < 256; i++) { - task = iscsi_read16_sync(iscsi, lun, 0, i * block_size, block_size, 0, 0, 0, 0, 0); + task = iscsi_read16_sync(iscsi, lun, num_blocks + 1 - i, i * block_size, block_size, 0, 0, 0, 0, 0); if (task == NULL) { printf("[FAILED]\n"); printf("Failed to send READ16 command: %s\n", iscsi_get_error(iscsi)); diff --git a/test-tool/0343_compareandwrite_beyondeol.c b/test-tool/0343_compareandwrite_beyondeol.c index e830b33..fdfc850 100644 --- a/test-tool/0343_compareandwrite_beyondeol.c +++ b/test-tool/0343_compareandwrite_beyondeol.c @@ -34,10 +34,10 @@ int T0343_compareandwrite_beyondeol(const char *initiator, const char *url, int printf("=======================\n"); if (show_info) { printf("Test that COMPAREANDWRITE fails if writing beyond end-of-lun.\n"); - printf("1, Writing 1-256 blocks with one block beyond end-of-lun should fail.\n"); - printf("2, Writing 1-256 blocks at LBA 2^63 should fail.\n"); - printf("3, Writing 1-256 blocks at LBA -1 should fail.\n"); - printf("4, Writing 1-256 blocks all but one block beyond eol\n"); + printf("1, Writing 1-255 blocks with one block beyond end-of-lun should fail.\n"); + printf("2, Writing 1-255 blocks at LBA 2^63 should fail.\n"); + printf("3, Writing 1-255 blocks at LBA -1 should fail.\n"); + printf("4, Writing 1-255 blocks all but one block beyond eol\n"); printf("\n"); return 0; } @@ -81,9 +81,9 @@ int T0343_compareandwrite_beyondeol(const char *initiator, const char *url, int ret = 0; - /* read 1 - 256 blocks beyond the end of the device */ - printf("Writing 1-256 blocks with one block beyond end-of-device ... "); - for (i = 1; i <= 256; i++) { + /* read 1 - 255 blocks beyond the end of the device */ + printf("Writing 1-255 blocks with one block beyond end-of-device ... "); + for (i = 1; i <= 255; i++) { task = iscsi_compareandwrite_sync(iscsi, lun, num_blocks + 2 - i, data, i * block_size, block_size, 0, 0, 0, 0, 0); if (task == NULL) { printf("[FAILED]\n"); @@ -104,9 +104,9 @@ int T0343_compareandwrite_beyondeol(const char *initiator, const char *url, int test2: - /* read 1 - 256 blocks at lba 2^63 */ - printf("Writing 1-256 blocks at LBA 2^63 ... "); - for (i = 1; i <= 256; i++) { + /* read 1 - 255 blocks at lba 2^63 */ + printf("Writing 1-255 blocks at LBA 2^63 ... "); + for (i = 1; i < 256; i++) { task = iscsi_compareandwrite_sync(iscsi, lun, 0x8000000000000000, data, i * block_size, block_size, 0, 0, 0, 0, 0); if (task == NULL) { printf("[FAILED]\n"); @@ -127,9 +127,9 @@ test2: test3: - /* read 1 - 256 blocks at lba -1 */ - printf("Writing 1-256 blocks at LBA -1 ... "); - for (i = 1; i <= 256; i++) { + /* read 1 - 255 blocks at lba -1 */ + printf("Writing 1-255 blocks at LBA -1 ... "); + for (i = 1; i < 256; i++) { task = iscsi_compareandwrite_sync(iscsi, lun, 0xffffffffffffffff, data, i * block_size, block_size, 0, 0, 0, 0, 0); if (task == NULL) { printf("[FAILED]\n"); @@ -149,9 +149,9 @@ test3: printf("[OK]\n"); test4: - /* read 2-256 blocks, all but one block beyond the eol */ + /* read 2-255 blocks, all but one block beyond the eol */ printf("Writing 1-255 blocks beyond eol starting at last block ... "); - for (i=2; i<=256; i++) { + for (i = 2; i < 256; i++) { task = iscsi_compareandwrite_sync(iscsi, lun, num_blocks, data, i * block_size, block_size, 0, 0, 0, 0, 0); if (task == NULL) { printf("[FAILED]\n");