Commit Graph

161 Commits

Author SHA1 Message Date
Michael Stefaniuc 46ebaa9be2 ole32/tests: Use an iface instead of a vtbl pointer in HeapUnknown. 2010-12-05 12:26:57 +01:00
Jacek Caban 0c6f2a6d2a ole32: Skip more tests on win9x. 2010-11-16 15:12:43 +01:00
Alexandre Julliard bc8e70c089 ole32/tests: Make some variables static. 2010-10-01 13:37:14 +02:00
Rob Shearman 552c91106d ole32: Fix test failure on win2000+.
These OSs have different behaviour w.r.t. quotes in path names and
don't ignore the rest of the path outside of the quotes.
2009-12-01 15:10:37 +01:00
Rob Shearman 510ed24f9a ole32: Cope with double quotes in paths for libraries to be loaded from the registry. 2009-11-30 12:48:05 +01:00
Rob Shearman 24cccbf4d1 ole32: Add inproc handler object creation support for CoCreateInstance. 2009-11-24 10:46:12 +01:00
Rob Shearman a7b621bd9b ole32: Fix behaviour of CoLockObjectExternal with fLastUnlockReleases as FALSE.
The parameter controls whether weak references are ignored, not
whether the last stub_manager_int_release should be called when the
total reference count goes to zero.
2009-11-24 10:46:06 +01:00
Rob Shearman bcf0be6a99 ole32: Add test for CoLockObjectExternal with fLastUnlockReleases as FALSE. 2009-11-24 10:46:00 +01:00
Alexandre Julliard f7bd47f78b ole32/tests: Set returned pointer to NULL in CreateInstance (Valgrind). 2009-10-22 13:04:36 +02:00
Alexandre Julliard 9b2e414e91 ole32/tests: Avoid infinite waits in tests. 2009-08-18 12:48:57 +02:00
Paul Vriens fb0275dd31 ole32/tests: Fix some test failures on Win9x/WinME. 2009-07-02 14:26:02 +02:00
Hans Leidekker 82bcafe8eb ole32: Add tests for CoGetContextToken. 2009-06-23 15:52:58 +02:00
Alexandre Julliard b55f6dfed5 ole32/tests: Don't hang forever in the child process. 2009-02-17 14:58:45 +01:00
Rob Shearman 2803516d26 ole32: Round the extected size in the marshal and moniker tests using the results of sizing a global, not a heap pointer.
The rounding isn't the same on Win9x, and the size being compared to
is that of a global handle.
2009-02-17 12:47:53 +01:00
Rob Shearman 1e8ae571f5 ole32: Fix some test failures in the free threaded marshaller tests on Win9x & NT4.
These platforms only write 8 bytes into the stream so cope appropriately.
2009-02-11 11:42:17 +01:00
Ge van Geldorp 4b27dfec93 ole32/tests: Write to HKCR instead of HKCU/Software/Classes for the benefit of older Windows versions. 2009-01-29 15:59:39 +01:00
Rob Shearman 9353dff5b3 ole32: Fix some tests that fail on NT4 and Win9x.
Round the expected sizes up to the alignment used by HeapSize, which
is 4 on Win9x and NT4 but 1 in more recent versions.

