MCPcopy Create free account
hub / github.com/axboe/liburing / cmd_issue_verify

Function cmd_issue_verify

test/cmd-discard.c:145–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143}
144
145static int cmd_issue_verify(struct io_uring *ring, int fd, int lba, int len,
146 int cmd_op)
147{
148 int verify = (cmd_op != BLOCK_URING_CMD_DISCARD);
149 int ret, i;
150 ssize_t res;
151
152 if (verify) {
153 for (i = 0; i < len; i++) {
154 size_t off = (i + lba) * lba_size;
155
156 res = pwrite(fd, buffer, lba_size, off);
157 if (res == -1) {
158 fprintf(stderr, "pwrite failed\n");
159 return T_EXIT_FAIL;
160 }
161 }
162 }
163
164 ret = queue_cmd_lba(ring, fd, lba, len, cmd_op);
165 if (ret) {
166 if (ret == -EINVAL || ret == -EOPNOTSUPP)
167 return T_EXIT_SKIP;
168
169 fprintf(stderr, "cmd_issue_verify %i fail lba %i len %i ret %i\n",
170 cmd_op, lba, len, ret);
171 return T_EXIT_FAIL;
172 }
173
174 if (verify) {
175 for (i = 0; i < len; i++) {
176 size_t off = (i + lba) * lba_size;
177
178 res = pread(fd, buffer, lba_size, off);
179 if (res == -1) {
180 fprintf(stderr, "pread failed\n");
181 return T_EXIT_FAIL;
182 }
183 if (!memchr(buffer, 0, lba_size)) {
184 fprintf(stderr, "mem cmp failed, lba %i\n", lba + i);
185 return T_EXIT_FAIL;
186 }
187 }
188 }
189 return 0;
190}
191
192static int basic_cmd_test(struct io_uring *ring, int op)
193{

Callers 1

basic_cmd_testFunction · 0.85

Calls 1

queue_cmd_lbaFunction · 0.85

Tested by

no test coverage detected