Blame SOURCES/0008-test-dbus-zone-verify-runtime-config-API-signatures.patch

e4e66d
From 3122491686014a2cdd83d3506334055fd18c80e0 Mon Sep 17 00:00:00 2001
e4e66d
From: Eric Garver <eric@garver.life>
e4e66d
Date: Wed, 8 Apr 2020 14:16:48 -0400
e4e66d
Subject: [PATCH 08/10] test: dbus: zone: verify runtime config API signatures
e4e66d
e4e66d
(cherry picked from commit fca39ea7edbd57283bc15fdd88fbfd4b1943f977)
e4e66d
(cherry picked from commit d17a68d680b631954fdb5031a3c0627a68f77049)
e4e66d
---
e4e66d
 src/tests/dbus/dbus.at                    |   1 +
e4e66d
 src/tests/dbus/zone_runtime_signatures.at | 415 ++++++++++++++++++++++
e4e66d
 2 files changed, 416 insertions(+)
e4e66d
 create mode 100644 src/tests/dbus/zone_runtime_signatures.at
e4e66d
e4e66d
diff --git a/src/tests/dbus/dbus.at b/src/tests/dbus/dbus.at
e4e66d
index ffef478f5449..377244460e7a 100644
e4e66d
--- a/src/tests/dbus/dbus.at
e4e66d
+++ b/src/tests/dbus/dbus.at
e4e66d
@@ -2,3 +2,4 @@ AT_BANNER([dbus])
e4e66d
 m4_include([dbus/firewalld.conf.at])
e4e66d
 m4_include([dbus/service.at])
e4e66d
 m4_include([dbus/zone_permanent_signatures.at])