Additionally fix an IGlobalInterfaceTable test which erroneously
succeeds on these older OSs.
2009-01-28 14:15:42 +01:00
Ge van Geldorp f7a34db378 ole32/tests: Some Windows versions need the class to be registered. 2009-01-26 16:06:02 +01:00
Michael Stefaniuc bdbfac5996 ole32/tests: Remove superfluous pointer casts. 2009-01-20 12:34:31 +01:00
Alexandre Julliard 8377b2464b ole32/tests: Fix marshalling data layout for Win64. 2009-01-10 21:06:09 +01:00
Michael Stefaniuc 095568dfe9 ole32: Remove some superfluous casts of void pointers and zero. 2008-11-06 11:09:54 +01:00
Alistair Leslie-Hughes 0a1a4f7ca8 ole32: Stop crash under w2k8. 2008-08-20 13:55:43 +02:00
Alexandre Julliard 79c64acc7b tests: Don't depend on the static uuid libraries in the tests.
This avoids trouble with the broken MingW libraries when
cross-compiling the tests.
2008-07-08 17:51:45 +02:00
Rob Shearman 4cb5c3b7d6 ole32: Add a test for marshaling an object as table-weak and as normal and then unmarshaling and testing that the object is released on the final release. 2008-04-29 12:35:22 +02:00
James Hawkins 1edb56cec8 ole32: Fix a few tests that fail in win2k. 2008-04-17 12:51:31 +02:00
Reece Dunn 4fbdab7a8f ole32: Added a missing include needed for CLSID_ShellDesktop using MSVC headers. 2008-03-24 21:05:17 +01:00
Alexandre Julliard 05c7174909 tests: Add a helper routine to wait for a child process and propagate its result correctly. 2008-02-07 12:56:00 +01:00
Rob Shearman 34ab21d11e ole32: Register the window used in the marshal tests only once.
Destroy the windows that have been created when they are no longer needed.
2007-12-07 16:34:48 +01:00
Rob Shearman 56a624b0fe ole32: Wait forever on the ready_event in the local server tests. 2007-11-13 13:33:17 +01:00
Rob Shearman b75a33a214 ole32: Add a missing IStream_Release to test_same_apartment_unmarshal_failure. 2007-11-12 11:45:30 +01:00
Rob Shearman 2eb10c2e22 ole32: Improve the error reporting in the marshal test when CreateProcess fails. 2007-11-02 12:18:40 +01:00
Michael Stefaniuc d28c3ca60c ole32: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:25 +02:00
Rob Shearman 30cc21196e ole32: Remove spurious AddRef of returned object on retrieval of an interface from the global interface table. 2007-05-23 12:49:50 +02:00
Rob Shearman 7d90b6ce29 ole32: Allow the getting of different interfaces from the global interface table than that with what the object was registered with. 2007-05-23 12:49:45 +02:00
Rob Shearman 05230781b0 ole32: Add more tests for global interface table functions. 2007-05-23 12:49:39 +02:00
Rob Shearman 071ea06af8 ole32: Remove a useless trace.
Remove an incorrect comment.
2007-05-22 12:19:07 +02:00
Rob Shearman dd8a736c3f ole32: The identity functions can be used from apartments other than the one the proxy was unmarshaled into.
In this case, don't use the cached This->remunk and don't cache the 
unmarshaled object in This->remunk.
2007-05-22 12:18:55 +02:00
Rob Shearman 5369d4dffd ole32: Handle MSHLFLAGS_TABLEWEAK and MSHLFLAGS_TABLESTRONG when marshaling a proxy.
Add tests for this behaviour.
2007-05-22 12:18:31 +02:00
Rob Shearman 600143d4fa ole32: Create host apartments to enable isolation of objects of incompatible threading models.
There should be one host apartment per apartment. Existing apartments 
should not be re-used, except in the case of the main apartment.
2007-05-18 14:42:37 +02:00
Rob Shearman 1360357f92 ole32: Fix a hack which depended on the IID of the interface being marshaled
to determine whether we were marshaling the remote unknown for the
apartment or not.
2007-04-06 12:31:04 +02:00
Rob Shearman 1f70fc50c6 ole32: Add tests for the standard marshaler's implementation of IClientSecurity. 2007-03-28 12:10:51 +02:00
Rob Shearman d6a435fc56 ole32: Pass the OXID info to RPC_CreateClientChannel and use this to pass the server process ID to channel hooks. 2007-03-28 12:10:40 +02:00
Rob Shearman 061a29ee44 ole32: Add a stubbed out implementation of IClientSecurity to the proxy manager. 2007-03-27 12:39:25 +02:00
Rob Shearman f0189b8789 ole32: Implement CoAddRefServerProcess and CoReleaseServerProcess. 2007-03-09 21:17:47 +01:00
Rob Shearman 15a0b7fad5 ole32: Don't keep the local server named pipe open for a single-use object. 2007-03-09 21:16:44 +01:00
Rob Shearman 2a021b50d4 ole32: Enable local server test and make it work with Win9x COM implementation. 2007-03-09 21:16:34 +01:00
Rob Shearman c19076cb19 ole32: Remove some unnecessary traces from the HeapUnknown implementation. 2007-03-06 22:17:54 +01:00
Rob Shearman 0101f89a8d ole32: Add tests for default handler creation and handler marshaling. 2007-02-26 13:38:45 +01:00
Rob Shearman fa64950ee1 ole32: Add a test for the failure case of same-apartment unmarshaling when passing in an unsupported iid. 2007-01-10 12:21:59 +01:00
Rob Shearman d02b27c0e9 ole32: Move test for CoGetInterfaceAndReleaseStream to compobj.c. 2007-01-10 12:02:37 +01:00
Rob Shearman c21f5c7c6a ole32: Move the Running Object Table test in marshal.c to moniker.c to put it with the other ROT tests. 2007-01-10 12:02:28 +01:00
Rob Shearman 0c51b6236c ole32: Release the global interface table in the tests when it is no longer needed. 2007-01-08 12:35:34 +01:00
Rob Shearman 638182bbba ole32: Add tests for channel hooks. 2006-12-29 21:25:49 +01:00
Rob Shearman 3be9cbc41a ole32: Message filters aren't used in the test_call_from_message test, so remove the call to CoRegisterMessageFilter. 2006-12-27 13:02:48 +01:00
Rob Shearman 844037ab01 ole32: Performing a COM call from within the processing of a sent message during a wait for completion of another COM call is not allowed.
Add a test for the behaviour where RPC_E_CANTCALLOUT_ININPUTSYNCCALL is returned.
2006-12-24 13:08:02 +01:00
Rob Shearman 4fa03831a5 ole32: Reset the message filter at the end of the message filter test. 2006-12-20 12:40:46 +01:00
Rob Shearman 9208eef55c ole32: Call the message filter for incoming calls. 2006-12-20 12:40:30 +01:00
Rob Shearman 3bb4760f88 ole32: Move the user marshal tests to usrmarshal.c. 2006-12-18 11:52:42 +01:00
Francois Gouget 458ebf423d ole32/tests: Replace some '#if 0's with 'if (0)'s.
Fix the code so it compiles.
2006-12-14 20:24:53 +01:00
Huw Davies 1f34fdffee ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream. 2006-11-22 11:38:57 +01:00
Michael Stefaniuc 22befac97e ole32: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes. 2006-11-09 10:43:38 +01:00
Rob Shearman e1ee3b4de3 ole32: Fix some memory leaks in the marshal tests. 2006-10-23 15:18:05 +02:00
Michael Stefaniuc 15765dd953 The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility. 2006-10-16 10:53:04 +02:00
Michael Ploujnikov 9d2a804f9b ole32/tests: Win64 printf format warning fixes. 2006-10-14 20:17:16 +02:00
Francois Gouget 87045eb0c5 Fix rpcndr.h so it takes CONST_VTABLE into account.
Define CONST_VTABLE in the tests that need it. This fixes many Visual C++ warnings.
2006-09-29 17:52:27 +02:00
Robert Shearman 0e99d795b7 ole32: Add some more tests for failure cases of Co* functions and make builtin ole32 pass them. 2006-08-16 16:42:01 +02:00
Robert Shearman 628371021b ole32: When CoLockObjectExternal with fLock=TRUE is used on an object
that hasn't yet been marshaled then it should create a new stub
manager.
2006-06-30 20:44:02 +02:00
Robert Shearman 2f0e714a27 ole32: When marshaling a proxy make sure to maintain an external
reference on the stub object so that the first proxy can be released.

