On 05/20/2016 03:36 PM, Changlong Xie wrote:
+static void io_write(BlockDriverState *bs, long pattern, int64_t pattern_count,
+ int64_t offset, int64_t count, bool expect_failed)
+{
+ void *pattern_buf;
Should initialize as NULL to avoid below warnning:
tests/test-replication.c:104:15: error: ‘pattern_buf’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
g_free(pattern_buf);
Will fix in next version.
+ int ret;
+
+ /* 1. alloc pattern buffer */
+ if (pattern) {
+ pattern_buf = g_malloc(pattern_count);
+ memset(pattern_buf, pattern, pattern_count);
+ }
+
+ /* 2. do write */
+ if (pattern) {
+ ret = bdrv_write(bs, offset >> 9, (uint8_t *)pattern_buf, count >> 9);
+ } else {
+ ret = bdrv_write_zeroes(bs, offset >> 9, count >> 9, 0);
+ }
+
+ /* 3. assert */
+ if (expect_failed) {
+ g_assert(ret < 0);
+ } else {
+ g_assert(ret >= 0);
+ g_free(pattern_buf);
+ }
+}