Blame SOURCES/0058-test-zone-rich-rule-parsing-bottleneck.patch

725d6a
From ed42b8048e97040802da727f77cad4a1bb5ff42b Mon Sep 17 00:00:00 2001
725d6a
From: Eric Garver <eric@garver.life>
725d6a
Date: Wed, 26 Aug 2020 14:28:45 -0400
725d6a
Subject: [PATCH 58/62] test(zone): rich rule parsing bottleneck
725d6a
725d6a
Coverage for rhbz 1871298.
725d6a
Verify we can parse a large amount of rich rules in a reasonable time.
725d6a
725d6a
This test took 3m before the fix and now takes 18s after the fix.
725d6a
Considering it "failed" after 45s should give us plenty of headroom.
725d6a
725d6a
(cherry picked from commit ece30971412eedb9032b0d87233ca21ef9154830)
725d6a
(cherry picked from commit b21f071851ffec6d3a382b6e60eb88dcda7df467)
725d6a
---
725d6a
 src/tests/regression/regression.at  |  1 +
725d6a
 src/tests/regression/rhbz1871298.at | 18 ++++++++++++++++++
725d6a
 2 files changed, 19 insertions(+)
725d6a
 create mode 100644 src/tests/regression/rhbz1871298.at
725d6a
725d6a
diff --git a/src/tests/regression/regression.at b/src/tests/regression/regression.at
725d6a
index d7b4d56239d1..65540840f50e 100644
725d6a
--- a/src/tests/regression/regression.at
725d6a
+++ b/src/tests/regression/regression.at
725d6a
@@ -34,3 +34,4 @@ m4_include([regression/rhbz1689429.at])
725d6a
 m4_include([regression/rhbz1483921.at])
725d6a
 m4_include([regression/rhbz1541077.at])
725d6a
 m4_include([regression/rhbz1855140.at])
725d6a
+m4_include([regression/rhbz1871298.at])
725d6a
diff --git a/src/tests/regression/rhbz1871298.at b/src/tests/regression/rhbz1871298.at
725d6a
new file mode 100644
725d6a
index 000000000000..0689399d85ec
725d6a
--- /dev/null
725d6a
+++ b/src/tests/regression/rhbz1871298.at
725d6a
@@ -0,0 +1,18 @@
725d6a
+FWD_START_TEST([rich rule parsing bottleneck])
725d6a
+AT_KEYWORDS(rich offline rhbz1871298)
725d6a
+
725d6a
+AT_SKIP_IF([! NS_CMD([which timeout >/dev/null 2>&1])])
725d6a
+
725d6a
+NS_CHECK([mkdir -p ./zones])
725d6a
+NS_CHECK([echo '' > ./zones/foobar.xml])
725d6a
+NS_CHECK([echo "<zone>" >> ./zones/foobar.xml])
725d6a
+NS_CHECK([echo "<short>foobar</short>" >> ./zones/foobar.xml])
725d6a
+NS_CHECK([sh -c 'for I in $(seq 10000); do echo "<rule family=\"ipv4\"><port protocol=\"tcp\" port=\"$I\" /><accept/></rule>" >> ./zones/foobar.xml; done'])
725d6a
+NS_CHECK([echo "</zone>" >> ./zones/foobar.xml])
725d6a
+
725d6a
+if test "x${FIREWALLD_DEFAULT_CONFIG}" != x ; then
725d6a
+    FIREWALL_OFFLINE_CMD_ARGS+=" --default-config ${FIREWALLD_DEFAULT_CONFIG}"
725d6a
+fi
725d6a
+NS_CHECK([timeout 45 firewall-offline-cmd --system-config ./ $FIREWALL_OFFLINE_CMD_ARGS --check-config], 0, [ignore])
725d6a
+
725d6a
+FWD_END_TEST
725d6a
-- 
725d6a
2.28.0
725d6a