mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[RTL] Add code to SxS manifest parser to parse XML namespaces (#2512)
* [XDK] Typo fix * [XDK] Add missing ACTIVATION_CONTEXT_SECTION values * [RTL] Merge changes from Wine * [ROSTESTS] Fix typo * [NTDLL] Typo fix * Add test for new functionality * [ROSTESTS] Fix path * [ROSTESTS] Add test to testlist.c
This commit is contained in:
parent
b62948ef77
commit
427ea67b9c
8 changed files with 806 additions and 799 deletions
|
@ -1646,7 +1646,7 @@ LdrpInitializeProcessCompat(PVOID pProcessActctx, PVOID* pOldShimData)
|
|||
{
|
||||
for (n = 0; n < ContextCompatInfo->ElementCount; ++n)
|
||||
{
|
||||
if (ContextCompatInfo->Elements[n].Type == ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS &&
|
||||
if (ContextCompatInfo->Elements[n].Type == ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS &&
|
||||
RtlCompareMemory(&ContextCompatInfo->Elements[n].Id, KnownCompatGuids[cur].Guid, sizeof(GUID)) == sizeof(GUID))
|
||||
{
|
||||
if (LdrpDisableProcessCompatGuidDetection())
|
||||
|
|
|
@ -58,7 +58,8 @@ list(APPEND MANIFEST_FILES
|
|||
classtest2.manifest
|
||||
comctl32dep.manifest
|
||||
dep1.manifest
|
||||
deptest.manifest)
|
||||
deptest.manifest
|
||||
xmlns.manifest)
|
||||
|
||||
foreach(item ${MANIFEST_FILES})
|
||||
add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}")
|
||||
|
|
|
@ -131,3 +131,11 @@ START_TEST(DefaultActCtx)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
HANDLE _CreateActCtxFromFile(LPCWSTR FileName, int line);
|
||||
|
||||
START_TEST(ActCtxWithXmlNamespaces)
|
||||
{
|
||||
// _CreateActCtxFromFile() contains all the assertions we need.
|
||||
(void)_CreateActCtxFromFile(L"xmlns.manifest", __LINE__);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#define STANDALONE
|
||||
#include <apitest.h>
|
||||
|
||||
extern void func_ActCtxWithXmlNamespaces(void);
|
||||
extern void func_ConsoleCP(void);
|
||||
extern void func_CreateProcess(void);
|
||||
extern void func_DefaultActCtx(void);
|
||||
|
@ -70,5 +71,6 @@ const struct test winetest_testlist[] =
|
|||
{ "TerminateProcess", func_TerminateProcess },
|
||||
{ "TunnelCache", func_TunnelCache },
|
||||
{ "WideCharToMultiByte", func_WideCharToMultiByte },
|
||||
{ "ActCtxWithXmlNamespaces", func_ActCtxWithXmlNamespaces },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
|
24
modules/rostests/apitests/kernel32/xmlns.manifest
Normal file
24
modules/rostests/apitests/kernel32/xmlns.manifest
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<ms_compatibility:application>
|
||||
<!-- A list of the Windows versions that this application has been tested on and is
|
||||
is designed to work with. Uncomment the appropriate elements and Windows will
|
||||
automatically selected the most compatible environment. -->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<ms_compatibility:supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<ms_compatibility:supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<ms_compatibility:supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||
</ms_compatibility:application>
|
||||
</ms_compatibility:compatibility>
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
</assembly>
|
|
@ -2792,7 +2792,7 @@ static void test_with_compat(HANDLE handle, DWORD num_compat, const GUID* expect
|
|||
wine_dbgstr_guid(&compat_info.Elements[n].Id),
|
||||
wine_dbgstr_guid(expected_compat[n]),
|
||||
n);
|
||||
ok_(__FILE__, line)(compat_info.Elements[n].Type == ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS,
|
||||
ok_(__FILE__, line)(compat_info.Elements[n].Type == ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS,
|
||||
"Wrong type, got %u for %u\n", (DWORD)compat_info.Elements[n].Type, n);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1089,6 +1089,8 @@ typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID);
|
|||
#define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6
|
||||
#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7
|
||||
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
|
||||
#define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10
|
||||
#define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11
|
||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||
#define BTYPE(x) ((x)&N_BTMASK)
|
||||
#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
|
||||
|
@ -4036,8 +4038,8 @@ typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
|
|||
} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, *PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
|
||||
|
||||
typedef enum {
|
||||
ACTCX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
||||
ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS
|
||||
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
||||
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS
|
||||
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
|
||||
|
||||
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
|
||||
|
|
1558
sdk/lib/rtl/actctx.c
1558
sdk/lib/rtl/actctx.c
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue