- Sync winerror.h to wine-10.0
- Fix a couple hacks that existed because we didn't do this sooner
- Fix an instance where Wine compares a pointer to S_OK to see if it's null
Previously, when leave was used in the except or finally block of a nested try block, it would jump back to the start of the except/finally block, resulting in an endless loop. This is fixed by jumping back to a label at the beginning of the try block, which is only visible from within the try block itself and from there to the end of the SEH block.
Fixes seh0055 testcase of MS SEH tests.
Add a `wlntfytests.dll` in `ReactOS\bin\suppl`, containing tests for Winlogon notifications.
To use it:
- Register the dll with `regsvr32 <path_to>\wlntfytests.dll` and reboot
the machine.
- With a debugger, observe the traces emitted by the dll, whenever any
Winlogon notification is emitted. If Winlogon debugging is enabled,
a debug-break is made everytime a notification is invoked.
- Once testing is done, unregister the dll with `regsvr32 /u <path_to>\wlntfytests.dll`
and reboot the machine.
For each received notification, the handlers dump the contents of the
`WLX_NOTIFICATION_INFO` structure, and verify that the notifications
are received in the correct expected order. This is done by keeping
what the previous received notification was, before comparing it with
the expected one(s) that must precede the new notification being received.
References:
- https://learn.microsoft.com/en-us/windows/win32/secauthn/creating-a-winlogon-notification-package
- https://learn.microsoft.com/en-us/windows/win32/secauthn/winlogon-notification-events
- https://rsdn.org/article/baseserv/winlogon.xml
- [PSDK] Sync wincrypt.h to Wine 10.0, keeping our SAL annotated function definitions behind an #ifdef guard
- [XDK] Add definitions to our winnt header that Wine 10.0's winternl.h depends on.
- [INCLUDE/WINE] Sync winternl.h to Wine 10.0
- [OTHER] Fix breaking changes with the synced winternl.h.
- Properly initialize a string in SHPropertyBag test. This prevents a heap assertion failure on Vista+ when freed and connected to a debugger.
- Adjust a value against Windows 8+ instead of Vista as originally assumed in the IsQSForward test.
- Use GetVersion() to check if we are running on NT6+ and test appropriately in the PathIsUNC and PathIsUNCServer tests.
- liCreateTimestamp isn't set in TCP tables on several Windows versions. If it isn't, then we can't compare it to the current system time; so don't.
- GetInterfaceName had some test failures unique to Vista, guard them.
- icmp: Accept either ERROR_INVALID_HANDLE or ERROR_INVALID_PARAMETER as a last error in a couple tests.
Fix several kmtests in preparation for testbots with newer versions of Windows. There's still more kmtests to fix, but this fixes all the kmtests that bugchecked during my testing.
In particular:
- unhardcode buffer sizes and API flags;
- add our standard file header in the .c file (I haven't done it for
the other files);
- merge systeminfo.rc and rsrc.rc together.
- Improve help/usage display formatting for all languages.
- Fix sk-SK Slovak typos and file encoding.
With Notepad++:
* "Encoding->Convert to ANSI", then Save;
* "Encoding->Character encoding->Central Europe Languages->OEM 852", then Save;
* "Encoding->Convert to UTF-8 (without BOM)"
- Fix and finish French (fr-FR) translation.
It's frustrating when windows open
during a test and remain after the test
is over.
JIRA issue: ROSTESTS-402
- Delete closewnd.cpp. Enhance
closewnd.h.
- Modify ShellExecCmdLine,
ShellExec_RunDLL, ShellExecuteEx,
and ShellExecuteW testcases.
- Certainly close the newly-opened
windows.
CORE-12686
Test the following compilation scenarii:
- using the `pathcch_static` library (function implementations
statically linked into the test);
- using the `pathcch_kernelbase` library (linking directly to
kernelbase.dll);
- using the `pathcch` MS PSDK-compatible library (linking to
the api-ms-win-core-path-l1-1-0.dll APISET dll).
Note: The code contains a custom implementation of ldexp in python, because on Windows (below Win 11) ldexp is broken and rounds denormals incorrectly. ldexp is used by mpmath to convert multi-precision to float, which led to incorrect floating point results (specifically denormals).