Blame SOURCES/0005-test-use-PIPESTATUS0-in-LIST-macros.patch

8a3219
From 7bfd5446e2926f9a061d883c60c78c88532a34da Mon Sep 17 00:00:00 2001
8a3219
From: Eric Garver <eric@garver.life>
8a3219
Date: Mon, 17 Jun 2019 11:00:01 -0400
8a3219
Subject: [PATCH 05/20] test: use PIPESTATUS0 in LIST macros
8a3219
8a3219
This so we get the return code from the first command instead of all the
8a3219
sed/filtering we do afterwards.
8a3219
8a3219
Also moves the NORMALIZE functions into the top-level. Avoids
8a3219
unnecessary define/undefine.
8a3219
8a3219
(cherry picked from commit ae18f69bdf2ef664646751787dd7ab44988912f3)
8a3219
---
8a3219
 src/tests/functions.at | 67 +++++++++++++++++++++++++++++-------------
8a3219
 1 file changed, 47 insertions(+), 20 deletions(-)
8a3219
8a3219
diff --git a/src/tests/functions.at b/src/tests/functions.at
8a3219
index 932e288f1597..69f71c133d15 100644
8a3219
--- a/src/tests/functions.at
8a3219
+++ b/src/tests/functions.at
8a3219
@@ -250,18 +250,29 @@ m4_define([PIPESTATUS0], [dnl
8a3219
 HERE
8a3219
 ])
8a3219
 
