On Mon, 10 Jan 2005, Dan Kegel wrote:
Rob Shearman wrote:
We have a number of marshaling tests in our test framework at the moment (in wine/dlls/ole32/tests/marshal.c). It is hard to do anything cross-process (or cross-machine!) because of the way the test framework is done. Mike did suggest using environment variables to hack around those limitations, but so far that hasn't turned into any code from either of us.
Hey, that's not a bad idea. You could set an environment variable, then rerun the same program with the same arguments, and your test could sense the environment variable and run the 2nd process's test role. Is there a generic win32 way to run yourself again with the same arguments? If not, it'd probably only take a little tweaking of include/wine/test.h to set one up...
No need for environment variables. Just add extra parameters on the command line after the name of the test. For an example of how this works, check 'dlls/kernel/tests/process.c'.
I guess for DCOM you would need to also register the test executable as a DCOM server or something like this. Unless there's a flaw in my reasoning (quite possible since I'm not very familiar with DCOM), as long as you can specify a command line you're fine. So here's a very rough outline of how this would work:
* 'make test' runs 'ole32_test.exe dcom.c' * the dcom test registers a couple of DCOM servers for testing: uuid1 -> ole32_test.exe dcom.c server1 uuid2 -> ole32_test.exe dcom.c server2 * the dcom test then proceeds to invoke these server and do DCOM stuff with them * once the test is done the dcom test deregisters the above servers