[PATCH v2 1/2] ntdll: Implement NtQuerySystemInformationEx(SystemCpuSetInformation).
Alexandre Julliard
julliard at winehq.org
Tue Mar 30 05:14:45 CDT 2021
Paul Gofman <pgofman at codeweavers.com> writes:
> +static void test_query_cpusetinfo(void)
> +{
> + SYSTEM_CPU_SET_INFORMATION *info;
> + unsigned int i, cpu_count;
> + ULONG len, expected_len;
> + NTSTATUS status;
> + SYSTEM_INFO si;
> + HANDLE process;
> +
> + if (!pNtQuerySystemInformationEx)
> + return;
> +
> + GetSystemInfo(&si);
> + cpu_count = si.dwNumberOfProcessors;
> + expected_len = cpu_count * sizeof(*info);
> +
> + process = GetCurrentProcess();
> +
> + status = pNtQuerySystemInformationEx(SystemCpuSetInformation, &process, sizeof(process), NULL, 0, &len);
> + if (status == STATUS_INVALID_INFO_CLASS)
> + {
> + win_skip("SystemCpuSetInformation is not supported\n");
> + return;
> + }
> +
> + ok(status == STATUS_BUFFER_TOO_SMALL, "Got unexpected status %#x.\n", status);
> + ok(len == expected_len, "Got unexpected length %u.\n", len);
> +
> + len = 0xdeadbeef;
> + status = pNtQuerySystemInformation(SystemCpuSetInformation, NULL, 0, &len);
> + todo_wine_if(!is_win64 && status == STATUS_INVALID_PARAMETER)
> + ok(status == (is_win64 ? STATUS_INVALID_PARAMETER : STATUS_INVALID_INFO_CLASS),
> + "Got unexpected status %#x.\n", status);
> + ok(len == 0xdeadbeef, "Got unexpected len %u.\n", len);
You should avoid is_win64 checks in the tests as well. Simply allow both
values, or allow just one and mark the other broken.
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list