Implement external refcount sharing between a proxy and the marshaled proxy.

Extend the marshaling of a proxy test to show that an external reference 
is always kept on the stub object.
2006-06-29 14:40:50 +02:00
Robert Shearman 723aceb20f ole32: Add a test for CoCreateInstance doing object hosting by
automatically creating an appropriate apartment for the object and
returning a proxy to it.
2006-06-29 14:40:23 +02:00
Robert Shearman f2dc25a5f3 ole32: Always rewind the stream in StdGlobalInterfaceTable_GetInterfaceFromGlobal
as CoUnmarshalInterface may have advanced the stream, even if it failed.
2006-06-15 12:07:10 +02:00
Robert Shearman fa757df883 ole32: Add a tests for OleSetMenuDescriptor and the global interface table. 2006-06-15 12:06:49 +02:00
Alexandre Julliard 28e17a75af ole32/tests: Don't use sizeof in ok() to avoid printf format warnings. 2006-06-13 14:03:36 +02:00
Robert Shearman 2c57189a97 ole32: Implement table-strong marshaling and ReleaseMarshalData for the free-threaded marshaler. 2006-05-25 10:43:07 +02:00
Robert Shearman f9b5280dd0 ole32: Implement table-weak marshaling for the free-threaded marshaler. 2006-05-25 10:42:56 +02:00
Robert Shearman 4335c64f7b ole32: Add a rough implementation of the free-threaded marshaler MarshalInterface and UnmarshalInterface methods, with test cases. 2006-05-25 10:41:17 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman 0fd184773a ole32: Release the outer unknown in the proxybuffer test.
Release the outer unknown in the proxybuffer test to show that the
last release of the outer unknown doesn't free the proxy buffer.
2006-05-23 12:05:07 +02:00
Mike McCormack 64659785de ole32: Uncomment some code to make sure it is compiled, but don't run it. 2006-04-18 11:14:53 +02:00
Robert Shearman 857a6d1f63 ole: Fix marshaling of proxies for interfaces that haven't already been unmarshaled. 2006-03-01 19:54:20 +01:00
Robert Shearman 1b7d346d1f ole: Verify that the proxy is being used in the correct thread. 2006-01-20 16:16:08 +01:00
Robert Shearman 98734cc894 ole: Add a test for WM_QUIT behaviour during COM calls. 2006-01-20 16:14:32 +01:00
Robert Shearman 9ac3b28354 ole: Use strict prototypes for some test functions. 2006-01-12 11:53:19 +01:00
Robert Shearman 567919d78f Implement some user marshal functions and add tests. 2005-11-29 11:35:27 +01:00
Robert Shearman b3a4b59668 Fix ref-counting rules to match native DCOM Dlls. 2005-09-18 11:10:37 +00:00
Alexandre Julliard 5a49e40149 SendMessageTimeout takes a DWORD_PTR not a DWORD. 2005-09-12 20:43:32 +00:00
Robert Shearman dab603def3 - Implement IMarshal on proxies so that we don't end up with proxies
to proxies, causing potential deadlock issues and performance
  problems.
