|
ReactOS 0.4.16-dev-2357-g35d0dfe
|
#include <stdarg.h>#include <stdio.h>#include "windef.h"#include "winbase.h"#include "objbase.h"#include "olectl.h"#include "shlguid.h"#include "shobjidl.h"#include "wine/test.h"
Go to the source code of this file.
Classes | |
| struct | tagDUALSTRINGARRAY |
| struct | tagSTDOBJREF |
| struct | tagOBJREF |
| struct | StubBufferWrapper |
| struct | ProxyBufferWrapper |
| struct | host_object_data |
| struct | ncu_params |
| struct | duo_marshal_data |
| struct | HeapUnknown |
| struct | local_server |
| struct | git_params |
| struct | implicit_mta_marshal_data |
Typedefs | |
| typedef struct tagDUALSTRINGARRAY | DUALSTRINGARRAY |
| typedef UINT64 | OXID |
| typedef UINT64 | OID |
| typedef GUID | IPID |
| typedef struct tagSTDOBJREF | STDOBJREF |
| typedef struct tagOBJREF | OBJREF |
| #define CLSID_WineTest IID_IWineTest |
| #define EXTENTID_WineTest IID_IWineTest |
| #define ok_last_release_closes | ( | b | ) | do {if (with_external_conn) ok(last_release_closes == b, "got %d expected %d\n", last_release_closes, b);} while(0); |
| #define ok_non_zero_external_conn | ( | ) | do {if (with_external_conn) ok(external_connections, "got no external connections\n");} while(0); |
| #define ok_zero_external_conn | ( | ) | do {if (with_external_conn) ok(!external_connections, "got %ld external connections\n", external_connections);} while(0); |
| typedef struct tagDUALSTRINGARRAY DUALSTRINGARRAY |
| typedef struct tagSTDOBJREF STDOBJREF |
Definition at line 2559 of file marshal.c.
Referenced by test_proxy_used_in_wrong_thread().
Definition at line 1874 of file marshal.c.
Referenced by test_crash_couninitialize().
Definition at line 3878 of file marshal.c.
Referenced by test_local_server().
|
static |
Definition at line 1484 of file marshal.c.
Referenced by CustomMarshal_GetMarshalSizeMax(), test_DfMarshal_custom_marshaling(), and test_StdMarshal_custom_marshaling().
|
static |
Definition at line 1476 of file marshal.c.
Referenced by CustomMarshal_GetUnmarshalClass(), test_DfMarshal_custom_marshaling(), and test_StdMarshal_custom_marshaling().
|
static |
Definition at line 1494 of file marshal.c.
Referenced by CustomMarshal_MarshalInterface(), test_DfMarshal_custom_marshaling(), and test_StdMarshal_custom_marshaling().
|
static |
| DEFINE_EXPECT | ( | Connect | ) |
| DEFINE_EXPECT | ( | CreateProxy | ) |
| DEFINE_EXPECT | ( | CreateStub | ) |
| DEFINE_EXPECT | ( | CustomMarshal_GetMarshalSizeMax | ) |
| DEFINE_EXPECT | ( | CustomMarshal_GetUnmarshalClass | ) |
| DEFINE_EXPECT | ( | CustomMarshal_MarshalInterface | ) |
| DEFINE_EXPECT | ( | GetWindow | ) |
| DEFINE_EXPECT | ( | Invoke | ) |
| DEFINE_EXPECT | ( | RpcProxyBuffer_Disconnect | ) |
| DEFINE_EXPECT | ( | RpcStubBuffer_Disconnect | ) |
Definition at line 2091 of file marshal.c.
Referenced by test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), and test_two_tableweak_marshal_and_releasedata().
Definition at line 784 of file marshal.c.
Referenced by test_call_from_message(), test_channel_hook(), test_client_security(), test_handler_marshaling(), test_implicit_mta(), test_interthread_marshal_and_unmarshal(), test_marshal_and_unmarshal_invalid(), test_marshal_channel_buffer(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_stub_apartment_shutdown(), test_message_filter(), test_no_couninitialize_client(), test_proxy_interfaces(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_proxy_used_in_wrong_thread(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), and window_proc().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 4009 of file marshal.c.
Referenced by test_globalinterfacetable().
Definition at line 2868 of file marshal.c.
|
static |
Definition at line 702 of file marshal.c.
Referenced by start_host_object2().
|
static |
Definition at line 543 of file marshal.c.
Referenced by RpcProxyBuffer_AddRef(), RpcProxyBuffer_Connect(), RpcProxyBuffer_QueryInterface(), and RpcProxyBuffer_Release().
|
static |
Definition at line 435 of file marshal.c.
Referenced by RpcStubBuffer_AddRef(), RpcStubBuffer_Invoke(), RpcStubBuffer_QueryInterface(), and RpcStubBuffer_Release().
|
inlinestatic |
Definition at line 2851 of file marshal.c.
Referenced by HeapUnknown_AddRef(), and HeapUnknown_Release().
Definition at line 4257 of file marshal.c.
Referenced by test_implicit_mta().
Definition at line 4194 of file marshal.c.
Referenced by test_implicit_mta().
Definition at line 4229 of file marshal.c.
Referenced by test_implicit_mta().
Definition at line 3733 of file marshal.c.
|
static |
Definition at line 3707 of file marshal.c.
Definition at line 170 of file marshal.c.
Referenced by Test_IClassFactory_AddRef(), Test_IUnknown_AddRef(), and Test_SMI_AddRef().
Definition at line 3687 of file marshal.c.
Referenced by TestOOP_IClassFactory_LockServer().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 1815 of file marshal.c.
Referenced by test_no_couninitialize_client().
Definition at line 1742 of file marshal.c.
Referenced by test_no_couninitialize_server().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 635 of file marshal.c.
|
static |
Definition at line 654 of file marshal.c.
|
static |
|
static |
Definition at line 3428 of file marshal.c.
Referenced by test_handler_marshaling(), and test_inproc_handler().
Definition at line 3106 of file marshal.c.
Referenced by START_TEST().
Definition at line 776 of file marshal.c.
Referenced by test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), and test_two_tableweak_marshal_and_releasedata().
Definition at line 3217 of file marshal.c.
Referenced by test_freethreadedmarshaldata().
|
static |
Definition at line 563 of file marshal.c.
|
static |
|
static |
Definition at line 597 of file marshal.c.
Referenced by RpcProxyBuffer_Disconnect(), and test_marshal_channel_buffer().
|
static |
|
static |
|
static |
Definition at line 455 of file marshal.c.
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 478 of file marshal.c.
Referenced by RpcStubBuffer_Disconnect(), and test_marshal_channel_buffer().
|
static |
Definition at line 483 of file marshal.c.
|
static |
|
static |
|
static |
Definition at line 4583 of file marshal.c.
Referenced by test_mta_creation_thread_change_apartment().
|
static |
Definition at line 768 of file marshal.c.
Referenced by test_call_from_message(), test_client_security(), test_handler_marshaling(), test_implicit_mta(), test_interthread_marshal_and_unmarshal(), test_marshal_and_unmarshal_invalid(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_stub_apartment_shutdown(), test_no_couninitialize_client(), test_proxy_interfaces(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_proxy_used_in_wrong_thread(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), and window_proc().
|
static |
Definition at line 751 of file marshal.c.
Referenced by start_host_object(), test_channel_hook(), test_marshal_channel_buffer(), and test_message_filter().
| START_TEST | ( | marshal | ) |
Definition at line 4640 of file marshal.c.
Definition at line 2770 of file marshal.c.
Referenced by START_TEST().
Definition at line 3156 of file marshal.c.
Referenced by START_TEST().
Definition at line 4534 of file marshal.c.
Referenced by START_TEST().
Definition at line 3595 of file marshal.c.
Referenced by START_TEST().
Definition at line 148 of file marshal.c.
Referenced by START_TEST().
Definition at line 1657 of file marshal.c.
Referenced by START_TEST().
Definition at line 1912 of file marshal.c.
Referenced by START_TEST().
Definition at line 1608 of file marshal.c.
Referenced by START_TEST().
Definition at line 2449 of file marshal.c.
Referenced by START_TEST().
|
static |
Definition at line 3230 of file marshal.c.
Referenced by test_freethreadedmarshaler().
Definition at line 3273 of file marshal.c.
Referenced by START_TEST().
Definition at line 4030 of file marshal.c.
Referenced by START_TEST().
Definition at line 3545 of file marshal.c.
Referenced by START_TEST().
Definition at line 2528 of file marshal.c.
Referenced by START_TEST().
|
static |
|
static |
Definition at line 285 of file marshal.c.
Definition at line 4272 of file marshal.c.
Referenced by START_TEST().
Definition at line 3467 of file marshal.c.
Referenced by START_TEST().
Definition at line 947 of file marshal.c.
Referenced by START_TEST().
|
static |
Definition at line 3898 of file marshal.c.
Referenced by START_TEST().
Definition at line 2351 of file marshal.c.
Referenced by START_TEST().
Definition at line 4110 of file marshal.c.
Referenced by START_TEST().
Definition at line 868 of file marshal.c.
Referenced by START_TEST().
Definition at line 1373 of file marshal.c.
Referenced by START_TEST().
Definition at line 1281 of file marshal.c.
Referenced by START_TEST().
Definition at line 1329 of file marshal.c.
Referenced by START_TEST().
Definition at line 1241 of file marshal.c.
Referenced by START_TEST().
Definition at line 2719 of file marshal.c.
Referenced by START_TEST().
Definition at line 3116 of file marshal.c.
Referenced by START_TEST().
Definition at line 4601 of file marshal.c.
Referenced by START_TEST().
Definition at line 1835 of file marshal.c.
Referenced by START_TEST().
Definition at line 1763 of file marshal.c.
Referenced by START_TEST().
Definition at line 795 of file marshal.c.
Referenced by START_TEST().
Definition at line 809 of file marshal.c.
Referenced by START_TEST().
Definition at line 836 of file marshal.c.
Referenced by START_TEST().
Definition at line 2487 of file marshal.c.
Referenced by START_TEST().
Definition at line 2795 of file marshal.c.
Referenced by START_TEST().
Definition at line 987 of file marshal.c.
Referenced by START_TEST().
Definition at line 1062 of file marshal.c.
Referenced by START_TEST().
Definition at line 1179 of file marshal.c.
Referenced by START_TEST().
Definition at line 1126 of file marshal.c.
Referenced by START_TEST().
Definition at line 2598 of file marshal.c.
Referenced by START_TEST().
Definition at line 2889 of file marshal.c.
Referenced by START_TEST().
Definition at line 914 of file marshal.c.
Referenced by START_TEST().
|
static |
|
static |
|
static |
|
static |
Definition at line 1556 of file marshal.c.
Referenced by START_TEST().
Definition at line 2927 of file marshal.c.
Referenced by START_TEST().
Definition at line 2298 of file marshal.c.
Referenced by START_TEST().
Definition at line 2202 of file marshal.c.
Referenced by START_TEST().
Definition at line 2132 of file marshal.c.
Referenced by START_TEST().
Definition at line 1925 of file marshal.c.
Referenced by START_TEST().
Definition at line 1981 of file marshal.c.
Referenced by START_TEST().
Definition at line 2042 of file marshal.c.
Referenced by START_TEST().
Definition at line 2252 of file marshal.c.
Referenced by START_TEST().
Definition at line 3200 of file marshal.c.
Referenced by START_TEST().
|
static |
|
static |
Definition at line 4409 of file marshal.c.
|
static |
Definition at line 4383 of file marshal.c.
|
static |
Definition at line 4434 of file marshal.c.
|
static |
|
static |
|
static |
Definition at line 4485 of file marshal.c.
|
static |
Definition at line 4460 of file marshal.c.
Definition at line 266 of file marshal.c.
|
static |
|
static |
|
static |
|
static |
Definition at line 175 of file marshal.c.
Referenced by Test_IClassFactory_Release(), Test_IUnknown_Release(), Test_SMI_Release(), and TestCrash_IUnknown_Release().
Definition at line 3693 of file marshal.c.
Referenced by TestOOP_IClassFactory_LockServer().
Definition at line 2988 of file marshal.c.
Referenced by register_test_window().
|
static |
Definition at line 4381 of file marshal.c.
Referenced by TestChannelHook_ClientFillBuffer(), TestChannelHook_ClientGetSize(), TestChannelHook_ClientNotify(), TestChannelHook_ServerGetSize(), and TestChannelHook_ServerNotify().
|
static |
Definition at line 168 of file marshal.c.
Referenced by crash_couninitialize_proc(), LockModule(), LockModuleOOP(), test_channel_hook(), test_client_security(), test_disconnect_stub(), test_freethreadedmarshaler(), test_globalinterfacetable(), test_handler_marshaling(), test_implicit_mta(), test_interthread_marshal_and_unmarshal(), test_local_server(), test_lock_object_external(), test_marshal_and_unmarshal_invalid(), test_marshal_channel_buffer(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_stub_apartment_shutdown(), test_message_filter(), test_no_couninitialize_client(), test_no_couninitialize_server(), test_normal_marshal_and_release(), test_normal_marshal_and_unmarshal(), test_normal_marshal_and_unmarshal_twice(), test_proxy_interfaces(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_proxy_used_in_wrong_thread(), test_same_apartment_unmarshal_failure(), test_stubbuffer(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), test_two_tableweak_marshal_and_releasedata(), TestCrash_IUnknown_Release(), UnlockModule(), UnlockModuleOOP(), and window_proc().
|
static |
Definition at line 62 of file marshal.c.
Referenced by DllGetClassObject(), and test_DfMarshal_custom_marshaling().
|
static |
Definition at line 63 of file marshal.c.
Referenced by test_freethreadedmarshaler().
Definition at line 140 of file marshal.c.
Referenced by DllGetClassObject(), get_class_object(), get_class_object_proxy_thread(), implicit_mta_proc(), register_class_object_thread(), test_CoCreateInstanceEx(), test_CoCreateInstanceFromApp(), test_CoRegisterClassObject(), test_local_server(), test_register_local_server(), and test_registered_object_thread_affinity().
|
static |
Definition at line 61 of file marshal.c.
Referenced by test_marshal_channel_buffer().
|
static |
Definition at line 1872 of file marshal.c.
Referenced by crash_couninitialize_proc(), and test_crash_couninitialize().
|
static |
Definition at line 1554 of file marshal.c.
Referenced by test_DfMarshal_custom_marshaling(), and test_StdMarshal_custom_marshaling().
|
static |
|
static |
Definition at line 181 of file marshal.c.
Referenced by ExternalConnection_AddConnection(), ExternalConnection_ReleaseConnection(), test_disconnect_stub(), test_implicit_mta(), test_interthread_marshal_and_unmarshal(), test_lock_object_external(), test_marshal_and_unmarshal_invalid(), test_marshal_channel_buffer(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_stub_apartment_shutdown(), test_no_couninitialize_client(), test_no_couninitialize_server(), test_normal_marshal_and_release(), test_normal_marshal_and_unmarshal(), test_normal_marshal_and_unmarshal_twice(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_same_apartment_unmarshal_failure(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), and test_two_tableweak_marshal_and_releasedata().
|
static |
Definition at line 224 of file marshal.c.
Referenced by Test_IClassFactory_QueryInterface().
|
static |
|
static |
Definition at line 2882 of file marshal.c.
Referenced by test_proxybuffer().
|
static |
Definition at line 3685 of file marshal.c.
Referenced by test_local_server(), test_register_local_server(), and UnlockModuleOOP().
|
static |
Definition at line 2959 of file marshal.c.
Referenced by test_call_from_message(), test_message_reentrancy(), test_WM_QUIT_handling(), TestMsg_IClassFactory_CreateInstance(), and TestRE_IClassFactory_CreateInstance().
Definition at line 129 of file marshal.c.
Referenced by proxy_manager_get_remunknown(), RemUnknown_QueryInterface(), start_apartment_remote_unknown(), test_client_security(), and Test_IClassFactory_QueryInterface().
Definition at line 121 of file marshal.c.
Referenced by implicit_mta_proc(), register_ps_clsid_thread(), test_client_security(), test_CoGetPSClsid(), test_CoRegisterPSClsid(), test_handler_marshaling(), test_inproc_handler(), Test_IUnknown_QueryInterface(), test_no_marshaler(), TestRE_IClassFactory_CreateInstance(), and window_proc().
|
static |
Definition at line 182 of file marshal.c.
Referenced by ExternalConnection_ReleaseConnection().
| struct local_server local_server_class |
Definition at line 3760 of file marshal.c.
Referenced by TestOOP_IClassFactory_CreateInstance().
|
static |
|
static |
Definition at line 2717 of file marshal.c.
Referenced by test_channel_hook(), and test_message_filter().
|
static |
|
static |
|
static |
|
static |
Definition at line 610 of file marshal.c.
Referenced by PSFactoryBuffer_CreateProxy(), PSFactoryBuffer_CreateStub(), and test_marshal_channel_buffer().
|
static |
Definition at line 684 of file marshal.c.
Referenced by test_marshal_channel_buffer().
|
static |
|
static |
Definition at line 602 of file marshal.c.
Referenced by PSFactoryBuffer_CreateProxy().
|
static |
Definition at line 524 of file marshal.c.
Referenced by PSFactoryBuffer_CreateStub().
|
static |
Definition at line 350 of file marshal.c.
Referenced by duo_marshal_thread_proc(), implicit_mta_marshal_proc(), no_couninitialize_server_proc(), second_mta_thread_proc(), test_bad_marshal_stream(), test_channel_hook(), test_client_security(), test_disconnect_stub(), test_freethreadedmarshaler(), test_globalinterfacetable(), test_implicit_mta(), test_interthread_marshal_and_unmarshal(), test_lock_object_external(), test_marshal_and_unmarshal_invalid(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_stub_apartment_shutdown(), test_message_filter(), test_no_couninitialize_client(), test_no_marshaler(), test_normal_marshal_and_release(), test_normal_marshal_and_unmarshal(), test_normal_marshal_and_unmarshal_twice(), test_proxy_interfaces(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_proxy_used_in_wrong_thread(), test_same_apartment_unmarshal_failure(), test_stubbuffer(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), and window_proc().
|
static |
Definition at line 427 of file marshal.c.
Referenced by PSFactoryBuffer_CreateStub(), and test_marshal_channel_buffer().
|
static |
Definition at line 392 of file marshal.c.
Referenced by OleClientSite_QueryInterface().
|
static |
Definition at line 3543 of file marshal.c.
Referenced by test_handler_marshaling().
|
static |
|
static |
Definition at line 264 of file marshal.c.
Referenced by test_CoGetStandardMarshal(), and Test_IClassFactory_CreateInstance().
|
static |
Definition at line 4532 of file marshal.c.
Referenced by test_channel_hook().
|
static |
|
static |
|
static |
|
static |
Definition at line 283 of file marshal.c.
Referenced by crash_couninitialize_proc().
|
static |
|
static |
Definition at line 3154 of file marshal.c.
Referenced by test_call_from_message().
|
static |
|
static |
Definition at line 3827 of file marshal.c.
Referenced by test_local_server(), and test_register_local_server().
|
static |
Definition at line 2986 of file marshal.c.
Referenced by window_proc().
|
static |
|
static |
|
static |
Definition at line 167 of file marshal.c.
Referenced by crash_couninitialize_proc(), implicit_mta_unmarshal_proc(), test_bad_marshal_stream(), test_call_from_message(), test_channel_hook(), test_client_security(), test_CoGetStandardMarshal(), test_DfMarshal_custom_marshaling(), test_disconnect_stub(), test_handler_marshaling(), test_hresult_marshaling(), test_implicit_mta(), test_interthread_marshal_and_unmarshal(), test_lock_object_external(), test_marshal_and_unmarshal_invalid(), test_marshal_channel_buffer(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_stub_apartment_shutdown(), test_message_filter(), test_mta_creation_thread_change_apartment(), test_no_couninitialize_client(), test_no_couninitialize_server(), test_normal_marshal_and_release(), test_normal_marshal_and_unmarshal(), test_normal_marshal_and_unmarshal_twice(), test_proxy_interfaces(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_proxy_used_in_wrong_thread(), test_StdMarshal_custom_marshaling(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), test_two_tableweak_marshal_and_releasedata(), and window_proc().
Definition at line 1447 of file marshal.c.
Referenced by CustomMarshal_GetUnmarshalClass(), CustomMarshal_MarshalInterface(), test_DfMarshal_custom_marshaling(), and test_StdMarshal_custom_marshaling().
|
static |
Definition at line 180 of file marshal.c.
Referenced by START_TEST(), Test_IClassFactory_QueryInterface(), test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), and test_tableweak_marshal_and_unmarshal_twice().