[PATCH v2] winmm: Pass a fullpath to CreateFileA

Andrew Eikum aeikum at codeweavers.com
Mon Aug 31 09:41:58 CDT 2020


On Mon, Aug 31, 2020 at 05:33:58PM +1000, Alistair Leslie-Hughes wrote:
> diff --git a/dlls/winmm/tests/mmio.c b/dlls/winmm/tests/mmio.c
> index e3984fbaf3..0de51a2562 100644
> --- a/dlls/winmm/tests/mmio.c
> +++ b/dlls/winmm/tests/mmio.c
> @@ -478,6 +478,7 @@ static void test_mmioOpen_create(void)
>      WCHAR cwd[MAX_PATH], temp_dir[MAX_PATH];
>      /* According to docs, filename must be no more than 128 bytes, but it will
>       * actually allow longer than that. */
> +    WCHAR relpath[] = L"local\\examplefile";
>      WCHAR filename[] = L"very_long_filename_"
>          L"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
>          L"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
> @@ -520,6 +521,14 @@ static void test_mmioOpen_create(void)
>  
>      DeleteFileW(filename);
>  
> +    CreateDirectoryA("local", NULL);
> +    hmmio = mmioOpenW(relpath, NULL, MMIO_CREATE | MMIO_WRITE | MMIO_EXCLUSIVE);
> +    ok(hmmio != NULL, "mmioOpen failed\n");
> +    mmioClose(hmmio, 0);
> +
> +    DeleteFileW(relpath);
> +    RemoveDirectoryA("local");
> +
>      SetCurrentDirectoryW(cwd);
>  }
>  

On my machine, this test passes without your changes to
<dlls/winmm/mmio.c> applied. This is what I'd expect, CreateFile
should find files that are relative to the CWD in the same was as
SearchPath, so your patch is a no-op in this test case. I think you
want to add a test showing that mmioOpen will open files elsewhere in
the system path, or whatever it is that the game is depending on.

Andrew



More information about the wine-devel mailing list