8a3219
+m4_define([EBTABLES_LIST_RULES_NORMALIZE], [dnl
8a3219
+    TRIM_WHITESPACE | dnl
8a3219
+    grep -v "^Bridge" | dnl
8a3219
+    [sed -e 's/\([-][-][-a-zA-Z0-9]\+\)[ ]\+[!]/! \1/g'] dnl
8a3219
+])
8a3219
+
8a3219
 m4_define([EBTABLES_LIST_RULES], [
8a3219
     dnl ebtables commit 5f508b76a0ce change list output for inversion.
8a3219
-    m4_define([EBTABLES_LIST_RULES_NORMALIZE], [[sed -e 's/\([-][-][-a-zA-Z0-9]\+\)[ ]\+[!]/! \1/g']])
8a3219
     m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [], [
8a3219
-        NS_CHECK([ebtables --concurrent -t $1 -L $2 | TRIM_WHITESPACE | grep -v "^Bridge" | EBTABLES_LIST_RULES_NORMALIZE], [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
+        NS_CHECK([PIPESTATUS0([ebtables --concurrent -t $1 -L $2], [EBTABLES_LIST_RULES_NORMALIZE])],
8a3219
+                 [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
     ])
8a3219
-    m4_undefine([EBTABLES_LIST_RULES_NORMALIZE])
8a3219
+])
8a3219
+
8a3219
+m4_define([IPTABLES_LIST_RULES_NORMALIZE], [dnl
8a3219
+    TRIM_WHITESPACE | dnl
8a3219
+    tail -n +3 dnl
8a3219
 ])
8a3219
 
8a3219
 m4_define([IPTABLES_LIST_RULES_ALWAYS], [
8a3219
     m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [], [
8a3219
-        NS_CHECK([IPTABLES -w -n -t $1 -L $2 | TRIM_WHITESPACE | tail -n +3], [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
+        NS_CHECK([PIPESTATUS0([IPTABLES -w -n -t $1 -L $2], [IPTABLES_LIST_RULES_NORMALIZE])],
8a3219
+                 [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
@@ -271,11 +282,17 @@ m4_define([IPTABLES_LIST_RULES], [
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
+m4_define([IP6TABLES_LIST_RULES_NORMALIZE], [dnl
8a3219
+    TRIM_WHITESPACE | dnl
8a3219
+    tail -n +3 dnl
8a3219
+])
8a3219
+
8a3219
 m4_define([IP6TABLES_LIST_RULES_ALWAYS], [
8a3219
     m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [], [
8a3219
-    m4_if(yes, HOST_SUPPORTS_IP6TABLES, [
8a3219
-        NS_CHECK([IP6TABLES -w -n -t $1 -L $2 | TRIM_WHITESPACE | tail -n +3], [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
-    ])
8a3219
+        m4_if(yes, HOST_SUPPORTS_IP6TABLES, [
8a3219
+            NS_CHECK([PIPESTATUS0([IP6TABLES -w -n -t $1 -L $2], [IP6TABLES_LIST_RULES_NORMALIZE])],
8a3219
+                     [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
+        ])
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
@@ -285,20 +302,21 @@ m4_define([IP6TABLES_LIST_RULES], [
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
-m4_define([NFT_LIST_RULES_ALWAYS], [
8a3219
+m4_define([NFT_LIST_RULES_NORMALIZE], [dnl
8a3219
+    TRIM_WHITESPACE | dnl
8a3219
     dnl nftables commit 6dd848339444 change list output to show "meta mark"
8a3219
     dnl instead of just "mark".
8a3219
-    m4_define([NFT_LIST_RULES_NORMALIZE], [dnl
8a3219
-        sed -e 's/meta mark/mark/g'dnl
8a3219
-            -e '/type.*hook.*priority.*policy.*/d'dnl
8a3219
-            dnl tranform ct state { established,related } to ct state established,related
8a3219
-            -e '/ct \(state\|status\)/{s/\(ct \(state\|status\)\) {/\1/g; s/ }//; s/\(@<:@a-z@:>@*\), /\1,/g;}' dnl
8a3219
-    ])
8a3219
+    sed -e 's/meta mark/mark/g'dnl
8a3219
+        -e '/type.*hook.*priority.*policy.*/d'dnl
8a3219
+        dnl tranform ct state { established,related } to ct state established,related
8a3219
+        -e '/ct \(state\|status\)/{s/\(ct \(state\|status\)\) {/\1/g; s/ }//; s/\(@<:@a-z@:>@*\), /\1,/g;}' dnl
8a3219
+])
8a3219
 
8a3219
+m4_define([NFT_LIST_RULES_ALWAYS], [
8a3219
     m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [], [
8a3219
-        NS_CHECK([nft NFT_NUMERIC_ARGS list chain $1 firewalld $2 | TRIM_WHITESPACE | NFT_LIST_RULES_NORMALIZE], [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
+        NS_CHECK([PIPESTATUS0([nft NFT_NUMERIC_ARGS list chain $1 firewalld $2], [NFT_LIST_RULES_NORMALIZE])],
8a3219
+                 [$3], [m4_strip([$4])], [m4_strip([$5])], [$6], [$7])
8a3219
     ])
8a3219
-    m4_undefine([NFT_LIST_RULES_NORMALIZE])
8a3219
 ])
8a3219
 
8a3219
 m4_define([NFT_LIST_RULES], [
8a3219
@@ -307,18 +325,27 @@ m4_define([NFT_LIST_RULES], [
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
+m4_define([IPSET_LIST_SET_NORMALIZE], [dnl
8a3219
+    TRIM_WHITESPACE |dnl
8a3219
+    grep -v "^\(Revision\|Header\|Size\|References\|Number\)" |dnl
8a3219
+    awk 'NR <= 3; NR > 3 {print | "sort"}' dnl
8a3219
+])
8a3219
+
8a3219
 m4_define([IPSET_LIST_SET], [
8a3219
     m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [], [
8a3219
-        NS_CHECK([ipset list $1 | TRIM_WHITESPACE |dnl
8a3219
-                  grep -v "^\(Revision\|Header\|Size\|References\|Number\)" |dnl
8a3219
-                  awk 'NR <= 3; NR > 3 {print | "sort"}'],
8a3219
+        NS_CHECK([PIPESTATUS0([ipset list $1], [IPSET_LIST_SET_NORMALIZE])],
8a3219
                  [$2], [m4_strip([$3])], [m4_strip([$4])], [$5], [$6])
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
+m4_define([NFT_LIST_SET_NORMALIZE], [dnl
8a3219
+    TRIM_WHITESPACE dnl
8a3219
+])
8a3219
+
8a3219
 m4_define([NFT_LIST_SET_ALWAYS], [
8a3219
     m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [], [
8a3219
-        NS_CHECK([nft NFT_NUMERIC_ARGS list set inet firewalld $1 | TRIM_WHITESPACE], [$2], [m4_strip([$3])], [m4_strip([$4])], [$5], [$6])
8a3219
+        NS_CHECK([PIPESTATUS0([nft NFT_NUMERIC_ARGS list set inet firewalld $1], [NFT_LIST_SET_NORMALIZE])],
8a3219
+                 [$2], [m4_strip([$3])], [m4_strip([$4])], [$5], [$6])
8a3219
     ])
8a3219
 ])
8a3219
 
8a3219
-- 
8a3219
2.20.1
8a3219