On Mon, 7 Feb 2022 17:40:24 -0500
Will Cohen <wwcohen@gmail.com> wrote:
> The previous test depended on the assumption that P9_DOTL_AT_REMOVEDIR
> and AT_REMOVEDIR have the same value.
>
> While this is true on Linux, it is not true everywhere, and leads to an
> incorrect test failure on unlink_at, noticed when adding 9p to darwin:
>
> Received response 7 (RLERROR) instead of 77 (RUNLINKAT)
> Rlerror has errno 22 (Invalid argument)
> **
>
> ERROR:../tests/qtest/virtio-9p-test.c:305:v9fs_req_recv: assertion
> failed (hdr.id == id): (7 == 77) Bail out!
>
> ERROR:../tests/qtest/virtio-9p-test.c:305:v9fs_req_recv: assertion
> failed (hdr.id == id): (7 == 77)
>
> Signed-off-by: Fabian Franz <fabianfranz.oss@gmail.com>
> [Will Cohen: - Add explanation of patch and description
> of pre-patch test failure]
> Signed-off-by: Will Cohen <wwcohen@gmail.com>
> Acked-by: Thomas Huth <thuth@redhat.com>
> ---
LGTM but this patch should go before patch 10 that enables
Darwin host support to avoid qtest breakage while bisecting.
Reviewed-by: Greg Kurz <groug@kaod.org>
> tests/qtest/virtio-9p-test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/qtest/virtio-9p-test.c b/tests/qtest/virtio-9p-test.c
> index 41fed41de1..6bcf89f0f8 100644
> --- a/tests/qtest/virtio-9p-test.c
> +++ b/tests/qtest/virtio-9p-test.c
> @@ -1270,7 +1270,7 @@ static void fs_unlinkat_dir(void *obj, void *data, QGuestAllocator *t_alloc)
> /* ... and is actually a directory */
> g_assert((st.st_mode & S_IFMT) == S_IFDIR);
>
> - do_unlinkat(v9p, "/", "02", AT_REMOVEDIR);
> + do_unlinkat(v9p, "/", "02", P9_DOTL_AT_REMOVEDIR);
> /* directory should be gone now */
> g_assert(stat(new_dir, &st) != 0);
>