[PATCH] rpcrt4/tests: Run RPC tests in both mixed and fully interpreted mode.
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> --- dlls/rpcrt4/tests/Makefile.in | 6 +- dlls/rpcrt4/tests/server.c | 934 ++++++++++++++++++++++++---- dlls/rpcrt4/tests/server.idl | 228 ++++--- dlls/rpcrt4/tests/server_interp.idl | 25 + 4 files changed, 965 insertions(+), 228 deletions(-) create mode 100644 dlls/rpcrt4/tests/server_interp.idl
Jacek Caban <jacek(a)codeweavers.com> wrote:
+static int __cdecl (*int_return)(void); +static int __cdecl (*square)(int x); +static int __cdecl (*sum)(int x, int y); +static signed char __cdecl (*sum_char)(signed char x, signed char y); +static short __cdecl (*sum_short)(short x, short y); ...
__cdecl should be inside of parentheses so that the calling convention belongs to the function and not to the return type, otherwise MSVC would fail to compile such declarations. -- Dmitry.
On 1/23/19 1:35 PM, Dmitry Timoshkov wrote:
Jacek Caban <jacek(a)codeweavers.com> wrote:
+static int __cdecl (*int_return)(void); +static int __cdecl (*square)(int x); +static int __cdecl (*sum)(int x, int y); +static signed char __cdecl (*sum_char)(signed char x, signed char y); +static short __cdecl (*sum_short)(short x, short y); ...
__cdecl should be inside of parentheses so that the calling convention belongs to the function and not to the return type, otherwise MSVC would fail to compile such declarations.
Good catch, I will send a new patch. Ideally it would use typeof(), but it's also problematic for MSVC... Thanks, Jacek
On 1/23/19 5:37 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> --- dlls/rpcrt4/tests/Makefile.in | 6 +- dlls/rpcrt4/tests/server.c | 934 ++++++++++++++++++++++++---- dlls/rpcrt4/tests/server.idl | 228 ++++--- dlls/rpcrt4/tests/server_interp.idl | 25 + 4 files changed, 965 insertions(+), 228 deletions(-) create mode 100644 dlls/rpcrt4/tests/server_interp.idl
This seems like a great idea; I'm wondering if there are perhaps simpler ways of achieving it. In particular it's not obvious to me that we need to duplicate the server methods. Could we leave them as is and then instead use something like this: server_EXTRAIDLFLAGS = -Os --prefix-client=mixed_ server_interp_EXTRAIDLFLAGS = -Oicf --prefix-client=interp_
Hi Zebediah, On 1/23/19 7:02 PM, Zebediah Figura wrote:
On 1/23/19 5:37 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> --- dlls/rpcrt4/tests/Makefile.in | 6 +- dlls/rpcrt4/tests/server.c | 934 ++++++++++++++++++++++++---- dlls/rpcrt4/tests/server.idl | 228 ++++--- dlls/rpcrt4/tests/server_interp.idl | 25 + 4 files changed, 965 insertions(+), 228 deletions(-) create mode 100644 dlls/rpcrt4/tests/server_interp.idl
This seems like a great idea; I'm wondering if there are perhaps simpler ways of achieving it.
In particular it's not obvious to me that we need to duplicate the server methods. Could we leave them as is and then instead use something like this:
server_EXTRAIDLFLAGS = -Os --prefix-client=mixed_ server_interp_EXTRAIDLFLAGS = -Oicf --prefix-client=interp_
That sounds like a good idea. I will give it a try. Thanks, Jacek
participants (3)
-
Dmitry Timoshkov -
Jacek Caban -
Zebediah Figura