diff options
| author | Christian Rendina <[email protected]> | 2025-04-08 15:28:56 +0200 |
|---|---|---|
| committer | Christian Rendina <[email protected]> | 2025-04-08 15:28:56 +0200 |
| commit | 344d2874f06cce073bb0316fe75f505d2767fbc4 (patch) | |
| tree | 822b0a6206f5e81ca83ee6749fdbbac50ee9c71b | |
| parent | fd129538be29cabad2c2650f9b837ab1afc28a1e (diff) | |
Add some midl tests
| -rw-r--r-- | tests/projects/idl/test_norpc/src/lockowner.idl | 28 | ||||
| -rw-r--r-- | tests/projects/idl/test_norpc/src/test_iid.c | 9 | ||||
| -rw-r--r-- | tests/projects/idl/test_norpc/xmake.lua | 7 | ||||
| -rw-r--r-- | tests/projects/idl/test_norpc_proxy/src/lockowner.idl | 28 | ||||
| -rw-r--r-- | tests/projects/idl/test_norpc_proxy/src/test_iid.c | 9 | ||||
| -rw-r--r-- | tests/projects/idl/test_norpc_proxy/xmake.lua | 7 | ||||
| -rw-r--r-- | tests/projects/idl/test_rpc/src/example.idl | 13 | ||||
| -rw-r--r-- | tests/projects/idl/test_rpc/src/test_iid.c | 21 | ||||
| -rw-r--r-- | tests/projects/idl/test_rpc/xmake.lua | 7 | ||||
| -rw-r--r-- | tests/projects/idl/test_rpc_noserver/src/example.idl | 13 | ||||
| -rw-r--r-- | tests/projects/idl/test_rpc_noserver/src/test_iid.c | 20 | ||||
| -rw-r--r-- | tests/projects/idl/test_rpc_noserver/xmake.lua | 8 |
12 files changed, 170 insertions, 0 deletions
diff --git a/tests/projects/idl/test_norpc/src/lockowner.idl b/tests/projects/idl/test_norpc/src/lockowner.idl new file mode 100644 index 000000000..a63fe01bc --- /dev/null +++ b/tests/projects/idl/test_norpc/src/lockowner.idl @@ -0,0 +1,28 @@ +/* + * PROJECT: SupernovaX SDK + * LICENSE: MIT (https://spdx.org/licenses/MIT) + * PURPOSE: Lock owner COM interfaces + * COPYRIGHT: Copyright 2023 Christian Rendina <[email protected]> + */ +import "oaidl.idl"; +import "ocidl.idl"; + +[ + object, + local, + uuid(9b7e4a00-342c-4106-a19f-4f2704f689f0) +] +interface ILockOwner : IUnknown +{ + void LOEnter( + void + ); + + void LOLeave( + void + ); + + BOOL LOTryEnter( + void + ); +}; diff --git a/tests/projects/idl/test_norpc/src/test_iid.c b/tests/projects/idl/test_norpc/src/test_iid.c new file mode 100644 index 000000000..39a279072 --- /dev/null +++ b/tests/projects/idl/test_norpc/src/test_iid.c @@ -0,0 +1,9 @@ +#include <lockowner.h> +#include <stdio.h> + +int main() +{ + IID g = IID_ILockOwner; + printf("GUID: %x-%x-%x-%llx", g.Data1, g.Data2, g.Data3, *(unsigned long long*)g.Data4); + return 0; +} diff --git a/tests/projects/idl/test_norpc/xmake.lua b/tests/projects/idl/test_norpc/xmake.lua new file mode 100644 index 000000000..d1596e3d5 --- /dev/null +++ b/tests/projects/idl/test_norpc/xmake.lua @@ -0,0 +1,7 @@ +add_rules("mode.debug", "mode.release") + +target("idltest_norpc") + set_kind("binary") + add_files("src/*.idl", { proxy = false }) + add_files("src/*.c") + add_syslinks("Rpcrt4") diff --git a/tests/projects/idl/test_norpc_proxy/src/lockowner.idl b/tests/projects/idl/test_norpc_proxy/src/lockowner.idl new file mode 100644 index 000000000..a63fe01bc --- /dev/null +++ b/tests/projects/idl/test_norpc_proxy/src/lockowner.idl @@ -0,0 +1,28 @@ +/* + * PROJECT: SupernovaX SDK + * LICENSE: MIT (https://spdx.org/licenses/MIT) + * PURPOSE: Lock owner COM interfaces + * COPYRIGHT: Copyright 2023 Christian Rendina <[email protected]> + */ +import "oaidl.idl"; +import "ocidl.idl"; + +[ + object, + local, + uuid(9b7e4a00-342c-4106-a19f-4f2704f689f0) +] +interface ILockOwner : IUnknown +{ + void LOEnter( + void + ); + + void LOLeave( + void + ); + + BOOL LOTryEnter( + void + ); +}; diff --git a/tests/projects/idl/test_norpc_proxy/src/test_iid.c b/tests/projects/idl/test_norpc_proxy/src/test_iid.c new file mode 100644 index 000000000..39a279072 --- /dev/null +++ b/tests/projects/idl/test_norpc_proxy/src/test_iid.c @@ -0,0 +1,9 @@ +#include <lockowner.h> +#include <stdio.h> + +int main() +{ + IID g = IID_ILockOwner; + printf("GUID: %x-%x-%x-%llx", g.Data1, g.Data2, g.Data3, *(unsigned long long*)g.Data4); + return 0; +} diff --git a/tests/projects/idl/test_norpc_proxy/xmake.lua b/tests/projects/idl/test_norpc_proxy/xmake.lua new file mode 100644 index 000000000..f4255cea5 --- /dev/null +++ b/tests/projects/idl/test_norpc_proxy/xmake.lua @@ -0,0 +1,7 @@ +add_rules("mode.debug", "mode.release") + +target("idltest_norpc") + set_kind("binary") + add_files("src/*.idl") + add_files("src/*.c") + add_syslinks("Rpcrt4") diff --git a/tests/projects/idl/test_rpc/src/example.idl b/tests/projects/idl/test_rpc/src/example.idl new file mode 100644 index 000000000..655b7827a --- /dev/null +++ b/tests/projects/idl/test_rpc/src/example.idl @@ -0,0 +1,13 @@ +[ + uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45), + version(1.0) +] +interface MyInterface +{ + const unsigned short INT_ARRAY_LEN = 100; + + void MyRemoteProc( + [in] int param1, + [out] int outArray[INT_ARRAY_LEN] + ); +} diff --git a/tests/projects/idl/test_rpc/src/test_iid.c b/tests/projects/idl/test_rpc/src/test_iid.c new file mode 100644 index 000000000..c7e0f600b --- /dev/null +++ b/tests/projects/idl/test_rpc/src/test_iid.c @@ -0,0 +1,21 @@ +#include <Windows.h> +#include <example.h> +#include <stdio.h> + +int main() +{ + MyInterface_v1_0_c_ifspec = (void*)1; + MyInterface_v1_0_s_ifspec = (void*)1; + printf("set ok\n"); + return 0; +} + +void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes) +{ + return(malloc(cBytes)); +} + +void __RPC_API midl_user_free(void __RPC_FAR * p) +{ + free(p); +} diff --git a/tests/projects/idl/test_rpc/xmake.lua b/tests/projects/idl/test_rpc/xmake.lua new file mode 100644 index 000000000..3eba457d6 --- /dev/null +++ b/tests/projects/idl/test_rpc/xmake.lua @@ -0,0 +1,7 @@ +add_rules("mode.debug", "mode.release") + +target("idltest_rpc") + set_kind("binary") + add_files("src/*.idl" ) + add_files("src/*.c") + add_syslinks("Rpcrt4") diff --git a/tests/projects/idl/test_rpc_noserver/src/example.idl b/tests/projects/idl/test_rpc_noserver/src/example.idl new file mode 100644 index 000000000..655b7827a --- /dev/null +++ b/tests/projects/idl/test_rpc_noserver/src/example.idl @@ -0,0 +1,13 @@ +[ + uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45), + version(1.0) +] +interface MyInterface +{ + const unsigned short INT_ARRAY_LEN = 100; + + void MyRemoteProc( + [in] int param1, + [out] int outArray[INT_ARRAY_LEN] + ); +} diff --git a/tests/projects/idl/test_rpc_noserver/src/test_iid.c b/tests/projects/idl/test_rpc_noserver/src/test_iid.c new file mode 100644 index 000000000..fd992323b --- /dev/null +++ b/tests/projects/idl/test_rpc_noserver/src/test_iid.c @@ -0,0 +1,20 @@ +#include <Windows.h> +#include <example.h> +#include <stdio.h> + +int main() +{ + MyInterface_v1_0_c_ifspec = (void*)1; + printf("call ok\n"); + return 0; +} + +void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes) +{ + return(malloc(cBytes)); +} + +void __RPC_API midl_user_free(void __RPC_FAR * p) +{ + free(p); +} diff --git a/tests/projects/idl/test_rpc_noserver/xmake.lua b/tests/projects/idl/test_rpc_noserver/xmake.lua new file mode 100644 index 000000000..6c4bcdd2b --- /dev/null +++ b/tests/projects/idl/test_rpc_noserver/xmake.lua @@ -0,0 +1,8 @@ +add_rules("mode.debug", "mode.release") + +target("idltest_rpc_noserver") + set_kind("binary") + --add_rules("midl") + add_files("src/*.idl", { server = false } ) + add_files("src/*.c") + add_syslinks("Rpcrt4") |
