From: "Pablo M. Bermudo Garay" <pablombg@gmail.com>
To: netfilter-devel@vger.kernel.org
Cc: "Pablo M. Bermudo Garay" <pablombg@gmail.com>
Subject: [PATCH iptables 1/2] tests: xlate: remove python 3.5 dependency
Date: Wed, 19 Apr 2017 01:19:08 +0200 [thread overview]
Message-ID: <1492557549-578-1-git-send-email-pablombg@gmail.com> (raw)
This commit replaces subprocess.run (introduced in python 3.5) with
subprocess.Popen (supported since the first version of python 3).
Furthermore, the output has been improved when ip[6]tables-translate
exits with non-zero return code.
Signed-off-by: Pablo M. Bermudo Garay <pablombg@gmail.com>
---
xlate-test.py | 32 +++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/xlate-test.py b/xlate-test.py
index 006289f..37760e9 100755
--- a/xlate-test.py
+++ b/xlate-test.py
@@ -4,8 +4,8 @@
import os
import sys
import shlex
-import subprocess
import argparse
+from subprocess import Popen, PIPE
keywords = ("iptables-translate", "ip6tables-translate")
@@ -40,19 +40,25 @@ def run_test(name, payload):
for line in payload:
if line.startswith(keywords):
- output = subprocess.run(shlex.split(line), stdout=subprocess.PIPE)
- translation = output.stdout.decode("utf-8").rstrip(" \n")
- expected = next(payload).rstrip(" \n")
- if translation != expected:
- result.append(red("Fail"))
- result.append(magenta("src: ") + line.rstrip(" \n"))
- result.append(magenta("exp: ") + expected)
- result.append(magenta("res: ") + translation + "\n")
+ process = Popen(shlex.split(line), stdout=PIPE, stderr=PIPE)
+ (output, error) = process.communicate()
+ if process.returncode == 0:
+ translation = output.decode("utf-8").rstrip(" \n")
+ expected = next(payload).rstrip(" \n")
+ if translation != expected:
+ result.append(red("Fail"))
+ result.append(magenta("src: ") + line.rstrip(" \n"))
+ result.append(magenta("exp: ") + expected)
+ result.append(magenta("res: ") + translation + "\n")
+ test_passed = False
+ elif args.all:
+ result.append(green("Ok"))
+ result.append(magenta("src: ") + line.rstrip(" \n"))
+ result.append(magenta("res: ") + translation + "\n")
+ else:
test_passed = False
- elif args.all:
- result.append(green("Ok"))
- result.append(magenta("src: ") + line.rstrip(" \n"))
- result.append(magenta("res: ") + translation + "\n")
+ result.append(red("Error: ") + "iptables-translate failure")
+ result.append(error.decode("utf-8"))
if not test_passed or args.all:
print("\n".join(result))
--
2.1.4
next reply other threads:[~2017-04-19 16:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-18 23:19 Pablo M. Bermudo Garay [this message]
2017-04-18 23:19 ` [PATCH iptables 2/2] tests: xlate: check if it is being run as root Pablo M. Bermudo Garay
2017-04-25 9:00 ` Pablo Neira Ayuso
2017-04-25 9:00 ` [PATCH iptables 1/2] tests: xlate: remove python 3.5 dependency Pablo Neira Ayuso
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=1492557549-578-1-git-send-email-pablombg@gmail.com \
--to=pablombg@gmail.com \
--cc=netfilter-devel@vger.kernel.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).