- Add a test for this situation and remove the todo_wine from another
  test that now succeeds.
2005-08-27 09:25:16 +00:00
Robert Shearman 28479ea4aa By-pass the RPC runtime if possible when calling an STA by posting a
message directly to the apartment window for it to process. Fixes a
deadlock in InstallShield caused by having to create a thread when
freeing an object that comes from an STA apartment. Added tests that
fail without this fix.
2005-07-19 19:12:47 +00:00
Stefan Huehner ac6f562b52 Fix more -Wstrict-prototypes warnings. 2005-06-20 14:18:03 +00:00
Dmitry Timoshkov eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +00:00
Robert Shearman b9ecbb6167 - Marshal objects & monikers into the ROT.
- Test for this behaviour.
2005-05-23 09:54:53 +00:00
Francois Gouget 6b10c324c5 Assorted spelling fixes. 2005-03-30 17:08:31 +00:00
Jakob Eriksson 461c830745 Eliminate HeapAlloc casts. 2005-03-22 18:26:06 +00:00
Alexandre Julliard 53f3d4c65a Authors: Rob Shearman <rob@codeweavers.com>, Mike Hearn <mh@codeweavers.com>
- Add re-entrancy tests to the test suite.
- Run RPCs on a new thread client side so we can pump the message
  loop.
2005-03-04 12:30:47 +00:00
Robert Shearman 95288f9148 - Move marshaling state machine into stub manager from ifstub.
- Add additional needed states for table-weak marshaling, as shown by
  tests.
- Protect external reference count from underflows/overflows.
2005-02-18 20:03:23 +00:00
Robert Shearman 403d8e23cd Make Ole tests run on Windows 95. 2005-02-14 11:01:51 +00:00
Robert Shearman 999766d31b - Implement CoDisconnectObject.
- Change CoLockObjectExternal so that it does the correct action now
  and eliminate a fair few lines of now redundant code.
- Rename OLE32_Dll{Register,Unregister}Server to
  Dll{Register,Unregister}Server.
2005-02-08 16:51:22 +00:00
Robert Shearman f8a2edb805 - Split up apartment creation so that the long code paths that don't
need locking no longer have locking.
- Add special cases for the threads that join apartments but can't
  increase the refcount of the apartment.
- Free TLS storage on thread destruction (including releasing the
  apartment the thread is in, if any, and so making another test
  pass).
2005-02-08 13:42:15 +00:00
Robert Shearman e6afc84873 - Add code for destroying the thread-local storage data, but don't use
it yet.
- Don't release apartment on changing modes because we didn't add a
  reference anywhere.
- Quieten the RPC_E_DISCONNECTED error message as it is an expected
  return code.
- Treat IID_NULL the same as IID_IUnknown.
- Make tests compile on Win95 again.
- Fix copy+paste error where the test failure should be from the
  CoUnmarshalInterface function.
2005-02-01 14:18:10 +00:00
Robert Shearman 9a97360eba Remove test that fails on Win98 and is not useful. 2005-01-31 11:29:41 +00:00
Robert Shearman 9b634b97ae - More tests.
- Change return code of CoGetPSClsid to match test result.
- Do a slight hack to make IRemUnknown proxies be added after the
  proxy that uses them to stop them being used after they are
  destroyed.
- Fix multiple local server connections.
2005-01-28 12:39:13 +00:00