[PATCH v3 2/2] mspatcha: Test implementations of ApplyPatchToFile and related functions.

Hans Leidekker hans at codeweavers.com
Tue May 7 06:00:43 CDT 2019


On Mon, 2019-04-22 at 18:50 +1000, Conor McCarthy wrote:
...
> +#include "wine/test.h"
> +#include "windef.h"
> +#include "winbase.h"
> +#include "winerror.h"
> +
> +#include "patchapi.h"
> +
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <string.h>
> +
> +#include "test_files.h"

I see no reason to put that in a separate file.

> +int create_file(const BYTE *buf, size_t size, const char *name)
> +{
> +    size_t w;
> +    FILE *f = fopen(name, "wb");
> +    if (f == NULL)
> +        return -1;
> +    w = fwrite(buf, 1, size, f);
> +    fclose(f);
> +    return w != size;
> +}

Please write this using Win32 functions only (CreateFile etc). It would
also be better not to assume that the current directory is writable.

> +#define CREATE_FILE(buf, name) create_file(buf, sizeof(buf), name)
...
> +static const char old_file_temp[] = "old_file.temp";
> +static const char patch_file_temp[] = "patch_file.temp";
> +static const char patch_file_temp_2[] = "patch_file_2.temp";
> +static const char output_file_temp[] = "output.temp";
> +
> +static void test_ApplyPatchToFile(void)
> +{
> +    ULONG current;
> +    DWORD err;
> +
> +    if (CREATE_FILE(patch_null_input_uncompressed, patch_file_temp_2)
> +        || CREATE_FILE(old_two_files_ranges_0, old_file_temp)
> +        || CREATE_FILE(patch_two_files_ranges, patch_file_temp))
> +    {
> +        skip("Failed to create temporary input files\n");
> +        return;
> +    }

Please avoid macros like CREATE_FILE. You could introduce a structure
here that holds the buffer, size and filename, define an array of those
and then iterate over the array. Look at how other tests do it.




More information about the wine-devel mailing list