From: Phil Sutter <phil@nwl.cc>
To: netfilter-devel@vger.kernel.org
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
Florian Westphal <fw@strlen.de>, Jan Engelhardt <jengelh@inai.de>
Subject: [iptables PATCH 00/12] Speed up iptables-tests.py
Date: Thu, 6 Oct 2022 02:27:50 +0200 [thread overview]
Message-ID: <20221006002802.4917-1-phil@nwl.cc> (raw)
I had this in mind for a while now and finally got around to do it: When
testing an extensions/*.t file with iptables-tests.py, act in a "batch"
mode applying all rules at once and checking the expected output in one
go, thereby reducing the overhead per test file to a single
iptables-restore and iptables-save call each. This was a bit optimistic,
but the result is still significant - on my rather slow testing VM, a
full iptables-tests.py run completes in ~7min instead of ~30min (yes,
it's slow).
See patch 1 for the implementation details. As a side-effect, rule
existence checking became much stricter, so the remaining patches in
this series deal with eliminating those differences:
* Patch 2 avoids having to add '-j CONTINUE' to almost all ebtables
rules.
* Patches 3-10 adjust expected output to reality, mostly adding content
the script didn't care about since the old 'output.find(<rule>)'
worked fine as long as the output *started* like '<rule>'.
* Patch 11 Changes output by omitting an obvious default value, so a
real functional change.
* Patch 12 drops another default value (from NFQUEUE target) I'm not
sure we should keep.
So patches are roughly sorted by my confidence in correctness. Please
have (at least) a close look at the last two, I don't want to break
iptables for anyone just to keep test files small.
Phil Sutter (12):
tests: iptables-test: Implement fast test mode
tests: iptables-test: Cover for obligatory -j CONTINUE in ebtables
tests: *.t: Fix expected output for simple calls
tests: *.t: Fix for hexadecimal output
tests: libebt_redirect.t: Plain redirect prints with trailing
whitespace
tests: libxt_length.t: Fix odd use-case output
tests: libxt_recent.t: Add missing default values
tests: libxt_tos.t, libxt_TOS.t: Add missing masks in output
tests: libebt_vlan.t: Drop trailing whitespace from rules
tests: libxt_connlimit.t: Add missing --connlimit-saddr
extensions: Do not print all-one's netmasks
extensions: NFQUEUE: Do not print default queue number 0
extensions/libebt_log.t | 2 +-
extensions/libebt_nflog.t | 2 +-
extensions/libebt_redirect.t | 2 +-
extensions/libebt_vlan.t | 4 +-
extensions/libip6t_NETMAP.c | 2 +-
extensions/libip6t_REJECT.t | 2 +-
extensions/libipt_NETMAP.c | 2 +-
extensions/libipt_REJECT.t | 2 +-
extensions/libxt_CONNMARK.c | 32 ++++--
extensions/libxt_CONNMARK.t | 4 +-
extensions/libxt_DSCP.t | 2 +-
extensions/libxt_MARK.c | 4 +-
extensions/libxt_MARK.t | 2 +-
extensions/libxt_NFQUEUE.c | 27 ++---
extensions/libxt_NFQUEUE.t | 4 +-
extensions/libxt_TOS.t | 12 +--
extensions/libxt_connlimit.c | 8 +-
extensions/libxt_connlimit.t | 20 ++--
extensions/libxt_connmark.t | 4 +-
extensions/libxt_dscp.t | 2 +-
extensions/libxt_length.t | 2 +-
extensions/libxt_mark.t | 2 +-
extensions/libxt_recent.c | 45 ++++----
extensions/libxt_recent.t | 14 +--
extensions/libxt_tos.t | 8 +-
iptables-test.py | 200 ++++++++++++++++++++++++++++++++++-
26 files changed, 317 insertions(+), 93 deletions(-)
--
2.34.1
next reply other threads:[~2022-10-06 0:28 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-06 0:27 Phil Sutter [this message]
2022-10-06 0:27 ` [iptables PATCH 01/12] tests: iptables-test: Implement fast test mode Phil Sutter
2022-10-06 6:13 ` Jan Engelhardt
2022-10-06 11:21 ` Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 02/12] tests: iptables-test: Cover for obligatory -j CONTINUE in ebtables Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 03/12] tests: *.t: Fix expected output for simple calls Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 04/12] tests: *.t: Fix for hexadecimal output Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 05/12] tests: libebt_redirect.t: Plain redirect prints with trailing whitespace Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 06/12] tests: libxt_length.t: Fix odd use-case output Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 07/12] tests: libxt_recent.t: Add missing default values Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 08/12] tests: libxt_tos.t, libxt_TOS.t: Add missing masks in output Phil Sutter
2022-10-06 0:27 ` [iptables PATCH 09/12] tests: libebt_vlan.t: Drop trailing whitespace from rules Phil Sutter
2022-10-06 0:28 ` [iptables PATCH 10/12] tests: libxt_connlimit.t: Add missing --connlimit-saddr Phil Sutter
2022-10-06 0:28 ` [iptables PATCH 11/12] extensions: Do not print all-one's netmasks Phil Sutter
2022-10-06 6:27 ` Jan Engelhardt
2022-10-06 11:54 ` Phil Sutter
2022-10-06 19:01 ` Jan Engelhardt
2022-10-06 0:28 ` [iptables PATCH 12/12] extensions: NFQUEUE: Do not print default queue number 0 Phil Sutter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221006002802.4917-1-phil@nwl.cc \
--to=phil@nwl.cc \
--cc=fw@strlen.de \
--cc=jengelh@inai.de \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).