kernel32/tests: Add a test for loading manifest from resources.

To confirm that 2d764e90dd does the right thing.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Dmitry Timoshkov 2021-11-12 16:49:47 +03:00 committed by Alexandre Julliard
parent 90ebe524da
commit 6e754202bf
3 changed files with 36 additions and 2 deletions

View File

@ -694,7 +694,7 @@ static void test_detailed_info(HANDLE handle, const detailed_info_t *exinfo, int
ok_(__FILE__, line)(detailed_info->lpRootManifestPath != NULL, "detailed_info->lpRootManifestPath == NULL\n"); ok_(__FILE__, line)(detailed_info->lpRootManifestPath != NULL, "detailed_info->lpRootManifestPath == NULL\n");
if(detailed_info->lpRootManifestPath) if(detailed_info->lpRootManifestPath)
ok_(__FILE__, line)(!lstrcmpiW(detailed_info->lpRootManifestPath, exinfo->root_manifest_path), ok_(__FILE__, line)(!lstrcmpiW(detailed_info->lpRootManifestPath, exinfo->root_manifest_path),
"unexpected detailed_info->lpRootManifestPath\n"); "unexpected detailed_info->lpRootManifestPath %s\n", wine_dbgstr_w(detailed_info->lpRootManifestPath));
}else { }else {
ok_(__FILE__, line)(detailed_info->lpRootManifestPath == NULL, "detailed_info->lpRootManifestPath != NULL\n"); ok_(__FILE__, line)(detailed_info->lpRootManifestPath == NULL, "detailed_info->lpRootManifestPath != NULL\n");
} }
@ -2683,7 +2683,8 @@ todo_wine
SetLastError(0xdeadbeef); SetLastError(0xdeadbeef);
handle = CreateActCtxA(&actctx); handle = CreateActCtxA(&actctx);
ok(handle == INVALID_HANDLE_VALUE, "got handle %p\n", handle); ok(handle == INVALID_HANDLE_VALUE, "got handle %p\n", handle);
ok(GetLastError() == ERROR_RESOURCE_TYPE_NOT_FOUND, "got error %d\n", GetLastError()); todo_wine
ok(GetLastError() == ERROR_RESOURCE_NAME_NOT_FOUND, "got error %d\n", GetLastError());
/* load manifest from lpAssemblyDirectory directory */ /* load manifest from lpAssemblyDirectory directory */
write_manifest("testdir.manifest", manifest1); write_manifest("testdir.manifest", manifest1);
@ -3548,6 +3549,32 @@ static void run_child_process_two_dll(int run)
CloseHandle(pi.hProcess); CloseHandle(pi.hProcess);
} }
static const detailed_info_t detailed_info3 =
{
1, 1, 1, ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE, exe_path,
ACTIVATION_CONTEXT_PATH_TYPE_NONE, ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE,
app_dir,
};
static void test_manifest_in_module(void)
{
ACTCTXW ctx;
HANDLE handle;
memset(&ctx, 0, sizeof(ctx));
ctx.cbSize = sizeof(ctx);
ctx.dwFlags = ACTCTX_FLAG_HMODULE_VALID | ACTCTX_FLAG_RESOURCE_NAME_VALID;
ctx.lpResourceName = (LPWSTR)124;
ctx.hModule = GetModuleHandleW(NULL);
handle = CreateActCtxW(&ctx);
ok(handle != 0, "CreateActCtx error %u\n", GetLastError());
test_basic_info(handle, __LINE__);
test_detailed_info(handle, &detailed_info3, __LINE__);
ReleaseActCtx(handle);
}
START_TEST(actctx) START_TEST(actctx)
{ {
int argc; int argc;
@ -3574,6 +3601,7 @@ START_TEST(actctx)
return; return;
} }
test_manifest_in_module();
test_actctx(); test_actctx();
test_create_fail(); test_create_fail();
test_CreateActCtx(); test_CreateActCtx();

View File

@ -24,3 +24,5 @@
{ {
MENUITEM "foo", 1 MENUITEM "foo", 1
} }
124 24 wine_test.manifest

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="Wine.Test"/>
</assembly>