Re: [PATCH v2 iptables-nft 3/3] xlate-test: avoid shell entanglements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 29, 2022 at 03:05:42PM +0100, Florian Westphal wrote:
> Feed the nft expected output found in the .txlate test files to
> nft -f via pipe/stdin directly without the shell mangling it.
> 
> The shell step isn't needed anymore because xtables-translate no longer
> escapes quotes.
> 
> We only need to remove the "nft '" and trailing "'" because nft doesn't
> expect those.
> 
> Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
> ---
>  new in v2.
> 
>  xlate-test.py | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/xlate-test.py b/xlate-test.py
> index f3fcd797af90..b93bf0547213 100755
> --- a/xlate-test.py
> +++ b/xlate-test.py
> @@ -7,11 +7,11 @@ import shlex
>  import argparse
>  from subprocess import Popen, PIPE
>  
> -def run_proc(args, shell = False):
> +def run_proc(args, shell = False, input = None):
>      """A simple wrapper around Popen, returning (rc, stdout, stderr)"""
>      process = Popen(args, text = True, shell = shell,
> -                    stdout = PIPE, stderr = PIPE)
> -    output, error = process.communicate()
> +                    stdin = PIPE, stdout = PIPE, stderr = PIPE)
> +    output, error = process.communicate(input)
>      return (process.returncode, output, error)
>  
>  keywords = ("iptables-translate", "ip6tables-translate", "ebtables-translate")
> @@ -100,15 +100,15 @@ def test_one_replay(name, sourceline, expected, result):
>          fam = "ip6 "
>      elif srccmd.startswith("ebt"):
>          fam = "bridge "
> +
> +    expected = expected.removeprefix("nft '").removesuffix("'")

Does this work with multi-line expected? I guess this one should do:

| expected = [l.removeprefix("nft ").strip(" '") for l in expected.split("\n")]

(Note how I fixed it for "tickless" lines. ;)

Cheers, Phil



[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux