Commit Graph
994 Commits
Author SHA1 Message Date
Katayama Hirofumi MZ 546297fe86 [SHELL32][SHLWAPI][BROWSEUI][SHELL32_APITEST][SDK][KBSWITCH][RAPPS] Support SHEvaluateSystemCommandTemplate (#9111)
This function has an important role
for new ShellExecute implementation.
JIRA issue: CORE-19278
- Add evalcmd static library into
  dll/win32/shell32/evalcmd.
- Implement
  SHEvaluateSystemCommandTemplate
  in evalcmd.
- Link evalcmd to shell32 and shlwapi.
- Modify shell32.spec and shlwapi.spec.
- Add prototype to <shellapi.h>.
- Add
  SHEvaluateSystemCommandTemplate
  testcase.
- Define PathIsAbsolute inline
  function in <shlwapi_undoc.h>
  and use it.
2026-06-24 20:35:37 +09:00
Mark Jansen 7c05a10a90 [ACLAYERS] Add shim for GlobalMemoryStatus
This is needed by games like Half-life that won't start without it.
2026-06-21 01:33:39 +02:00
Mark Jansen ab16c8a867 [ACLAYERS][APPSHIM_APITEST] Relicense to a friendlier license 2026-06-21 01:33:39 +02:00
Katayama Hirofumi MZ b7932431e7 [SDK][SHELL32_APITEST][USER32_APITEST] Update <msgdump.h> to version 21 (#9171)
Modernize development tools.
JIRA issue: N/A
- Update <msgdump.h> to
  version 21.
- Adapt shell32_apitest and
  user32_apitest.
2026-06-17 23:37:30 +09:00
Katayama Hirofumi MZ 1d5d93f05f [SHLWAPI][SHLWAPI_APITEST][SDK] Support MapWin32ErrorToSTG (#9147)
Implementing missing features...
JIRA issue: CORE-19278
- Implement MapWin32ErrorToSTG function.
- Modify shlwapi.spec.
- Add prototype to <shlwapi_undoc.h>.
- Add MapWin32ErrorToSTG testcase.
2026-06-14 11:12:21 +09:00
Katayama Hirofumi MZ c59ce34030 [SHLWAPI][SHLWAPI_APITEST][SDK] Support SHGetFileDescriptionA/W (#9109)
Implementing missing features...
JIRA issue: CORE-19278
- Implement PrettifyFileDescriptionW, SHGetFileDescriptionA,
  and SHGetFileDescriptionW functions.
- Modify shlwapi.spec.
- Add prototypes into <shlwapi_apitest.h>.
- Add SHGetFileDescription testcase.
2026-06-07 08:17:49 +09:00
Katayama Hirofumi MZ 24a202796f [SHLWAPI_APITEST] Enhance AssocQueryString testcase (#9076)
Add the tests of "Tricky Pointer" (the pointer that is
non-null and IS_INTRESOURCE(...) is true).
JIRA issue: CORE-20467
- Directly call AssocQueryStringA/W functions
  without using GetProcAddress.
- Use ASSOCF_NONE instead of zero.
- Add the tests of "Tricky Pointers" handling.
2026-06-06 19:03:15 +09:00
Katayama Hirofumi MZ cbc75d17e0 [SHLWAPI_APITEST] Add AssocQueryKey testcase (#9073)
JIRA issue: CORE-20467
Add AssocQueryKey testcase.
2026-06-05 11:17:28 +09:00
Katayama Hirofumi MZ fe5b75083e [SHLWAPI][SHLWAPI_APITEST][SDK] Support NextPathA/W (#9039)
Implementing missing features...
JIRA issue: CORE-19278
- Implement NextPathA and
  NextPathW functions.
- Modify shlwapi.spec.
- Add prototypes into
  <shlwapi_undoc.h>.
- Add NextPath testcase.
2026-06-03 21:38:21 +09:00
Katayama Hirofumi MZ 3b3e1ff997 [SHLWAPI][SHLWAPI_APITEST][SDK] Support QuerySourceCreateFromKey (#9093)
Implementing missing features...
JIRA issue: CORE-20467
- Add querysrc.cpp.
- Add CRegistryEnumValues,
  CRegistryEnumKeys, and
  CRegistrySource classes.
- Implement
  QuerySourceCreateFromKey
  function.
- Add prototype into
  <shlwapi_undoc.h>.
- Modify shlwapi.spec.
- Add QuerySourceCreateFromKey
  testcase.
2026-05-31 17:33:17 +09:00
Jiahe Wang 901a4edb04 [RTL_APITEST][NTDLL_APITEST] Add RtlVirtualUnwind test 2026-05-29 13:37:18 +00:00
Timo Kreuzer 413a1eace8 [KERNEL32_APITEST] Add tests for MultiByteToWideChar
Test for UTF-8 -> UTF-16 surrogate pair.
2026-05-26 20:58:29 +00:00
Timo Kreuzer c41b381617 [KERNEL32_APITEST] Fix tests for MultiByteToWideChar on Vista 2026-05-26 20:58:29 +00:00
Timo Kreuzer 865ed62ef1 [KERNEL32_APITEST] Update tests to reflect ReactOS behavior 2026-05-19 14:40:49 +00:00
Timo Kreuzer 6ef4ddb83d [KERNEL32_APITEST] Add a test for NULL lpBytesReturned 2026-05-19 14:40:49 +00:00
Timo Kreuzer b8bf0089de [KERNEL32_APITEST] Add tests for ReadFile and WriteFIle 2026-05-19 14:40:49 +00:00
Timo Kreuzer 50985d9702 [NTDLL_APITEST] Add a test for RtlGetProductInfo 2026-05-19 14:40:01 +00:00
Timo Kreuzer f530cf99a0 [ROSTESTS] Get rid of some test lists 2026-05-15 16:50:48 +00:00
Timo Kreuzer 104d889c7a [ROSTESTS] Do not compile tests that should not run
With automatic test list creation, whatever is built will also run.
2026-05-15 16:50:48 +00:00
Timo Kreuzer dd27d0e194 [APITESTS] Make sure test functions are name correctly
With automatic test list creation, the function name (from START_TEST(name)) will also be the test name and some of those conflict with wine tests.
2026-05-15 16:50:48 +00:00
Timo Kreuzer 5f51f24697 [CRT_APITEST] Improve some tests
This is needed to automatically derive the test name from START_TEST.
2026-05-15 16:50:48 +00:00
Timo Kreuzer 86ced29104 [DELAYIMP_APITEST] Fix crash on Vista x64
For some reason on Vista x64 0xdeadbeef isn't detected as an invalid handle and the whole thing crashes. INVALID_HANDLE_VALUE on the other hand is detected as an invalid handle, so use that.
2026-05-15 13:31:25 +00:00
Stanislav MotylkovandAliaksandr Lebiadzevich b24dd41549 [KERNEL32_APITEST] Add tests for EnumSystemCodePages (#8986)
Inspired by PoC test code by Aliaksandr in CORE-20535.
These tests are passing on Windows.

Co-authored-by: Aliaksandr Lebiadzevich <[email protected]>
2026-05-14 11:32:25 +03:00
Timo Kreuzer a10eff6e2c [KERNEL32_APITEST] Add tests for GetEnvironmentVariable(A/W) 2026-05-08 20:49:38 +00:00
Timo Kreuzer 00d78f9310 [NTDLL_APITEST] Add tests for RtlQueryEnvironmentVariable(_U) 2026-05-08 20:49:38 +00:00
Katayama Hirofumi MZ c6bcf2ac10 [SHLWAPI][SHLWAPI_APITEST][SDK] Support SHInvokeCommandsOnContextMenu (#8919)
Implementing missing features...
JIRA issue: CORE-19278
- Implement
  SHInvokeCommandsOnContextMenu
  function.
- Modify shlwapi.spec.
- Add prototype to <shlwapi_undoc.h>.
- Add
  SHInvokeCommandsOnContextMenu
  testcase.
2026-05-07 21:18:24 +09:00
Timo Kreuzer 1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Katayama Hirofumi MZ 4e01961e20 [SHLWAPI][SHLWAPI_APITEST][SDK] Support CharLowerNoDBCSA/W and CharUpperNoDBCSA/W (#8920)
Implementing missing features...
JIRA issue: CORE-19278
- Implement CharLowerNoDBCSA, CharLowerNoDBCSW,
  CharUpperNoDBCSA, and CharUpperNoDBCSW functions.
- Modify shlwapi.spec.
- Add prototypes into <shlwapi_undoc.h>.
- Add CharUpperNoDBCS testcase.
2026-05-03 10:11:56 +09:00
Katayama Hirofumi MZ 0cd3b555b1 [SHLWAPI][SHLWAPI_APITEST][SDK] Support IStream_ReadPidl and IStream_WritePidl (#8918)
Implementing missing features...
JIRA issue: CORE-19278
- Implement IStream_ReadPidl and IStream_WritePidl
  functions.
- Add prototypes to <shlwapi_undoc.h>.
- Add IStreamPidl testcase.
2026-05-03 10:10:27 +09:00
Timo Kreuzer e5bf20d865 [USER32_APITEST] Fix stack corruption
Found by /RTC1
2026-04-24 14:17:58 +00:00
Max Korostil feb9febaae [WIN32KNT_APITEST][NTUSER] Fix NtUserConvertMemHandle BSOD (#7878)
Fix NtUserConvertMemHandle BSOD.

JIRA issue: CORE-18121
2026-04-12 19:10:34 -05:00
Justin Miller e68ebe19c6 [NTDLL] Revert Implict ThreadLocalStorage for now (#8823)
We will continue with this stuff when we can understand the root issues better

* Revert "[NTDLL_APITEST] Relicense implicit tls tests as MIT"

This reverts commit ec6bae2b31.

* Revert "[NTDLL:LDR] Add Implicit Thread Local Storage Support (#7594)"

This reverts commit 23043ce0b8.
2026-04-01 13:56:00 +02:00
Carl J. Bialorucki ec6bae2b31 [NTDLL_APITEST] Relicense implicit tls tests as MIT
Approval from original author given to Carl Bialorucki in writing.
2026-03-31 16:56:51 +02:00
Shane FournierandJustin Miller 23043ce0b8 [NTDLL:LDR] Add Implicit Thread Local Storage Support (#7594)
Before Windows Vista, TLS directories were ignored by Ldr* in any module loaded after process creation, which meant that the TLS index in any delay-loaded module remained 0. This means that when running an application targeting Vista and above and its delay-load modules have TLS directories, the following events can happen:

    One or more delay-load modules claim ThreadLocalStoragePointer idx 0, resulting in data corruption and possible buffer overflows as data intended for one of the immediate-load modules is overwritten.

    None of the immediate-load modules has a TLS directory, so ThreadLocalStoragePointer is not initialized. This means that the program crashes when one of the delay-load modules attempts to access its TLS data.

Adding implicit TLS support improves support for NT 6.x/10 user-mode applications, including all contemporary major web browsers.

JIRA issue: CORE-19413

---------

Co-authored-by: Justin Miller <[email protected]>
2026-03-31 11:21:57 +00:00
Hermès Bélusca-Maïto e4aaf68c2d [KERNEL32][KERNEL32_APITEST] Remove trailing whitespaces
Addendum to commit 5e998de248.
2026-03-30 13:54:37 +02:00
Julen Urizar Compains 5e998de248 [KERNEL32][KERNEL32_APITEST] Fix the pipe buffer overflow situation into Iosb.Status in the ReadFile (#6724)
Change the way ReadFile and NTReadFile behaves under ReactOS, and fit more what Wine does. Fixes Calibre conversion failure. JIRA issue: CORE-17376
2026-03-30 12:01:28 +02:00
Hermès Bélusca-Maïto a4621bb280 [NTOS:PS][NTDLL_APITESTS] Implement ThreadNameInformation for NtQuery/SetInformationThread() (#8484)
The `ThreadNameInformation` (#38) class is the Windows 10.1607+ way
of assigning a human-readable name (i.e. description) to a given
thread object, that is visible to debuggers and diagnostic tools
(e.g. WinDbg `!thread` command, Process Explorer ...), which is
useful for debugging scenarios.[^1]

Before this, the only way to assign a name to a thread for debugging
purposes was to raise a specific exception, that had to be caught and
interpreted by a supported debugger.[^2][^3]

When the thread object is being deleted (`kill.c!PspDeleteThread()`),
free the thread name if set (courtesy of Ahmed Arif, PR #8796).

References:
[^1]: https://learn.microsoft.com/en-us/visualstudio/debugger/tips-for-debugging-threads
[^2]: https://learn.microsoft.com/en-us/archive/blogs/stevejs/naming-threads-in-win32-and-net
[^3]: https://ofekshilon.com/2009/04/10/naming-threads/
2026-03-29 19:35:34 +02:00
Hermès Bélusca-Maïto 401f3a8a79 [NTDLL_APITEST] Add a test for Nt[Query|Set]InformationThread(ThreadNameInformation) (#8484)
Thanks to 'artDev', 'HP-12C', and 'julenuri' Discord contributors for their help!
2026-03-29 16:52:31 +02:00
Hermès Bélusca-Maïto 2e1a0b73c9 [NTDLL_APITEST][NTOS:PS] Adjust probelib.c test code to skip non-implemented Win7+ thread information classes
Re-enable in ps_i.h the stubbed probing info values for thread information
classes, that were disabled in commit 60aad33ed0 (PR #8487), and adjust
the test code in probelib.c so that the failures for these non-implemented
classes are correctly taken into account.
2026-03-29 16:52:07 +02:00
Hermès Bélusca-Maïto a2a434e8d5 [NTDLL_APITEST] Minor formatting for probelib.c 2026-03-29 16:52:06 +02:00
Carl J. Bialorucki 20d322fcdc [USER32_APITEST_MENUUI] Don't let rosautotest wait on a test list from user32_apitest_menuui.exe (#8469)
- [USER32_APITEST_MENUUI] Return an empty test list when called with --list
NOTE: The better way to fix this is to move this executable to \reactos\bin\suppl. But that requires some refactoring of tests already in our source tree.
2026-03-23 18:32:52 -05:00
Hermès Bélusca-Maïto dc8f9b8671 [SDK_APITEST] Revert "Fix initializing global variables" commit; improve the delayimp_apitest (#8462)
CORE-10935

- This reverts commit 522e9f6dd3.

- Implement Mark's suggestion given in PR #7784,
  https://github.com/reactos/reactos/pull/7784#pullrequestreview-2722604928

  Build three binary versions of the delayimp_apitest, named:
  delayimp_nohook_apitest, delayimp_globalhook_apitest, and delayimp_runtimehook_apitest,
  that respectively are:

  - "nohook": delayload is used, but neither of the hook/failurehook is defined;
  - "globalhook": delayload is used, and the hooks are assigned at global scope;
  - "runtimehook": delayload is used, and the hooks are assigned at runtime.

- Since the delayimp apitests are self-contained, don't use the separate
  testlist.c file. It is temporarily unused, until other SDK-specific tests
  are added in this directory.

## Testing observations:

GCC build (tested with KVM x86): binutils doesn't create specification-compliant
`IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT` table for delay-loaded imports, and as a
result, the tests show:
```
delayimp.cpp:472: Tests skipped: No IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT found,
  some advanced features might not work!
```
Additionally, both `SymGetOptions` and `MapAndLoad` tests are skipped "until
CORE-6504 is fixed", as claimed. _**This doesn't happen for MSVC builds.**_
2026-03-22 17:14:40 +01:00
Hermès Bélusca-Maïto 67e331a88d [DBGHELP_APITEST] Revert "Fix initializing global variables" commit (#8462)
This reverts commit 522e9f6dd3.
2026-03-22 16:57:46 +01:00
Timo Kreuzer 63c4a85d76 [NTDLL_APITEST] Suppress GCC 13 infinite-recursion warning
Suppress warning about infinite recursion, because that is the whole point of this test.

C:/ReactOS/reactos/modules/rostests/apitests/ntdll/StackOverflow.c: In function 'infinite_recursive':
C:/ReactOS/reactos/modules/rostests/apitests/ntdll/StackOverflow.c:23:1: error: infinite recursion detected [-Werror=infinite-recursion]
   23 | infinite_recursive(void)
      | ^~~~~~~~~~~~~~~~~~
C:/ReactOS/reactos/modules/rostests/apitests/ntdll/StackOverflow.c:58:5: note: recursive call
   58 |     infinite_recursive();
      |     ^~~~~~~~~~~~~~~~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer e8df04f413 [CRT_APITEST] Don't compare arrays against NULL.
Fixes GCC 13 warning:

C:/ReactOS/reactos/modules/rostests/apitests/crt/crtdata.c: In function 'Test___badioinfo':
C:/ReactOS/reactos/modules/rostests/apitests/crt/crtdata.c:75:20: error: the comparison will always evaluate as 'true' for the address of '__badioinfo' will never be NULL [-Werror=address]
   75 |     ok(__badioinfo != NULL, "__badioinfo is NULL\n");
      |                    ^~
C:/ReactOS/reactos/modules/rostests/apitests/crt/crtdata.c:74:28: note: '__badioinfo' declared here
   74 |     _CRTIMP extern ioinfo* __badioinfo[];
      |                            ^~~~~~~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer 806c3fb3d8 [IPHLPAPI_APITEST] Don't compare arrays against NULL.
Fixes GCC 13 warning:

C:/ReactOS/reactos/modules/rostests/apitests/iphlpapi/GetNetworkParams.c: In function 'test_GetNetworkParams':
C:/ReactOS/reactos/modules/rostests/apitests/iphlpapi/GetNetworkParams.c:171:28: error: the comparison will always evaluate as 'true' for the address of 'HostName' will never be NULL [-Werror=address]
  171 |     ok(FixedInfo->HostName != NULL, "FixedInfo->HostName is NULL\n");
      |                            ^~
2026-03-18 17:29:12 +02:00
Hermès Bélusca-Maïto 509d8afdf5 [NTDLL_APITEST] Add some tests for NtQueryInformationThread(ThreadHideFromDebugger) (#8486) 2026-03-08 18:51:41 +01:00
Hermès Bélusca-Maïto f4d0d53445 [NTDLL_APITEST] Adjust ThreadHideFromDebugger support for NtQueryInformationThread() probing tests (#8486) 2026-03-08 18:51:40 +01:00
Katayama Hirofumi MZ 06ae7ec211 [FREETYPE][NTGDI][GDI32][GDI32_APITEST] Rewrite GetCharWidth etc. (#8690)
Refactoring and improve readability.
JIRA issue: CORE-20505
- Add GreGetCharWidthW helper
  function.
- Rewrite NtGdiGetCharWidthW
  using GreGetCharWidthW.
- Refactor NtGdiGetGlyphIndicesW.
- Improve sanity check of
  GetCharWidthA/W/I,
  GetCharWidth32A/W, and
  GetCharWidthFloatA/W.
- Add GetCharWidth testcase to
  gdi32_apitest.
2026-03-01 20:12:45 +09:00
Timo Kreuzer 40297415a5 [STATIC_CRT_APITEST] Remove static_crt_apitest from build for now
The test used the obsolete CRT. The test doesn't provide much value anyway, because we test all the used code already through msvcrt_apitest, ntdll_apitest, etc. The only real benefit was testing and working outside of reactos.
I kept the build file around, which could be revived with msvcrt_static or libcntpr, but that needs some work.
2026-02-17 17:52:19 +02:00