[PATCH v2 1/4] msvcrt/tests: Add test for fopen sequential access hint
Piotr Caban
piotr.caban at gmail.com
Mon Aug 2 12:02:44 CDT 2021
Hi Luke,
On 8/2/21 5:03 PM, Luke Deller wrote:
> +static void test_fopen_hints(void)
> +{
> + char *tempf;
> + FILE *fp;
> + HANDLE handle;
> + FILE_MODE_INFORMATION mode_info;
> + IO_STATUS_BLOCK io;
> + NTSTATUS status;
> +
> + /* create a test file */
> + tempf = _tempnam(".","wne");
> + fp = fopen(tempf, "wb");
> + ok(fp != NULL, "unable to create test file\n");
> + fwrite("abc\n", 1, 4, fp);
> + fclose(fp);
> +
> + /* open test file with sequential access hint */
> + fp = fopen(tempf, "rbS");
> + ok(fp != NULL, "unable to open test file with sequential access hint\n");
> +
> + /* check that sequential access hint is set on underlying file handle */
> + handle = (HANDLE)_get_osfhandle(_fileno(fp));
> + status = NtQueryInformationFile(handle, &io, &mode_info, sizeof(mode_info),
> + FileModeInformation);
> + ok(!status, "NtQueryInformationFile failed\n");
> + ok(mode_info.Mode & FILE_SEQUENTIAL_ONLY, "handle missing hint\n");
> +
> + /* clean up */
> + fclose(fp);
> + unlink(tempf);
> + free(tempf);
> +}
It would be nice to also test
fp = fopen(tempf, "rbRS");
and
fp = fopen(tempf, "rbSR");
case.
The same applies to second patch, what happens if _O_RANDOM and
_O_SEQUENTIAL is passed?
You will also need to mark the tests failing in wine with todo_wine or
reorder the patches.
Thanks,
Piotr
More information about the wine-devel
mailing list