Hua Meng : msvcp120/tests: Add test for Concurrent_vector_swap.
Alexandre Julliard
julliard at winehq.org
Tue Jun 19 14:52:01 CDT 2018
Module: wine
Branch: master
Commit: 364496714ddb7022121f6ce838a5b8c2a32cd173
URL: https://source.winehq.org/git/wine.git/?a=commit;h=364496714ddb7022121f6ce838a5b8c2a32cd173
Author: Hua Meng <161220092 at smail.nju.edu.cn>
Date: Sun Jun 17 11:50:43 2018 +0800
msvcp120/tests: Add test for Concurrent_vector_swap.
Signed-off-by: Hua Meng <161220092 at smail.nju.edu.cn>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msvcp120/tests/msvcp120.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/dlls/msvcp120/tests/msvcp120.c b/dlls/msvcp120/tests/msvcp120.c
index 895ab36..aec66fb 100644
--- a/dlls/msvcp120/tests/msvcp120.c
+++ b/dlls/msvcp120/tests/msvcp120.c
@@ -402,6 +402,8 @@ static void (__thiscall *p_vector_base_v4__Internal_copy)(
static void (__thiscall *p_vector_base_v4__Internal_assign)(
vector_base_v4*, vector_base_v4*, size_t, void (__cdecl*)(void*, size_t),
void (__cdecl*)(void*, const void*, size_t), void (__cdecl*)(void*, const void*, size_t));
+static void (__thiscall *p_vector_base_v4__Internal_swap)(
+ vector_base_v4*, const vector_base_v4*);
static HMODULE msvcp;
#define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y)
@@ -548,6 +550,8 @@ static BOOL init(void)
"?_Internal_copy at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEBV123 at _KP6AXPEAXPEBX1@Z at Z");
SET(p_vector_base_v4__Internal_assign,
"?_Internal_assign at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEBV123 at _KP6AXPEAX1@ZP6AX2PEBX1 at Z5@Z");
+ SET(p_vector_base_v4__Internal_swap,
+ "?_Internal_swap at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEAV123@@Z");
} else {
SET(p_tr2_sys__File_size,
"?_File_size at sys@tr2 at std@@YA_KPBD at Z");
@@ -663,6 +667,8 @@ static BOOL init(void)
"?_Internal_copy at _Concurrent_vector_base_v4@details at Concurrency@@IAEXABV123 at IP6AXPAXPBXI@Z at Z");
SET(p_vector_base_v4__Internal_assign,
"?_Internal_assign at _Concurrent_vector_base_v4@details at Concurrency@@IAEXABV123 at IP6AXPAXI@ZP6AX1PBXI at Z4@Z");
+ SET(p_vector_base_v4__Internal_swap,
+ "?_Internal_swap at _Concurrent_vector_base_v4@details at Concurrency@@IAEXAAV123@@Z");
#else
SET(p__Thrd_current,
"_Thrd_current");
@@ -706,6 +712,8 @@ static BOOL init(void)
"?_Internal_copy at _Concurrent_vector_base_v4@details at Concurrency@@IAAXABV123 at IP6AXPAXPBXI@Z at Z");
SET(p_vector_base_v4__Internal_assign,
"?_Internal_assign at _Concurrent_vector_base_v4@details at Concurrency@@IAAXABV123 at IP6AXPAXI@ZP6AX1PBXI at Z4@Z");
+ SET(p_vector_base_v4__Internal_swap,
+ "?_Internal_swap at _Concurrent_vector_base_v4@details at Concurrency@@IAAXAAV123@@Z");
#endif
}
SET(p__Thrd_equal,
@@ -2851,6 +2859,39 @@ static void test_vector_base_v4(void)
CHECK_CALLED(concurrent_vector_int_destroy);
concurrent_vector_int_dtor(&v2);
+ concurrent_vector_int_ctor(&v2);
+ SET_EXPECT(concurrent_vector_int_alloc);
+ data = call_func3(p_vector_base_v4__Internal_push_back, &v2, sizeof(int), &idx);
+ ok(data != NULL, "_Internal_push_back returned NULL\n");
+ data = call_func3(p_vector_base_v4__Internal_push_back, &v2, sizeof(int), &idx);
+ ok(data != NULL, "_Internal_push_back returned NULL\n");
+ CHECK_CALLED(concurrent_vector_int_alloc);
+ SET_EXPECT(concurrent_vector_int_alloc);
+ data = call_func3(p_vector_base_v4__Internal_push_back, &v2, sizeof(int), &idx);
+ ok(data != NULL, "_Internal_push_back returned NULL\n");
+ CHECK_CALLED(concurrent_vector_int_alloc);
+ vector_elem_count += 3;
+ ok(idx == 2, "idx got %ld expected 2\n", (long)idx);
+ call_func2(p_vector_base_v4__Internal_swap,
+ &v2, &vector);
+ ok(v2.first_block == 1, "v2.first_block got %ld expected 1\n",
+ (long)v2.first_block);
+ ok(v2.early_size == 5, "v2.early_size got %ld expected 5\n",
+ (long)v2.early_size);
+ ok(vector.early_size == 3, "vector.early_size got %ld expected 3\n",
+ (long)vector.early_size);
+ call_func2(p_vector_base_v4__Internal_swap,
+ &v2, &vector);
+ ok(v2.early_size == 3, "v2.early_size got %ld expected 3\n",
+ (long)v2.early_size);
+ ok(vector.early_size == 5, "vector.early_size got %ld expected 5\n",
+ (long)vector.early_size);
+ SET_EXPECT(concurrent_vector_int_destroy);
+ size = (size_t)call_func2(p_vector_base_v4__Internal_clear,
+ &v2, concurrent_vector_int_destroy);
+ CHECK_CALLED(concurrent_vector_int_destroy);
+ concurrent_vector_int_dtor(&v2);
+
SET_EXPECT(concurrent_vector_int_destroy);
size = (size_t)call_func2(p_vector_base_v4__Internal_clear,
&vector, concurrent_vector_int_destroy);
More information about the wine-cvs
mailing list