Commit Graph

2386 Commits

Author SHA1 Message Date
Timo Kreuzer
f530cf99a0 [ROSTESTS] Get rid of some test lists 2026-05-15 16:50:48 +00:00
Timo Kreuzer
151c67ebfc [ROSTESTS] Implement automatic test discovery
This uses the START_TEST macro to create test entries in a ".test" section in the binary.
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 Motylkov
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 <bsalex2025@gmail.com>
2026-05-14 11:32:25 +03:00
Timo Kreuzer
4bf2a30395 [WIDL] Remove a hack that inserted WIN32_LEAN_AND_MEAN into headers
This was supposedly to improve compile times, but it breaks our headers.
2026-05-11 18:21:34 +00:00
Timo Kreuzer
301b783922 [ACTIVEDS_WINETEST] Import from wine-10.0 2026-05-11 18:21:34 +00:00
Serge Gautherie
aec671a530 [INTEROP_UNITTEST] Clarify output (#8306)
Somewhat help to read and interpret output, as the program is.

- Always output locale with 4 digits
- Always output PART items as s%02d:i%u
- Improve handling module/part errors
- Output string length too
  as a hint that ''s are not actually empty.

CORE-18893
2026-05-10 01:44:43 +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
Timo Kreuzer
414d57b58b [GDI32_WINETEST] Update to wine-10.0 2026-05-08 19:30:33 +00:00
Timo Kreuzer
d8a1ba1fea [MLANG_WINETEST] Sync to Wine-10.0 2026-05-08 07:30:20 +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
d2dc9355ab [CMAKE] Remove obsolete remove_definitions(-D_CRT_NON_CONFORMING_SWPRINTFS) 2026-05-07 06:27:58 +00:00
Timo Kreuzer
3b7960e2f8 [FRAG] Fix usage of non-conforming swprintf 2026-05-07 06:27:58 +00:00
Timo Kreuzer
1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Serge Gautherie
32c4faf433 [INTEROP_UNITTEST] Remove EOLD_PROGRAMS remnants (#8937)
Addendum to 0.4.16-dev-2564-g a409e5d.
2026-05-05 19:26:08 +03:00
Timo Kreuzer
5be29348db [NTDLL_WINETEST] Fix failing tests on Windows Vista 2026-05-05 07:44:54 +00:00
Timo Kreuzer
fc78efb162 [NTDLL_WINETEST] Fix failing tests on Windows 2003 2026-05-05 07:44:54 +00:00
Timo Kreuzer
78be5473ac [NTDLL_WINETEST] Fix test_NtDeleteKey test on older Windows versions 2026-05-05 07:44:54 +00:00
Timo Kreuzer
d465daeb83 [NTDLL_WINETEST] Add workarounds to prevent crashes/hangs on ReactOS / Windows 2003 2026-05-05 07:44:54 +00:00
Timo Kreuzer
ab7d770045 [NTDLL_WINETEST] Skip NtRegLoadKeyEx tests on pre-NT6
NtRegLoadKeyEx has a different prototype on Windows 2003 vs Vista+.
2026-05-05 07:44:54 +00:00
Timo Kreuzer
0e2195fe31 [NTDLL_WINETEST] Skip tests that hang on Win 10 WOW64 2026-05-05 07:44:54 +00:00
Timo Kreuzer
291af6e986 [NTDLL_WINETEST] Remove useless check 2026-05-05 07:44:54 +00:00
Timo Kreuzer
4fa627e70a [NTDLL_WINETEST] Fix a problem with broken calling convention 2026-05-05 07:44:54 +00:00
Timo Kreuzer
09393565da [NTDLL_WINETEST] Skip RtlUniform tests on Windows 2003
RtlUniform is broken on Windows 2003
2026-05-05 07:44:54 +00:00
Timo Kreuzer
c65eb17a53 [NTDLL_WINETEST] Add checks for missing exports on Windows 2003 2026-05-05 07:44:54 +00:00
Timo Kreuzer
35bd6f97b5 [NTDLL_WINETEST] Sync to wine-10.0
Co-authored-by: Carl J. Bialorucki <carl.bialorucki@reactos.org>
2026-05-05 07:44:54 +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
Hermès Bélusca-Maïto
b2e33f26eb [REACTOS] Merge our bootcd and livecd into an all-in-one ReactOS BootCD (#7313)
CORE-9069, CORE-13525, RELEASE-11

This new BootCD contains the functionality of both the original bootcd
(text-mode 1st-stage installer) and the livecd (that will include the
1st-stage GUI installer later).
Our separate livecd ISOs become obsolete, and this completely removes
the need for the so-called "hybridcd" ISO.

Some details:

- The "hybridcd" build target is completely removed, since now the new
  BootCD *is* basically what we used to call "hybridcd".

- The "livecd" build target is kept so far (to minimize the code changes),
  but internally I start to refer to it as "LiveImage", and is reduced
  to a minimum.

  A minimal non-bootable "liveimg.iso" is built (but currently not
  included within the BootCD). Its purpose will be to implement the
  "ReactOS Live" functionality as a RAMDISK.
  (We currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK).

  The "ReactOS Live" (non-RAMDISK) is implemented by adding to the
  BootCD file tree the files from the LiveImage.
  These files add two root directories, "Profiles" and "reactos"
  (which is the SystemRoot for the non-ramdisk LiveImage).

- The minimal text-mode ReactOS installation used for the 1st-stage
  installer, including USETUP itself, and the executable for the
  1st-stage GUI installer and the reactos.cab (installation source),
  are moved to the root directory called "i386" (ideally, one directory
  per architecture).

- The "bootcdregtest" target, i.e. the ISOs we feed our testbots with,
  are left untouched, i.e. they are only constituted of the 1st-stage
  text-mode installation only, but placed in a per-architecture root
  directory ("i386", etc. as for the bootcd).

- Remove the ACPI APIC/SMP entries from bootcd.ini. They will be made
  available via the Advanced Boot Options F8 menu in Debug builds, for
  testing purposes only, in a subsequent commit.

This commit is based upon an older SVN one:
svn path=/branches/setup_improvements/; revision=75273
2026-04-28 23:11:10 +02:00
Timo Kreuzer
7ab226a130 [ROSAUTOTEST] Fix ReactOS detection
bootcdregtest installs ReactOS into "c:\Windows", therefore the old detection method of checking the "Windows" directory no longer works.

A previous change tried to fix this by adding "|| IsReactOS()", but that resolves to CConfiguration::IsReactOS(), which simply returns m_IsReactOS.

Use ::IsReactOS() instead to get our versionhelper function.
2026-04-26 11:22:14 +00:00
Timo Kreuzer
e5bf20d865 [USER32_APITEST] Fix stack corruption
Found by /RTC1
2026-04-24 14:17:58 +00:00
Timo Kreuzer
02c744d542 [USER32_WINETEST] Skip a test that breaks ReactOS
Desktops cannot be deleted once they got switched to, so they cause leakage of kernel address space and later failures.
See CORE-20552
2026-04-22 13:11:19 +00:00
Timo Kreuzer
c950e66c31 [USER32_WINETEST] Fix usage of non-conforming swprintf
The code is using the conforming version, but _CRT_NON_CONFORMING_SWPRINTFS was defined, which caused it to crash. After removing the definition, MSVC throws a warning about an invalid argument for the format string, so fix that as well.
2026-04-22 13:11:19 +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
Mark Jansen
a409e5dcd8 [EXPLORER-OLD] Retire explorer-old 2026-04-05 21:31:08 +02: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 Fournier
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 <justin.miller@reactos.org>
2026-03-31 11:21:57 +00:00
Hermès Bélusca-Maïto
7331a0186d [SYSTEMINFO] Improve imports, includes, LP* -> P*, etc.
`LoadStringW(NULL, ...)` == `LoadStringW(GetModuleHandle(NULL), ...)`
for all purposes.
2026-03-30 16:02:59 +02: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
Justin Miller
ddef59e124 [ROSTESTS] Resolve some WHS issues after the last few PRs (#8809)
* [WINETESTS:UIAUTOMATIONCORE] Add wineheaders to dependencies
* [ROSTESTS] Don't use kernel32_vista - Just gate UIAutomationCore tests
2026-03-30 07:14:05 +00: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