mshtml: Removed no longer used attr_name from event_info_t.
[wine.git] / dlls / msvcp140 / tests / msvcp140.c
blob82e2b345493f95a34defb331a47093240c606938
1 /*
2 * Copyright 2016 Daniel Lehman
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include <stdio.h>
21 #include "wine/test.h"
22 #include "winbase.h"
24 static unsigned int (__cdecl *p__Thrd_id)(void);
26 static HMODULE msvcp;
27 #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y)
28 #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0)
29 static BOOL init(void)
31 msvcp = LoadLibraryA("msvcp140.dll");
32 if(!msvcp)
34 win_skip("msvcp140.dll not installed\n");
35 return FALSE;
38 SET(p__Thrd_id, "_Thrd_id");
40 return TRUE;
43 static void test_thrd(void)
45 ok(p__Thrd_id() == GetCurrentThreadId(),
46 "expected same id, got _Thrd_id %u GetCurrentThreadId %u\n",
47 p__Thrd_id(), GetCurrentThreadId());
50 static struct {
51 int value[2];
52 const char* export_name;
53 } vbtable_size_exports_list[] = {
54 {{0x20, 0x20}, "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@"},
55 {{0x10, 0x10}, "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@"},
56 {{0x20, 0x20}, "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@"},
57 {{0x10, 0x10}, "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@"},
58 {{0x20, 0x20}, "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@"},
59 {{0x10, 0x10}, "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@"},
60 {{0x18, 0x18}, "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@"},
61 {{0x18, 0x18}, "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@"},
62 {{0x18, 0x18}, "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@"},
63 {{ 0x8, 0x10}, "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@"},
64 {{ 0x8, 0x10}, "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@"},
65 {{ 0x8, 0x10}, "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@"},
66 {{ 0x0, 0x0}, 0}
69 static void test_vbtable_size_exports(void)
71 int i;
72 const int *p_vbtable;
73 int arch_idx = (sizeof(void*) == 8);
75 for (i = 0; vbtable_size_exports_list[i].export_name; i++)
77 SET(p_vbtable, vbtable_size_exports_list[i].export_name);
79 ok(p_vbtable[0] == 0, "vbtable[0] wrong, got 0x%x\n", p_vbtable[0]);
80 ok(p_vbtable[1] == vbtable_size_exports_list[i].value[arch_idx],
81 "%d: %s[1] wrong, got 0x%x\n", i, vbtable_size_exports_list[i].export_name, p_vbtable[1]);
85 START_TEST(msvcp140)
87 if(!init()) return;
88 test_thrd();
89 test_vbtable_size_exports();
90 FreeLibrary(msvcp);