For me this looks like a hack. It might "do what Windows does", but the
result is more based on luck / random compiler behaviour rather than
deterministic behavior. We should think about returning a full ULONG in
all functions that rely on this (like Wow64EnableWow64FsRedirection),
containing the correct value, rather than relying on random stuff.
Am 20.02.2015 um 08:03 schrieb tfaber(a)svn.reactos.org:
> Author: tfaber
> Date: Fri Feb 20 07:03:00 2015
> New Revision: 66365
>
> URL: http://svn.reactos.org/svn/reactos?rev=66365&view=rev
> Log:
> [KERNEL32]
> - Make BaseSetLastNTError return the converted Win32 error code. This will determine the upper 24 bits of EAX in functions that return BOOLEAN FALSE right after calling BaseSetLastNTError, e.g. Wow64EnableWow64FsRedirection. Fixes installers using WiX Toolset (e.g. VS2012 redist) on MSVC builds.
> See http://wixtoolset.org/issues/4681/ for the WiX bug that causes this.
> CORE-8010
>
> Modified:
> trunk/reactos/dll/win32/kernel32/client/except.c
> trunk/reactos/dll/win32/kernel32/include/kernel32.h
>
> Modified: trunk/reactos/dll/win32/kernel32/client/except.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
> ==============================================================================
> --- trunk/reactos/dll/win32/kernel32/client/except.c [iso-8859-1] (original)
> +++ trunk/reactos/dll/win32/kernel32/client/except.c [iso-8859-1] Fri Feb 20 07:03:00 2015
> @@ -682,12 +682,16 @@
> /*
> * @implemented
> */
> -VOID
> +DWORD
> WINAPI
> BaseSetLastNTError(IN NTSTATUS Status)
> {
> + DWORD dwErrCode;
> +
> /* Convert from NT to Win32, then set */
> - SetLastError(RtlNtStatusToDosError(Status));
> + dwErrCode = RtlNtStatusToDosError(Status);
> + SetLastError(dwErrCode);
> + return dwErrCode;
> }
>
> /*
>
> Modified: trunk/reactos/dll/win32/kernel32/include/kernel32.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/include…
> ==============================================================================
> --- trunk/reactos/dll/win32/kernel32/include/kernel32.h [iso-8859-1] (original)
> +++ trunk/reactos/dll/win32/kernel32/include/kernel32.h [iso-8859-1] Fri Feb 20 07:03:00 2015
> @@ -353,7 +353,7 @@
> WINAPI
> InitCommandLines(VOID);
>
> -VOID
> +DWORD
> WINAPI
> BaseSetLastNTError(IN NTSTATUS Status);
>
>
>
>
In such situations, please update all the langages files and not only
English. This makes work easier for translators to track changes.
On 21/02/2015 13:52, gadamopoulos(a)svn.reactos.org wrote:
> Author: gadamopoulos
> Date: Sat Feb 21 12:52:58 2015
> New Revision: 66383
>
> URL: http://svn.reactos.org/svn/reactos?rev=66383&view=rev
> Log:
> [SHELL32]
> - Implement progress dialogs for SHFileOperation
> - Patch by Hwu Davies
> CORE-4476
>
> Modified:
> trunk/reactos/dll/win32/shell32/lang/en-US.rc
>
> Modified: trunk/reactos/dll/win32/shell32/lang/en-US.rc
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-…
> ==============================================================================
> --- trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] (original)
> +++ trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] Sat Feb 21 12:52:58 2015
> @@ -693,6 +693,13 @@
> IDS_OVERWRITEFILE_CAPTION "Confirm file overwrite"
> IDS_OVERWRITEFOLDER_TEXT "This folder already contains a folder named '%1'.\n\nIf the files in the destination folder have the same names as files in the\nselected folder they will be replaced. Do you still want to move or copy\nthe folder?"
>
> + IDS_FILEOOP_COPYING "Copying"
> + IDS_FILEOOP_MOVING "Moving"
> + IDS_FILEOOP_DELETING "Deleting"
> + IDS_FILEOOP_FROM_TO "From %1 to %2"
> + IDS_FILEOOP_FROM "From %1"
> + IDS_FILEOOP_PREFLIGHT "Preflight"
> +
> /* message box strings */
> IDS_RESTART_TITLE "Restart"
> IDS_RESTART_PROMPT "Do you want to restart the system?"
>
--
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.
On 2015-02-16 10:27, zefklop (JIRA) wrote:
> zefklop commented on ROSTESTS-153:
> ----------------------------------
>
> This and the advapi32:service disabled test call for (optional) per-test timeout parameter in rostests or testman.We can't afford skipping tests, that's an open door to all kind of regressions.
I agree that skipping tests is a really bad idea. It should be used as
a last resort only. And we need a proper process for it** -- I've been
spending way too much time hunting down skipped tests recently, and way
too many of them had their underlying bugs (and sometimes even Jira
issue) fixed without re-enabling the test.
However I don't see a practical way to implement your solution. For one,
the timeout seems like it would have to cause a machine reboot, which
significantly increases test time. I guess rosautotest could keep track
of the time and kill the child process, but I don't know how reliable
that would be.
Secondly and more importantly, killing the test on timeout seems worse
than skipping the offending part, because then any tests running
_after_ the code causing the timeout would never be executed. That means
instead of skipping a test that's known to be problematic, we skip
completely unrelated and innocent tests.
I'm not sure if there's a way to win this. Let me know if you have any
ideas. As it stands I think skipping the offenders is an okay solution
-- we just need to stay very aware of them and make sure to re-test more
regularly than we do now.
Thanks!
-Thomas
** For the record, here's an example process that I try to keep to:
- Create a ROSTESTS bug to indicate that a test was skipped
- Link the ROSTESTS bug to ROSTESTS-125, the Skipped Tests Epic
- Do not #if out the test, instead check for winetest_interactive, and
skip the test only if it's not set
- Make sure to call skip() with a message that references the ROSTESTS
bug
- Optionally create a CORE issue for the underlying problem if enough
information is available; make sure it blocks the ROSTESTS issue
- Do not under any circumstances close the ROSTESTS bug before the test
code is actually restored and no longer skips the test in question
This allows the issue to be actually found, by checking the Epic, or
grepping for "ROSTESTS-" or "winetest_interactive". Skipped tests
should be re-tested regularly, at the very least every time the test is
Wine-synced.
>> gdi32_winetest:bitmap test_mono_bitmap skipped because it takes too long and spams the debug log with too many failures
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> Key: ROSTESTS-153
>> URL: https://jira.reactos.org/browse/ROSTESTS-153
>> Project: ReactOS Test Suite
>> Issue Type: Bug
>> Components: Wine Tests
>> Reporter: Thomas Faber
>> Assignee: Bug Zilla
>> Labels: HACK
>>
>> If you close this task, that means the winetest_interactive check and skip() in test_mono_bitmap must be gone!
Hi James!
It would be nice if you could also do some cleanup in that caret code,
because it seems (starting r66244):
- there is somewhat duplicated caret painting in win32k and in user32,
- the caret is sometimes drawn one or two pixels too high.
And of course, everything should be done windows-compatible (not
wine-compatible)!!
Cheers,
Hermès.
------------------------------------------
Author: jimtabor
Date: Fri Feb 13 13:39:57 2015
New Revision: 66244
URL: http://svn.reactos.org/svn/reactos?rev=66244&view=rev
Log:
[NtUser]
- Use a real timer for caret. This should cleanup message testing from those
random system timer messages. See CORE-7447.
Modified:
trunk/reactos/win32ss/user/ntuser/caret.c
Modified: trunk/reactos/win32ss/user/ntuser/caret.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/caret.c
?rev=66244&r1=66243&r2=66244&view=diff
============================================================================
==
--- trunk/reactos/win32ss/user/ntuser/caret.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/caret.c [iso-8859-1] Fri Feb 13
13:39:57 2015
@@ -16,6 +16,111 @@
/* FUNCTIONS
*****************************************************************/
+VOID FASTCALL
+co_IntDrawCaret(PWND pWnd, PTHRDCARETINFO CaretInfo)
+{
Hey Timo,
nice stuff, but I think you committed a bit too fast ;-)
See inline:
Le 13/02/2015 21:19, tkreuzer(a)svn.reactos.org a écrit :
> Author: tkreuzer
> Date: Fri Feb 13 20:19:51 2015
> New Revision: 66250
>
> URL: http://svn.reactos.org/svn/reactos?rev=66250&view=rev
> Log:
> [CMAKE]
> Add support for "module groups". These are meta targets that automatically include all targets using set_module_type() that are included between start_module_group(name) and end_module_group().
>
> Modified:
> trunk/reactos/cmake/CMakeMacros.cmake
>
> Modified: trunk/reactos/cmake/CMakeMacros.cmake
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/CMakeMacros.cmake?re…
> ==============================================================================
> --- trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] (original)
> +++ trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] Fri Feb 13 20:19:51 2015
> @@ -550,9 +550,14 @@
> message(STATUS "set_module_type : unparsed arguments ${__module_UNPARSED_ARGUMENTS}, module : ${MODULE}")
> endif()
>
> + # Add the module to the module group list, if it is defined
> + if(DEFINED CURRENT_MODULE_GROUP)
> + set_property(GLOBAL APPEND PROPERTY ${CURRENT_MODULE_GROUP}_MODULE_LIST "${MODULE}")
> + endif()
> +
> # Set subsystem. Also take this as an occasion
> # to error out if someone gave a non existing type
> - if((${TYPE} STREQUAL nativecui) OR (${TYPE} STREQUAL nativedll)
> + if((${TYPE} STREQUAL nativecui) OR (${TYPE} STREQUAL nativedll)
> OR (${TYPE} STREQUAL kernelmodedriver) OR (${TYPE} STREQUAL wdmdriver) OR (${TYPE} STREQUAL kerneldll))
> set(__subsystem native)
> elseif(${TYPE} STREQUAL win32cui)
> @@ -662,6 +667,21 @@
>
> # do compiler specific stuff
> set_module_type_toolchain(${MODULE} ${TYPE})
> +endfunction()
> +
> +function(start_module_group __name)
> + if(DEFINED CURRENT_MODULE_GROUP)
> + message(FATAL_ERROR "CURRENT_MODULE_GROUP is already set ('${CURRENT_MODULE_GROUP}')")
> + endif()
> + set(CURRENT_MODULE_GROUP rostests PARENT_SCOPE)
> +endfunction()
> +
should be
set(CURRENT_MODULE_GROUP ${__name} PARENT_SCOPE)
> +function(end_module_group)
> + get_property(__modulelist GLOBAL PROPERTY ${CURRENT_MODULE_GROUP}_MODULE_LIST)
> + add_custom_target(${CURRENT_MODULE_GROUP})
> + foreach(__module ${__modulelist})
> + add_dependencies(${CURRENT_MODULE_GROUP} ${__module})
> + endforeach()
> endfunction()
You should unset CURRENT_MODULE_GROUP somewhere aroud here.
>
> function(preprocess_file __in __out)
>
>