e4e66d
+m4_include([dbus/zone_runtime_signatures.at])
e4e66d
diff --git a/src/tests/dbus/zone_runtime_signatures.at b/src/tests/dbus/zone_runtime_signatures.at
e4e66d
new file mode 100644
e4e66d
index 000000000000..53fdbea03180
e4e66d
--- /dev/null
e4e66d
+++ b/src/tests/dbus/zone_runtime_signatures.at
e4e66d
@@ -0,0 +1,415 @@
e4e66d
+FWD_START_TEST([dbus api - zone runtime signatures])
e4e66d
+AT_KEYWORDS(dbus zone gh586)
e4e66d
+
e4e66d
+dnl ####################
e4e66d
+dnl Global APIs
e4e66d
+dnl ####################
e4e66d
+
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getZoneSettings"]]], 0, [dnl
e4e66d
+    <method name="getZoneSettings">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="(sssbsasa(ss)asba(ssss)asasasasa(ss)b)"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Default Zone
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getDefaultZone"]]], 0, [dnl
e4e66d
+    <method name="getDefaultZone">
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="setDefaultZone"]]], 0, [dnl
e4e66d
+    <method name="setDefaultZone">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Fetching Zones
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getZones"]]], 0, [dnl
e4e66d
+    <method name="getZones">
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getActiveZones"]]], 0, [dnl
e4e66d
+    <method name="getActiveZones">
e4e66d
+        <arg direction="out" type="a{sa{sas}}"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Interface/Source
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getZoneOfInterface"]]], 0, [dnl
e4e66d
+    <method name="getZoneOfInterface">
e4e66d
+        <arg direction="in" name="interface" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getZoneOfSource"]]], 0, [dnl
e4e66d
+    <method name="getZoneOfSource">
e4e66d
+        <arg direction="in" name="source" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl ####################
e4e66d
+dnl Zone APIs
e4e66d
+dnl ####################
e4e66d
+
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="isImmutable"]]], 0, [dnl
e4e66d
+    <method name="isImmutable">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Interfaces
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addInterface"]]], 0, [dnl
e4e66d
+    <method name="addInterface">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="interface" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="changeZone"]]], 0, [dnl
e4e66d
+    <method name="changeZone">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="interface" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="changeZoneOfInterface"]]], 0, [dnl
e4e66d
+    <method name="changeZoneOfInterface">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="interface" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeInterface"]]], 0, [dnl
e4e66d
+    <method name="removeInterface">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="interface" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryInterface"]]], 0, [dnl
e4e66d
+    <method name="queryInterface">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="interface" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getInterfaces"]]], 0, [dnl
e4e66d
+    <method name="getInterfaces">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Sources
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addSource"]]], 0, [dnl
e4e66d
+    <method name="addSource">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="source" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="changeZoneOfSource"]]], 0, [dnl
e4e66d
+    <method name="changeZoneOfSource">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="source" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeSource"]]], 0, [dnl
e4e66d
+    <method name="removeSource">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="source" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="querySource"]]], 0, [dnl
e4e66d
+    <method name="querySource">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="source" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getSources"]]], 0, [dnl
e4e66d
+    <method name="getSources">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Services
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addService"]]], 0, [dnl
e4e66d
+    <method name="addService">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="service" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeService"]]], 0, [dnl
e4e66d
+    <method name="removeService">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="service" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryService"]]], 0, [dnl
e4e66d
+    <method name="queryService">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="service" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getServices"]]], 0, [dnl
e4e66d
+    <method name="getServices">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Protocols
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addProtocol"]]], 0, [dnl
e4e66d
+    <method name="addProtocol">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeProtocol"]]], 0, [dnl
e4e66d
+    <method name="removeProtocol">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryProtocol"]]], 0, [dnl
e4e66d
+    <method name="queryProtocol">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getProtocols"]]], 0, [dnl
e4e66d
+    <method name="getProtocols">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Ports
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addPort"]]], 0, [dnl
e4e66d
+    <method name="addPort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removePort"]]], 0, [dnl
e4e66d
+    <method name="removePort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryPort"]]], 0, [dnl
e4e66d
+    <method name="queryPort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getPorts"]]], 0, [dnl
e4e66d
+    <method name="getPorts">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        dnl NOTE: The signature is "aas", but getPorts() actually returns
e4e66d
+        dnl "a(ss)". Apparently python-dbus coerces to "aas".
e4e66d
+        <arg direction="out" type="aas"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Source Ports
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addSourcePort"]]], 0, [dnl
e4e66d
+    <method name="addSourcePort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeSourcePort"]]], 0, [dnl
e4e66d
+    <method name="removeSourcePort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="querySourcePort"]]], 0, [dnl
e4e66d
+    <method name="querySourcePort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getSourcePorts"]]], 0, [dnl
e4e66d
+    <method name="getSourcePorts">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        dnl NOTE: The signature is "aas", but getPorts() actually returns
e4e66d
+        dnl "a(ss)". Apparently python-dbus coerces to "aas".
e4e66d
+        <arg direction="out" type="aas"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Forward Ports
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addForwardPort"]]], 0, [dnl
e4e66d
+    <method name="addForwardPort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="in" name="toport" type="s"></arg>
e4e66d
+        <arg direction="in" name="toaddr" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeForwardPort"]]], 0, [dnl
e4e66d
+    <method name="removeForwardPort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="in" name="toport" type="s"></arg>
e4e66d
+        <arg direction="in" name="toaddr" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryForwardPort"]]], 0, [dnl
e4e66d
+    <method name="queryForwardPort">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="port" type="s"></arg>
e4e66d
+        <arg direction="in" name="protocol" type="s"></arg>
e4e66d
+        <arg direction="in" name="toport" type="s"></arg>
e4e66d
+        <arg direction="in" name="toaddr" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getForwardPorts"]]], 0, [dnl
e4e66d
+    <method name="getForwardPorts">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        dnl NOTE: The signature is "aas", but getPorts() actually returns
e4e66d
+        dnl "a(ssss)". Apparently python-dbus coerces to "aas".
e4e66d
+        <arg direction="out" type="aas"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Masquerade
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addMasquerade"]]], 0, [dnl
e4e66d
+    <method name="addMasquerade">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeMasquerade"]]], 0, [dnl
e4e66d
+    <method name="removeMasquerade">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryMasquerade"]]], 0, [dnl
e4e66d
+    <method name="queryMasquerade">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl ICMP Block
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addIcmpBlock"]]], 0, [dnl
e4e66d
+    <method name="addIcmpBlock">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="icmp" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeIcmpBlock"]]], 0, [dnl
e4e66d
+    <method name="removeIcmpBlock">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="icmp" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryIcmpBlock"]]], 0, [dnl
e4e66d
+    <method name="queryIcmpBlock">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="icmp" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getIcmpBlocks"]]], 0, [dnl
e4e66d
+    <method name="getIcmpBlocks">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl ICMP Block Inversion
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addIcmpBlockInversion"]]], 0, [dnl
e4e66d
+    <method name="addIcmpBlockInversion">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeIcmpBlockInversion"]]], 0, [dnl
e4e66d
+    <method name="removeIcmpBlockInversion">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryIcmpBlockInversion"]]], 0, [dnl
e4e66d
+    <method name="queryIcmpBlockInversion">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+dnl Rich Rules
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="addRichRule"]]], 0, [dnl
e4e66d
+    <method name="addRichRule">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="rule" type="s"></arg>
e4e66d
+        <arg direction="in" name="timeout" type="i"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="removeRichRule"]]], 0, [dnl
e4e66d
+    <method name="removeRichRule">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="rule" type="s"></arg>
e4e66d
+        <arg direction="out" type="s"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="queryRichRule"]]], 0, [dnl
e4e66d
+    <method name="queryRichRule">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="in" name="rule" type="s"></arg>
e4e66d
+        <arg direction="out" type="b"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+DBUS_INTROSPECT([], [[//method[@name="getRichRules"]]], 0, [dnl
e4e66d
+    <method name="getRichRules">
e4e66d
+        <arg direction="in" name="zone" type="s"></arg>
e4e66d
+        <arg direction="out" type="as"></arg>
e4e66d
+    </method>
e4e66d
+])
e4e66d
+
e4e66d
+FWD_END_TEST
e4e66d
-- 
e4e66d
2.25.2
e4e66d