Bugfix for #14

WriteCheck did not work properly due to shifting of patterns.
It is possible that one buffer could be saved by refactoring the code properly.
master
Julian Kunkel 2017-11-29 10:17:02 +01:00
parent 4c5856469b
commit b67c5ce62c
1 changed files with 6 additions and 2 deletions

View File

@ -1359,7 +1359,7 @@ static void XferBuffersSetup(IOR_io_buffers* ioBuffers, IOR_param_t* test,
if (test->checkWrite || test->checkRead) {
ioBuffers->checkBuffer = aligned_buffer_alloc(test->transferSize);
}
if (test->checkRead) {
if (test->checkRead || test->checkWrite) {
ioBuffers->readCheckBuffer = aligned_buffer_alloc(test->transferSize);
}
@ -2114,6 +2114,9 @@ static void TestIoSys(IOR_test_t *test)
(2 * params->tasksPerNode) % params->numTasks;
}
// update the check buffer
FillBuffer(ioBuffers.readCheckBuffer, params, 0, (rank + rankOffset) % params->numTasks);
reseed_incompressible_prng = TRUE; /* Re-Seed the PRNG to get same sequence back, if random */
GetTestFileName(testFileName, params);
@ -2559,13 +2562,14 @@ static IOR_offset_t WriteOrReadSingle(IOR_offset_t pairCnt, IOR_offset_t *offset
ERR("cannot read from file");
} else if (access == WRITECHECK) {
memset(checkBuffer, 'a', transfer);
amtXferred =
backend->xfer(access, fd, checkBuffer, transfer,
test);
if (amtXferred != transfer)
ERR("cannot read from file write check");
(*transferCount)++;
*errors += CompareBuffers(buffer, checkBuffer, transfer,
*errors += CompareBuffers(readCheckBuffer, checkBuffer, transfer,
*transferCount, test,
WRITECHECK);
} else if (access == READCHECK) {