Blame SOURCES/0011-test-dbus-zone-verify-permanent-config-APIs.patch

725d6a
From 3564be1c8a28ac59e8a7135a1ab2a82d2e8a3c90 Mon Sep 17 00:00:00 2001
725d6a
From: Eric Garver <eric@garver.life>
725d6a
Date: Thu, 9 Apr 2020 12:49:02 -0400
725d6a
Subject: [PATCH 11/45] test(dbus): zone: verify permanent config APIs
725d6a
725d6a
(cherry picked from commit 64d5bf1b117bc29d09b4f30cbb1c87d8559eeac0)
725d6a
(cherry picked from commit a972e90b522ba11e0bd65b8d0cd1a55e1d18f9cd)
725d6a
---
725d6a
 src/tests/dbus/dbus.at                      |   1 +
725d6a
 src/tests/dbus/zone_permanent_functional.at | 359 ++++++++++++++++++++
725d6a
 2 files changed, 360 insertions(+)
725d6a
 create mode 100644 src/tests/dbus/zone_permanent_functional.at
725d6a
725d6a
diff --git a/src/tests/dbus/dbus.at b/src/tests/dbus/dbus.at
725d6a
index 377244460e7a..31c180dc3d3d 100644
725d6a
--- a/src/tests/dbus/dbus.at
725d6a
+++ b/src/tests/dbus/dbus.at
725d6a
@@ -3,3 +3,4 @@ m4_include([dbus/firewalld.conf.at])
725d6a
 m4_include([dbus/service.at])
725d6a
 m4_include([dbus/zone_permanent_signatures.at])
725d6a
 m4_include([dbus/zone_runtime_signatures.at])
