summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJCWasmx86 <JCWasmx86@t-online.de>2022-06-04 20:19:13 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2023-04-29 21:00:17 +0200
commitc073e581a7d0c9d38c5fe8a432c0f4ade1d2338e (patch)
treef43d043bc4c07cb2fd968b35ad72fab251591d8f
parent1e124a4dd5454525d04138d4df48cad75c4ffc7c (diff)
downloadvala-c073e581a7d0c9d38c5fe8a432c0f4ade1d2338e.tar.gz
Added tests
-rw-r--r--dbusgen/tests/test-codegen.xml10
-rw-r--r--dbusgen/tests/test-codegen.xml.vala-expected4
-rw-r--r--dbusgen/valadbusvariantmodule.vala2
3 files changed, 15 insertions, 1 deletions
diff --git a/dbusgen/tests/test-codegen.xml b/dbusgen/tests/test-codegen.xml
index 17576c646..333bcff64 100644
--- a/dbusgen/tests/test-codegen.xml
+++ b/dbusgen/tests/test-codegen.xml
@@ -64,6 +64,16 @@
<arg direction="out" type="ay" name="result" />
</method>
+ <method name="TestGenericArray">
+ <!-- <arg direction="in" type="a{ass}" name="dict_array_key"/> -->
+ <arg direction="in" type="a{sas}" name="dict_array_value"/>
+ </method>
+
+ <method name="TestGenericPrimitive">
+ <arg direction="in" type="a{ts}" name="dict_primitive_key"/>
+ <arg direction="in" type="a{st}" name="dict_primitive_value"/>
+ </method>
+
<method name="TestDuplicateArgname">
<arg direction="in" type="s" name="arg" />
<arg direction="out" type="s" name="arg" />
diff --git a/dbusgen/tests/test-codegen.xml.vala-expected b/dbusgen/tests/test-codegen.xml.vala-expected
index eca8e5666..0bfd2dbf9 100644
--- a/dbusgen/tests/test-codegen.xml.vala-expected
+++ b/dbusgen/tests/test-codegen.xml.vala-expected
@@ -6,7 +6,9 @@ public interface OrgProjectBar : GLib.Object {
public abstract void hello_world (string greeting, out string response) throws GLib.DBusError, GLib.IOError;
public abstract void test_primitive_types (char val_byte, bool val_boolean, int16 val_int16, uint16 val_uint16, int32 val_int32, uint32 val_uint32, int64 val_int64, uint64 val_uint64, double val_double, string val_string, GLib.ObjectPath val_objpath, string val_signature, string val_bytestring, out char ret_byte, out bool ret_boolean, out int16 ret_int16, out uint16 ret_uint16, out int32 ret_int32, out uint32 ret_uint32, out int64 ret_int64, out uint64 ret_uint64, out double ret_double, out string ret_string, out GLib.ObjectPath ret_objpath, out string ret_signature, out string ret_bytestring) throws GLib.DBusError, GLib.IOError;
public abstract void test_non_primitive_types (GLib.HashTable<string,string> dict_s_to_s, [DBus (signature = "a{s(ii)}")] GLib.Variant dict_s_to_pairs, [DBus (signature = "(iss)")] GLib.Variant a_struct, string[] array_of_strings, out string[] ret_array_of_strings, GLib.ObjectPath[] array_of_objpaths, out GLib.ObjectPath[] ret_array_of_objpaths, string[] array_of_signatures, out string[] ret_array_of_signatures, string[] array_of_bytestrings, out string[] ret_array_of_bytestrings, out string result) throws GLib.DBusError, GLib.IOError;
- public abstract void test_duplicate_argname (string arg, out string arg0) throws GLib.DBusError, GLib.IOError;
+ public abstract void test_generic_array ([DBus (signature = "a{sas}")] GLib.Variant dict_array_value) throws GLib.DBusError, GLib.IOError;
+ public abstract void test_generic_primitive ([DBus (signature = "a{ts}")] GLib.Variant dict_primitive_key, [DBus (signature = "a{st}")] GLib.Variant dict_primitive_value) throws GLib.DBusError, GLib.IOError;
+ public abstract void test_duplicate_argname (string arg, out string arg0) throws GLib.DBusError, GLib.IOError;
public abstract void request_signal_emission (int32 which_one) throws GLib.DBusError, GLib.IOError;
public abstract void request_multi_property_mods () throws GLib.DBusError, GLib.IOError;
public abstract void unimplemented_method () throws GLib.DBusError, GLib.IOError;
diff --git a/dbusgen/valadbusvariantmodule.vala b/dbusgen/valadbusvariantmodule.vala
index be2aa6856..404f7bb40 100644
--- a/dbusgen/valadbusvariantmodule.vala
+++ b/dbusgen/valadbusvariantmodule.vala
@@ -152,6 +152,8 @@ public class Vala.DBusVariantModule {
} else if (type.equal (VariantType.SIGNATURE)) {
return string_type.copy ();
} else if (type.equal (VariantType.HANDLE)) {
+ // TODO: The spec says: 32-bit unsigned integer in the message's byte order.
+ // But usually e.g. `open()` returns an 32-bit signed integer
return int32_type.copy ();
}
} else if (type.is_variant ()) {