pb3
p = pb0+z*(pb1+z*(pb2+z*(pb3+z*(pb4+z*(pb5+z*(pb6+z*pb7))))));
char pb1[MAXPATHLEN], pb2[MAXPATHLEN], pb3[MAXPATHLEN];
md(pb3, sizeof(pb3), mp, "dir1/file");
if (rump_sys_mknod(pb3, S_IFREG | 0777, -1) == -1)
if (rump_sys_stat(pb3, &ref) == -1)
md(pb3, sizeof(pb3), mp, "dir3");
if (rump_sys_rename(pb1, pb3) == -1)
checkfile(pb3, &ref);
if (rump_sys_rename(pb1, pb3) != -1 || errno != EINVAL)
if (rump_sys_rename(pb3, pb1) != -1 || errno != EISDIR)
checkfile(pb3, &ref);
checkfile(pb3, &ref);
if (rump_sys_rename(pb2, pb3) != -1 || errno != ENOTEMPTY)
md(pb3, sizeof(pb3), mp, "dir2/subdir");
if (rump_sys_rename(pb1, pb3) == -1)
checkfile(pb3, &ref);
md(pb3, sizeof(pb3), mp, "parent/dir2");
RL(rump_sys_mkdir(pb3, 0777));
RL(rump_sys_rename(pb2, pb3));
RL(rump_sys_rmdir(pb3));