725d6a
+m4_include([dbus/zone_permanent_functional.at])
725d6a
diff --git a/src/tests/dbus/zone_permanent_functional.at b/src/tests/dbus/zone_permanent_functional.at
725d6a
new file mode 100644
725d6a
index 000000000000..2261832e00a8
725d6a
--- /dev/null
725d6a
+++ b/src/tests/dbus/zone_permanent_functional.at
725d6a
@@ -0,0 +1,359 @@
725d6a
+FWD_START_TEST([dbus api - zone permanent functional])
725d6a
+AT_KEYWORDS(dbus zone gh586)
725d6a
+
725d6a
+dnl ####################
725d6a
+dnl Global APIs
725d6a
+dnl ####################
725d6a
+
725d6a
+DBUS_CHECK([config], [config.addZone],
725d6a
+    ["foobar" dnl name
725d6a
+     '("1.0", dnl version
725d6a
+       "foobar", dnl short
725d6a
+       "foobar zone", dnl description
725d6a
+       false, dnl bogus/unused
725d6a
+       "ACCEPT", dnl target
725d6a
+       @<:@"ssh", "mdns"@:>@, dnl services
725d6a
+       @<:@("1234", "tcp"), ("1234", "udp")@:>@, dnl ports
725d6a
+       @<:@"echo-request"@:>@, dnl ICMP Blocks
725d6a
+       true, dnl masquerade
725d6a
+       @<:@("1234", "tcp", "4321", ""), ("1234", "udp", "4321", "10.10.10.10")@:>@, dnl forward ports
725d6a
+       @<:@"dummy0", "dummy1"@:>@, dnl interfaces
725d6a
+       @<:@"10.10.10.0/24"@:>@, dnl sources
725d6a
+       @<:@"rule family=ipv4 source address=10.20.20.20 drop"@:>@, dnl rules_str
725d6a
+       @<:@"icmp"@:>@, dnl protocols
725d6a
+       @<:@("1234", "tcp"), ("1234", "udp")@:>@, dnl source ports
725d6a
+       false dnl ICMP block inversion
725d6a
+      )'dnl
725d6a
+    ], 0, [stdout])
725d6a
+DBUS_FOOBAR_ZONE_OBJ=[$(sed -e "s/.*config\/zone\/\([^']\+\)['].*/\1/" ./stdout)]
725d6a
+export DBUS_FOOBAR_ZONE_OBJ
725d6a
+
725d6a
+dnl Get Zones
725d6a
+dnl
725d6a
+DBUS_CHECK([config], [config.getZoneNames], [], 0, [dnl
725d6a
+    [(['block', 'dmz', 'drop', 'external', 'foobar', 'home', 'internal', 'public', 'trusted', 'work'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config], [config.listZones], [], 0, [stdout])
725d6a
+NS_CHECK([sed -e ["s/['][,]/'\n/g"] ./stdout |dnl
725d6a
+          sed -e ["s/.*config\/zone\/\([^']\+\)['].*/\1/"] |dnl
725d6a
+          while read LINE; do { echo "${LINE}" | grep ["^[0-9]\+$"] ; } || exit 1; done], 0, [ignore])
725d6a
+DBUS_CHECK([config], [config.getZoneByName], ["public"], 0, [stdout])
725d6a
+NS_CHECK([sed -e ["s/.*config\/zone\/\([^']\+\)['].*/\1/"] ./stdout | grep ["^[0-9]\+$"]], 0, [ignore])
725d6a
+
725d6a
+dnl Interfaces
725d6a
+FWD_CHECK([-q --permanent --zone public --add-interface dummy2])
725d6a
+DBUS_CHECK([config], [config.getZoneOfInterface], ["dummy2"], 0, [dnl
725d6a
+    ('public',)
725d6a
+])
725d6a
+FWD_CHECK([-q --permanent --zone public --remove-interface dummy2])
725d6a
+
725d6a
+dnl Sources
725d6a
+FWD_CHECK([-q --permanent --zone public --add-source 10.20.20.0/24])
725d6a
+DBUS_CHECK([config], [config.getZoneOfSource], ["10.20.20.0/24"], 0, [dnl
725d6a
+    ('public',)
725d6a
+])
725d6a
+FWD_CHECK([-q --permanent --zone public --remove-source 10.20.20.0/24])
725d6a
+
725d6a
+dnl ####################
725d6a
+dnl Zone object APIs
725d6a
+dnl ####################
725d6a
+
725d6a
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.getSettings], [], 0, [dnl
725d6a
+     (('1.0', dnl version
725d6a
+       'foobar', dnl short
725d6a
+       'foobar zone', dnl description
725d6a
+       false, dnl bogus/unused
725d6a
+       'ACCEPT', dnl target
725d6a
+       @<:@'ssh', 'mdns'@:>@, dnl services
725d6a
+       @<:@('1234', 'tcp'), ('1234', 'udp')@:>@, dnl ports
725d6a
+       @<:@'echo-request'@:>@, dnl ICMP Blocks
725d6a
+       true, dnl masquerade
725d6a
+       @<:@('1234', 'tcp', '4321', ''), ('1234', 'udp', '4321', '10.10.10.10')@:>@, dnl forward ports
725d6a
+       @<:@'dummy0', 'dummy1'@:>@, dnl interfaces
725d6a
+       @<:@'10.10.10.0/24'@:>@, dnl sources
725d6a
+       @<:@'rule family="ipv4" source address="10.20.20.20" drop'@:>@, dnl rules_str
725d6a
+       @<:@'icmp'@:>@, dnl protocols
725d6a
+       @<:@('1234', 'tcp'), ('1234', 'udp')@:>@, dnl source ports
725d6a
+       false),)
725d6a
+])
725d6a
+
725d6a
+dnl Verify update works
725d6a
+dnl
725d6a
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.update], [dnl
725d6a
+     '("1.1", dnl version
725d6a
+       "foobar v2", dnl short
725d6a
+       "foobar zone updated", dnl description
725d6a
+       false, dnl bogus/unused
725d6a
+       "ACCEPT", dnl target
725d6a
+       @<:@"ssh", "mdns", "samba"@:>@, dnl services
725d6a
+       @<:@("1234", "tcp"), ("4444", "udp")@:>@, dnl ports
725d6a
+       @<:@"echo-request", "echo-reply"@:>@, dnl ICMP Blocks
725d6a
+       false, dnl masquerade
725d6a
+       @<:@("1234", "tcp", "4321", "")@:>@, dnl forward ports
725d6a
+       @<:@"dummy0", "dummy1", "dummy2"@:>@, dnl interfaces
725d6a
+       @<:@"10.10.10.0/24", "10.20.0.0/16"@:>@, dnl sources
725d6a
+       @<:@"rule family=ipv4 source address=10.20.20.20 reject"@:>@, dnl rules_str
725d6a
+       @<:@"icmp", "ipv6-icmp"@:>@, dnl protocols
725d6a
+       @<:@("1234", "tcp"), ("6666", "udp")@:>@, dnl source ports
725d6a
+       true dnl ICMP block inversion
725d6a
+      )'dnl
725d6a
+    ], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.getSettings], [], 0, [dnl
725d6a
+     (('1.1', dnl version
725d6a
+       'foobar v2', dnl short
725d6a
+       'foobar zone updated', dnl description
725d6a
+       false, dnl bogus/unused
725d6a
+       'ACCEPT', dnl target
725d6a
+       @<:@'ssh', 'mdns', 'samba'@:>@, dnl services
725d6a
+       @<:@('1234', 'tcp'), ('4444', 'udp')@:>@, dnl ports
725d6a
+       @<:@'echo-request', 'echo-reply'@:>@, dnl ICMP Blocks
725d6a
+       false, dnl masquerade
725d6a
+       @<:@('1234', 'tcp', '4321', '')@:>@, dnl forward ports
725d6a
+       @<:@'dummy0', 'dummy1', 'dummy2'@:>@, dnl interfaces
725d6a
+       @<:@'10.10.10.0/24', '10.20.0.0/16'@:>@, dnl sources
725d6a
+       @<:@'rule family="ipv4" source address="10.20.20.20" reject'@:>@, dnl rules_str
725d6a
+       @<:@'icmp', 'ipv6-icmp'@:>@, dnl protocols
725d6a
+       @<:@('1234', 'tcp'), ('6666', 'udp')@:>@, dnl source ports
725d6a
+       true),)
725d6a
+])
725d6a
+
725d6a
+dnl Rename
725d6a
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.rename], ["foobar-renamed"], 0, [ignore])
725d6a
+DBUS_CHECK([config], [config.getZoneByName], ["foobar-renamed"], 0, [ignore])
725d6a
+
725d6a
+dnl Remove
725d6a
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.remove], [], 0, [ignore])
725d6a
+DBUS_CHECK([config], [config.getZoneByName], ["foobar-renamed"], 1, [ignore], [ignore])
725d6a
+
725d6a
+dnl Get a reference to the public zone. We'll use for the rest of the tests.
725d6a
+DBUS_CHECK([config], [config.getZoneByName], ["public"], 0, [stdout])
725d6a
+DBUS_PUBLIC_ZONE_OBJ=[$(sed -e "s/.*config\/zone\/\([^']\+\)['].*/\1/" ./stdout)]
725d6a
+export DBUS_PUBLIC_ZONE_OBJ
725d6a
+
725d6a
+dnl loadDefaults
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.loadDefaults], [], 0, [ignore])
725d6a
+
725d6a
+dnl Version
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getVersion], [], 0, [dnl
725d6a
+    ('',)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setVersion], ["1.1"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getVersion], [], 0, [dnl
725d6a
+    ('1.1',)
725d6a
+])
725d6a
+
725d6a
+dnl Short
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getShort], [], 0, [dnl
725d6a
+    ('Public',)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setShort], ["Public updated"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getShort], [], 0, [dnl
725d6a
+    ('Public updated',)
725d6a
+])
725d6a
+
725d6a
+dnl Description
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getDescription], [], 0, [dnl
725d6a
+    ('For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.',)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setDescription], ["A shorter description."], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getDescription], [], 0, [dnl
725d6a
+    ('A shorter description.',)
725d6a
+])
725d6a
+
725d6a
+dnl Target
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getTarget], [], 0, [dnl
725d6a
+    ('default',)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setTarget], ["ACCEPT"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getTarget], [], 0, [dnl
725d6a
+    ('ACCEPT',)
725d6a
+])
725d6a
+
725d6a
+dnl Interfaces
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addInterface], ["dummy0"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryInterface], ["dummy0"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryInterface], ["dummy1"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setInterfaces], [['["dummy0", "dummy1"]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getInterfaces], [], 0, [dnl
725d6a
+    [(['dummy0', 'dummy1'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeInterface], ["dummy0"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getInterfaces], [], 0, [dnl
725d6a
+    [(['dummy1'],)]
725d6a
+])
725d6a
+
725d6a
+dnl Sources
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addSource], ["10.10.10.0/24"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySource], ["10.10.10.0/24"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySource], ["10.20.20.0/24"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setSources], [['["10.10.10.0/24", "10.20.20.0/24"]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSources], [], 0, [dnl
725d6a
+    [(['10.10.10.0/24', '10.20.20.0/24'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeSource], ["10.10.10.0/24"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSources], [], 0, [dnl
725d6a
+    [(['10.20.20.0/24'],)]
725d6a
+])
725d6a
+
725d6a
+dnl Services
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addService], ["samba"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryService], ["samba"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryService], ["https"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setServices], [['["samba", "https"]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getServices], [], 0, [dnl
725d6a
+    [(['samba', 'https'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeService], ["samba"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getServices], [], 0, [dnl
725d6a
+    [(['https'],)]
725d6a
+])
725d6a
+
725d6a
+dnl Ports
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addPort], ["1234" "tcp"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryPort], ["1234" "tcp"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryPort], ["4321" "udp"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setPorts], [['[("1234", "tcp"), ("4321", "udp")]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getPorts], [], 0, [dnl
725d6a
+    [([('1234', 'tcp'), ('4321', 'udp')],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removePort], ["1234" "tcp"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getPorts], [], 0, [dnl
725d6a
+    [([('4321', 'udp')],)]
725d6a
+])
725d6a
+
725d6a
+dnl Source Ports
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addSourcePort], ["1234" "tcp"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySourcePort], ["1234" "tcp"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySourcePort], ["4321" "udp"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setSourcePorts], [['[("1234", "tcp"), ("4321", "udp")]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSourcePorts], [], 0, [dnl
725d6a
+    [([('1234', 'tcp'), ('4321', 'udp')],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeSourcePort], ["1234" "tcp"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSourcePorts], [], 0, [dnl
725d6a
+    [([('4321', 'udp')],)]
725d6a
+])
725d6a
+
725d6a
+dnl Forward Ports
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addForwardPort], ["1234" "tcp" "1111" ""], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryForwardPort], ["1234" "tcp" "1111" ""], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryForwardPort], ["4321" "udp" "4444" "10.10.10.10"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setForwardPorts], [['[("1234", "tcp", "1111", ""), ("4321", "udp", "4444", "10.10.10.10")]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getForwardPorts], [], 0, [dnl
725d6a
+    [([('1234', 'tcp', '1111', ''), ('4321', 'udp', '4444', '10.10.10.10')],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeForwardPort], ["1234" "tcp" "1111" ""], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getForwardPorts], [], 0, [dnl
725d6a
+    [([('4321', 'udp', '4444', '10.10.10.10')],)]
725d6a
+])
725d6a
+
725d6a
+dnl Protocols
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addProtocol], ["icmp"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryProtocol], ["icmp"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryProtocol], ["igmp"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setProtocols], [['["icmp", "igmp"]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getProtocols], [], 0, [dnl
725d6a
+    [(['icmp', 'igmp'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeProtocol], ["icmp"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getProtocols], [], 0, [dnl
725d6a
+    [(['igmp'],)]
725d6a
+])
725d6a
+
725d6a
+dnl Masquerade
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryMasquerade], [], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addMasquerade], [], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryMasquerade], [], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setMasquerade], [true], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getMasquerade], [], 0, [dnl
725d6a
+    [(true,)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeMasquerade], [], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getMasquerade], [], 0, [dnl
725d6a
+    [(false,)]
725d6a
+])
725d6a
+
725d6a
+dnl ICMP Block
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addIcmpBlock], ["echo-reply"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlock], ["echo-reply"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlock], ["echo-request"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setIcmpBlocks], [['["echo-reply", "echo-request"]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlocks], [], 0, [dnl
725d6a
+    [(['echo-reply', 'echo-request'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeIcmpBlock], ["echo-reply"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlocks], [], 0, [dnl
725d6a
+    [(['echo-request'],)]
725d6a
+])
725d6a
+
725d6a
+dnl ICMP Block Inversion
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlockInversion], [], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addIcmpBlockInversion], [], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlockInversion], [], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setIcmpBlockInversion], [true], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlockInversion], [], 0, [dnl
725d6a
+    [(true,)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeIcmpBlockInversion], [], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlockInversion], [], 0, [dnl
725d6a
+    [(false,)]
725d6a
+])
725d6a
+
725d6a
+dnl Rich Rules
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addRichRule], ["rule family=ipv4 source address=10.10.10.0/24 accept"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryRichRule], ["rule family=ipv4 source address=10.10.10.0/24 accept"], 0, [dnl
725d6a
+    (true,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryRichRule], ["rule family=ipv4 source address=10.20.20.0/24 drop"], 0, [dnl
725d6a
+    (false,)
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setRichRules], [['["rule family=ipv4 source address=10.10.10.0/24 accept", "rule family=ipv4 source address=10.20.20.0/24 drop"]']], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getRichRules], [], 0, [dnl
725d6a
+    [(['rule family="ipv4" source address="10.10.10.0/24" accept', 'rule family="ipv4" source address="10.20.20.0/24" drop'],)]
725d6a
+])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeRichRule], ["rule family=ipv4 source address=10.10.10.0/24 accept"], 0, [ignore])
725d6a
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getRichRules], [], 0, [dnl
725d6a
+    [(['rule family="ipv4" source address="10.20.20.0/24" drop'],)]
725d6a
+])
725d6a
+
725d6a
+FWD_END_TEST([-e '/ERROR: INVALID_ZONE: foobar-renamed/d'])
725d6a
-- 
725d6a
2.27.0
725d6a