@@ -644,13 +644,14 @@ static void fs_readdir_split(void *obj, void *data, QGuestAllocator *t_alloc)
int fid;
uint64_t offset;
/* the Treaddir 'count' parameter values to be tested */
- const uint32_t vcount[] = { 512, 256 };
+ const uint32_t vcount[] = { 512, 256, 128 };
const int nvcount = sizeof(vcount) / sizeof(uint32_t);
fs_attach(v9p, NULL, t_alloc);
/* iterate over all 'count' parameter values to be tested with Treaddir */
for (subtest = 0; subtest < nvcount; ++subtest) {
+ printf("\nsubtest[%d] with count=%d\n", subtest, vcount[subtest]);
fid = subtest + 1;
offset = 0;
entries = NULL;
@@ -671,12 +672,16 @@ static void fs_readdir_split(void *obj, void *data, QGuestAllocator *t_alloc)
* entries
*/
while (true) {
+ printf("\toffset=%ld\n", offset);
npartialentries = 0;
partialentries = NULL;
+ printf("Treaddir fid=%d offset=%ld count=%d\n",
+ fid, offset, vcount[subtest]);
req = v9fs_treaddir(v9p, fid, offset, vcount[subtest], 0);
v9fs_req_wait_for_reply(req, NULL);
v9fs_rreaddir(req, &count, &npartialentries, &partialentries);
+ printf("\t\tnpartial=%d nentries=%d\n", npartialentries, nentries);
if (npartialentries > 0 && partialentries) {
if (!entries) {
entries = partialentries;
@@ -713,6 +718,8 @@ static void fs_readdir_split(void *obj, void *data, QGuestAllocator *t_alloc)
}
v9fs_free_dirents(entries);
+
+ printf("PASSED subtest[%d]\n", subtest);
}
g_free(wnames[0]);
This patch is not intended to be merged. It resembles an issue (with debug messages) where the splitted readdir test fails because server is interrupted with transport error "Failed to decode VirtFS request type 40", which BTW fails both with the unoptimized and with the optimized 9p readdir code. Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> --- tests/virtio-9p-test.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)